Intern
Mis on soe klient?
sobes.tech AI
Vastus AI-lt
"Soe" klient testimise kontekstis on klient (näiteks brauseri aken, mobiilirakendus), mis on juba käivitunud ja seadistatud testide täitmiseks, kuid ei ole veel otseselt osalenud teststsenaariumis. Põhimõtteliselt on see valmis töötestikeskkond.
Erinevused "külma" kliendiga:
- Käivitus ja initsialiseerimine: "Soe" klient on juba käivitatud, laadis vajalikud ressursid (lehed, andmed), võib-olla tegi eelnevalt autentimise. "Külm" klient nõuab iga testi või testide komplekti jaoks täielikku käivitamist ja initsialiseerimist.
- Seisund: "Soe" klient säilitab teatud seisundi testide vahel (näiteks autoriseerimise tokenid, vahemällu salvestatud andmed), mis võimaldab kiiremini täita järgnevaid teste. "Külm" klient alustab tavaliselt puhtast lehest.
- Täitmisaeg: "Soojad" kliendid võimaldavad oluliselt vähendada teststsenaariumite täitmise aega, kuna välditakse aeglaste initsialiseerimisoperatsioonide korduvat täitmist.
Eelised:
- Aja kokkuhoid: Väheneb brauseri/rakenduse käivitamise ja alguslehe/ekraani laadimise aeg.
- Testide kiirendamine: Autentimist nõudvate testide täitmine toimub kiiremini, kuna ei ole vaja iga kord sisselogimisprotsessi teha.
- Tõhusus: Eriti oluline suurte regressioonitestide kogumite puhul.
Puudused:
- Seisundi võimalik mõju: Eelneva testi seisund, näiteks lipud, küpsised, kohalik salvestus, võib mõjutada käesoleva testi tulemust. Vajalik hoolikas seisundi haldamine.
- Raskem konfiguratsioon: Vajalik arendada loogika "sooja" seisundi säilitamiseks ja iga testi järel puhastamiseks, et tagada isolatsioon.
- Suurem ressursikasutus: Pidevalt töötav klient võib tarbida rohkem süsteemi ressursse.
Näide automatiseeritud testimises (Selenium WebDriver):
Kohal, kus iga testi jaoks luuakse uus draiveri eksemplar:
// "Külm" lähenemine
@Test
public void testFeatureA() {
WebDriver driver = new ChromeDriver(); // Uue brauseri käivitamine
//... teststsenaarium
driver.quit();
}
@Test
public void testFeatureB() {
WebDriver driver = new ChromeDriver(); // Jälle uue brauseri käivitamine
//... teststsenaarium
driver.quit();
}
Kasutusel on üks draiveri eksemplar, mida kasutatakse testide vahel (näidislõik):
// "Soe" lähenemine (kasutades BeforeAll/AfterAll või sarnaseid annotatsioone/hukke)
private static WebDriver driver;
@BeforeAll // Käivitatakse üks kord enne kõiki klasse testid
public static void setup() {
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
driver.get("https://your-app.com/login");
// Autentimise loogika
}
@AfterAll // Käivitatakse üks kord pärast kõiki klasse testid
public static void teardown() {
if (driver != null) {
driver.quit();
}
}
@BeforeEach // Iga testi eel
public void prepareTest() {
// Seisundi puhastamise loogika, kui vaja (näiteks küpsiste puhastamine, suundumine avalehele)
driver.manage().deleteAllCookies();
driver.navigate().to("https://your-app.com/dashboard");
}
@Test
public void testFeatureA() {
// Kasutame juba käivitatud ja autoriseeritud draiverit
// ... teststsenaarium
}
@Test
public void testFeatureB() {
// Kasutame sama draiverit
// ... teststsenaarium
}
See võimaldab vältida brauseri ja sisselogimisprotsessi korduvat käivitamist iga testi jaoks.