Kas ir Ajax?
AJAX ir saīsinājums no asinhroniem JavaScript un XML, un tas ļauj Web lapai izgūt no servera nelielu datu daudzumu, nepārslogojot visu lapu.
Ajax ir paņēmiens, ko izmanto ātru un dinamisku tīmekļa lapu izveidošanai. Šī tehnika ir asinhrona, un tajā tiek izmantota Javascript un XML kombinācija.
Tas atjauninās tīmekļa lapas daļu (-as), nepārlādējot visu lapu.
Dažas no slavenajām lietojumprogrammām, kas izmanto AJAX tehniku, ir Gmail, Google Maps, Facebook, Youtube utt.
Šajā apmācībā jūs uzzināsiet
- Kas ir Ajax?
- Kā darbojas Ajax?
- Kā rīkoties ar Ajax zvanu, izmantojot Selenium Webdriver
- Izaicinājumi, apstrādājot Ajax zvanu Selenium Webdriver
Kā darbojas Ajax?
Piemēram, noklikšķinot uz pogas Iesniegt, JavaScript pieprasīs serveri, interpretēs rezultātu un atjauninās pašreizējo ekrānu, atkārtoti neielādējot vietni.
- Ajax zvans ir asinhronais pieprasījums, ko ierosina pārlūkprogramma, un tas tieši neizraisa lapas pāreju. Tas nozīmē, ka, ja tiek aktivizēts Ajax pieprasījums, lietotājs joprojām var strādāt ar lietojumprogrammu, kamēr pieprasījums gaida atbildi.
- AJAX nosūta HTTP pieprasījumus no klienta uz serveri un pēc tam apstrādā servera atbildi, nepārslogojot visu lapu. Tātad, veicot AJAX zvanu, jūs neesat diezgan pārliecināts par servera patērēto laiku, lai nosūtītu jums atbildi .
No testētāja viedokļa, ja pārbaudāt parādāmo saturu vai elementu, jums jāgaida, līdz saņemat atbildi. AJAX zvana laikā dati tiek saglabāti XML formātā un tiek iegūti no servera.
Kā rīkoties ar Ajax zvanu, izmantojot Selenium Webdriver
Lielākais izaicinājums apstrādes Ajax zvans ir zināt ielādes laiku mājas lapā. Tā kā tīmekļa lapas ielāde ilgs tikai sekundes, testerim ir grūti pārbaudīt šādu lietojumprogrammu, izmantojot automatizācijas rīku. Lai to izdarītu, Selenium Webdriver ir jāizmanto šī Ajax zvana gaidīšanas metode.
Tātad, izpildot šo gaidīšanas komandu, selēns apturēs pašreizējā Test Case izpildi un gaidīs gaidīto vai jauno vērtību. Kad parādās jaunā vērtība vai lauks, apturētos testa gadījumus izpildīs Selenium Webdriver.
Tālāk ir norādītas gaidīšanas metodes, kuras var izmantot Selenium Webdriver
- Thread.Sleep ()
- Thread.Sleep () nav gudra izvēle, jo tā aptur pašreizējo pavedienu uz noteiktu laiku.
- AJAX nekad nevar būt drošs par precīzu gaidīšanas laiku. Tātad, pārbaude neizdosies, ja elements neparādīsies gaidīšanas laikā. Turklāt tas palielina pieskaitāmās izmaksas, jo, izsaucot Thread.sleep (t), pašreizējais pavediens tiek pārvietots no skriešanas rindas uz gaidīšanas rindu.
- Pēc tam, kad ir sasniegts laiks 't', pašreizējais pavediens no gaidīšanas rindas pāriet uz gatavo rindu, un pēc tam paiet zināms laiks, līdz CPU to izvēlas un tā darbojas.
- Netiešā gaidīšana ()
- Šī metode liek tīmekļa draiverim gaidīt, ja elements nav pieejams uzreiz, taču šī gaidīšana būs spēkā visu laiku, kamēr pārlūks ir atvērts. Tātad jebkura lapas elementu meklēšana var aizņemt laiku, kad netieši jāgaida.
- Nepārprotama gaidīšana ()
- Tieša gaidīšana tiek izmantota testa izpildes iesaldēšanai, līdz tiek izpildīts konkrētais nosacījums vai beidzas maksimālais laiks.
- Webdriver Pagaidiet
- To var izmantot jebkuros apstākļos. To var panākt, izmantojot WebDriverWait kombinācijā ar ExpectedCondition
- Labākais veids, kā dinamiski gaidīt elementu, ir nosacījuma pārbaude katru sekundi un turpināšana ar nākamo komandu skriptā, tiklīdz nosacījums ir izpildīts.
Bet visu šo gaidīšanas problēma ir tā, ka jums jāpiemin taimauta vienība. Ko darīt, ja elements noteiktā laikā joprojām nav pieejams? Tātad ir vēl viena gaidīšana, ko sauc par brīvu gaidīšanu.
- Tekoši gaidiet
- Šī ir Wait saskarnes ieviešana, kurai ir noildze un aptaujas intervāls. Katrs FluentWait gadījums nosaka maksimālo laika gaidīšanas laiku, kā arī biežuma pārbaudi.
Izaicinājumi, apstrādājot Ajax zvanu Selenium Webdriver
- Komandas "pauze" izmantošana Ajax zvana apstrādei nav pilnīgi uzticama. Ilgstošs pauzes laiks padara testu nepieņemami lēnu un palielina testēšanas laiku. Tā vietā "waitforcondition" būs vairāk noderīga, pārbaudot Ajax lietojumprogrammas.
- Ir grūti novērtēt risku, kas saistīts ar konkrētām Ajax lietojumprogrammām
- Dodot izstrādātājiem pilnīgu brīvību modificēt Ajax lietojumprogrammu, testēšanas process ir sarežģīts
- Automātiska testa pieprasījuma izveidošana testēšanas rīkiem var būt sarežģīta, jo šāda AJAX lietojumprogramma POST datu iesniegšanai bieži izmanto atšķirīgu kodēšanas vai sērijas paņēmienu.
Piemērs Ajax APKALPOŠANAI
importēt org.openqa.selenium.By;importēt org.openqa.selenium.WebDriver;importēt org.openqa.selenium.WebElement;importēt org.openqa.selenium.chrome.ChromeDriver;importēt org.openqa.selenium.support.ui.ExpectedConditions;importēt org.openqa.selenium.support.ui.WebDriverWait;importēt org.testng.Assert;importēt org.testng.annotations.BeforeClass;importēt org.testng.annotations.Test;publiskā klase Ajaxdemo {privāta virkne URL = "http://demo.guru99.com/test/ajax.html";WebDriver draiveris;WebDriverWait wait;@BeforeClasspublic void setUp () {System.setProperty ("webdriver.chrome.driver", ". \\ chromedriver.exe");// izveidot hroma instancidraiveris = jauns ChromeDriver ();draiveris.pārvaldīt (). logs (). maksimizēt ();draiveris.navigate (). to (URL);}@Pārbaudepublic void test_AjaxExample () {Pēc konteinera = By.cssSelector (". Container");pagaidiet = jauns WebDriverWait (draiveris, 5);pagaidiet. līdz (ExpectedConditions.presenceOfElementLocated (konteiners));// Iegūstiet tekstu pirms ajax zvana veikšanasWebElement noTextElement = driver.findElement (By.className ("radiopoga"));String textBefore = noTextElement.getText (). Trim ();// Noklikšķiniet uz radio pogasdriver.findElement (By.id ("jā")). noklikšķiniet ();// Noklikšķiniet uz pogas Pārbaudītdriver.findElement (By.id ("pogu pārbaude")). noklikšķiniet ();/ * Saņemiet tekstu pēc ajax zvana * /WebElement TextElement = driver.findElement (By.className ("radiopoga"));pagaidiet. līdz (ExpectedConditions.visibilityOf (TextElement));String textAfter = TextElement.getText (). Trim ();/ * Pārbaudiet abus tekstus pirms ajax zvana un pēc ajax zvana teksta. * /Assert.assertNotEquals (textBefore, textAfter);System.out.println ("Ajax zvans veikts");String várhatóText = "Radio poga ir atzīmēta, un tās vērtība ir Jā";/ * Pārbaudiet paredzamo tekstu ar tekstu, kas atjaunināts pēc ajax zvana * /Assert.assertEquals (textAfter, paredzamaisText);vadītājs.slēgt ();}}
Kopsavilkums:
- AJAX ļauj tīmekļa lapai izgūt nelielu daudzumu datu no servera, nepārlādējot visu lapu.
- Lai pārbaudītu Ajax lietojumprogrammu, jāpiemēro dažādas gaidīšanas metodes
- ThreadSleep
- Netiešā gaidīšana
- Nepārprotama gaidīšana
- Webdriver Pagaidiet
- Tekoši gaidiet
- Automātiska testa pieprasījuma izveidošana testēšanas rīkiem var būt sarežģīta, jo šāda AJAX lietojumprogramma POST datu iesniegšanai bieži izmanto atšķirīgu kodēšanas vai sērijas paņēmienu.