Robotu klase
Robotu klase selēnā tiek izmantota, lai iespējotu automatizētu testēšanu Java platformas ieviešanai. Tas ģenerē ievades notikumus vietējās sistēmās, lai veiktu testēšanas automatizāciju, pašpalaidošas demonstrācijas un citas lietojumprogrammas, kurās lietotājiem ir nepieciešama kontrole pār peli un tastatūru. Robotu klase ir viegli īstenojama, un to var viegli integrēt automatizētā sistēmā.
Kāpēc robotu klase?
Robotu klase tiek izmantota Selenium, jo dažos Selenium automatizācijas testos lietotājiem ir nepieciešama kontrole pār tastatūru vai peli, lai mijiedarbotos ar OS logiem, piemēram, uznirstošo logu lejupielādei, uznirstošo logu drukāšanai utt., Kā arī vietējām lietojumprogrammām, piemēram, piezīmju blociņam, kalkulatoram utt. Webdriver nevar apstrādāt šos uznirstošos logus / lietojumprogrammas, tāpēc Java versijā 1.3 tika ieviesta robotu klase, kas var apstrādāt OS uznirstošos logus / lietojumprogrammas.
Šajā apmācībā jūs uzzināsiet,
- Robotu klases priekšrocības
- Robotu klases dokumentācija
- Izpratne par robotu klases iekšējām metodēm un lietošanu
- Kā izpildīt robotu klases kodu, izmantojot testNG
- Robotu klases trūkumi
Robotu klases priekšrocības
- Robotu klase var simulēt tastatūras un peles notikumu
- Robotu klase var palīdzēt augšupielādēt / lejupielādēt failus, izmantojot selēna tīmekļa draiveri
- Robotu klasi var viegli integrēt pašreizējā automatizācijas sistēmā (atslēgvārds, ar datiem pamatots vai hibrīds)
Kas ir robotu klases dokumentācija?
Robot klases dokumentācija ir Selēns palīdz lietotājiem izprast pamata izšķirtspējas, sintaksi un izmantošana visām metodēm un funkcijām, kas pieejami robotu klasē Java AWT paketē. Lietotāji var apskatīt dokumentāciju oficiālajā Oracle vietnē. Lietotāji var arī paši izveidot vietējās mašīnas dokumentāciju.
Lai izveidotu dokumentāciju vietējā mašīnā, rīkojieties šādi:
1. solis. Jūs atradīsit src.zip failu JDK mapē. Kopējiet src.zip un izvelciet to citā mapē vai direktorijā (teiksim D: vai E:)
2. solis) Izvelciet src mapi un dodieties uz (ceļš līdz src mapei) / src / java / awt
3. solis) Kopējiet pašreizējo awt mapes atrašanās vietu un atveriet komandu uzvedni.
4. solis. Cmd mainiet pašreizējo direktorijas atrašanās vietu uz awt mapi un ierakstiet “javadoc * .java”, kā parādīts zemāk
Pagaidiet kādu laiku, līdz sistēma apstrādāsies. Pēc pabeigšanas awt mapē redzēsit dažus HTML failus.
5. solis. Atveriet index.html
6. solis. Šeit ir pilnīga awt pakotnes dokumentācija, kreisajā navigācijas joslā noklikšķiniet uz hipersaites “Robots” (skatiet zemāk esošajā attēlā atzīmēto 1).
Šeit jūs varat arī redzēt visas robotu klases metodes un saskarnes (skat. 2, kas atzīmētas augšējā attēlā).
Izpratne par robotu klases iekšējām metodēm un lietošanu
Robotu klases metodes var izmantot, lai mijiedarbotos ar tastatūras / peles notikumiem, vienlaikus veicot pārlūka automatizāciju. Alternatīvi var izmantot AutoIT, taču tā trūkums ir tas, ka tas ģenerē izpildāmo failu (exe), kas darbosies tikai uz Windows, tāpēc tā nav laba iespēja izmantot.
Tīmekļa automatizācijas laikā dažas populārākās robotu klases metodes:
- keyPress (): Piemērs: robot.keyPress (KeyEvent.VK_DOWN): Šī metode ar tastatūras bultiņas taustiņa nospiešanu uz leju
- mousePress (): Piemērs : robot.mousePress (InputEvent.BUTTON3_DOWN_MASK): Šī metode nospiedīs peles labo klikšķi.
- mouseMove (): Piemērs : robot.mouseMove (point.getX (), point.getY ()): Tas pārvietos peles rādītāju uz norādītajām X un Y koordinātām.
- keyRelease (): Piemērs: robot.keyRelease (KeyEvent.VK_DOWN): Šī metode ar tastatūras bultiņas taustiņa atlaišanu
- mouseRelease (): Piemērs: robot.mouseRelease (InputEvent.BUTTON3_DOWN_MASK): Šī metode atbrīvos peles labo klikšķi
Koda paraugs, lai automatizētu koplietošanas gadījumus, izmantojot robotu klasi
- Ņemsim piemēru vietnei http://spreadsheetpage.com/index.php/file/C35/P10/, kurā pēc noklikšķināšanas uz tīmekļa elementa ( .//a[@href=contains(text(),'ylyly- calendar.xls '] ) parādās operētājsistēmas lejupielādes uznirstošais logs.
- Lai to paveiktu, mēs izmantojam robotu klasi (izveidojot kodā robotu klases instanci, sakiet Robot robot = new Robot () ). Robotu klase esam klāt JDK AWT paketē.
- Lai nospiestu lejupvērsto tastatūras bultiņas taustiņu ( robot.keyPress (KeyEvent.VK_DOWN))
- Lai nospiestu tastatūras taustiņu TAB (mēs izmantojam robot.keyPress (KeyEvent.VK_TAB))
- Lai nospiestu taustiņu Enter, izmantojam ( robot.keyPress (KeyEvent.VK_ENTER)).
Šeit ir koda paraugs
importēt java.awt.AWTException;importēt java.awt.Robot;importēt java.awt.event.KeyEvent;importēt org.openqa.selenium.By;importēt org.openqa.selenium.WebDriver;importēt org.openqa.selenium.firefox.FirefoxDriver;klase Exercise1 {public static void main (String [] args) met AWTException, InterruptedException {WebDriver draiveris = jauns FirefoxDriver ();draiveris.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // parauga URLdraiveris.findElement (By.xpath (".// a [@ href = satur (text (), 'gada kalendārs.xls')]" ")). noklikšķiniet ();Robotu robots = jauns robots (); // Robotu klase met AWT izņēmumuThread.sleep (2000); // Thread.sleep met InterruptedExceptionrobot.keyPress (KeyEvent.VK_DOWN); // nospiediet tastatūras bultiņu uz leju, lai pārvietotos un atlasītu radiopogu SaglabātThread.sleep (2000); // miegs ir izmantots tikai, lai demonstrētu katru notikumu atsevišķirobot.keyPress (KeyEvent.VK_TAB);Thread.sleep (2000);robot.keyPress (KeyEvent.VK_TAB);Thread.sleep (2000);robot.keyPress (KeyEvent.VK_TAB);Thread.sleep (2000);robot.keyPress (KeyEvent.VK_ENTER);// nospiediet tastatūras ievadīšanas taustiņu, lai veiktu virs atlasītās darbības}}
Pārbaudiet šo videoklipu, lai redzētu, kā tas darbojas
Kā izpildīt robotu klases kodu, izmantojot TestNG
Tā kā tagad jūs zināt robotu klases pamatmetodes, tāpēc sapratīsim dažas sarežģītākas metodes -
Pieņemsim, ka jums nav vēlaties izmantot klikšķa metodi , lai noklikšķinot mājas elements.
Šādos gadījumos varat izmantot klases Robot metodi mouseMove.
1. solis. MouseMove metode kā parametrus, piemēram, robot.mouseMove (630, 420), ņem x un y koordinātas, kur 630 norāda x asi un 420 norāda y asi. Tātad, šī metode pārvietos peles rādītāju no pašreizējās vietas uz minēto x un y krustošanās punktu.
2. solis) Tālāk mums jānospiež peles poga. Mēs varam izmantot metodi mousePress, piemēram, robot.mousePress (InputEvent.BUTTON1_DOWN_MASK) .
3. solis) Pēc nospiešanas pele ir jāatbrīvo. Mēs varam izmantot robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK ), lai atbrīvotu peles kreiso klikšķi.
Darbības kods, izmantojot testNG:
Lai palaistu kodu, izmantojot Testng, ir nepieciešama testNG vai atsauces TestNG jar faila bibliotēkas atkarība.
TestNG atkarība no maven:
org.testng testng 6.1.1
Pēc maven atkarības vai burka faila pievienošanas. Jums jāimportē testNG testa anotācija. Kad tas viss ir izdarīts, vienkārši noklikšķiniet ar peles labo pogu uz programmas koda un noklikšķiniet uz Palaist kā, pēc tam noklikšķiniet uz TestNG
... un jūs atradīsit, ka kods sāks izpildi, izmantojot testNG API.Šeit ir kods
importēt java.awt.AWTException;importēt java.awt.Robot;importēt java.awt.event.InputEvent;importēt java.awt.event.KeyEvent;importēt org.openqa.selenium.WebDriver;importēt org.openqa.selenium.firefox.FirefoxDriver;importēt org.testng.annotations.Test;publiskā klase Excersise1 {@Pārbaudepubliskā statiskā tukšuma izpilde () met InterruptedException, AWTException {WebDriver draiveris = jauns FirefoxDriver ();draiveris.pārvaldīt (). logs (). maksimizēt ();draiveris.get ("http://spreadsheetpage.com/index.php/file/C35/P10/"); // parauga URLRobotu robots = jauns robots ();robots.mouseMove (630, 420); // pārvietojiet peles punktu uz noteiktu vieturobots.kavējums (1500); // aizkave ir likt kodam gaidīt minētās milisekundes pirms nākamās darbības izpildesrobot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // nospiediet kreiso klikšķirobot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // atlaidiet kreiso klikšķirobots.kavējums (1500);robot.keyPress (KeyEvent.VK_DOWN); // nospiediet tastatūras bultiņas taustiņu, lai atlasītu radiopogu SaglabātThread.sleep (2000);robot.keyPress (KeyEvent.VK_ENTER);// nospiediet tastatūras ievadīšanas taustiņu, lai veiktu virs atlasītās darbības}}
Pārbaudiet šo videoklipu, lai redzētu, kā tas darbojas
Robotu klases trūkumi
Robotu ietvaram ir daži zemāk minētie trūkumi:
- Atslēgvārda / peles pasākums darbosies tikai pašreizējā loga instancē. Piemēram, pieņemsim, ka kods veic jebkuru robotu klases notikumu, un koda izpildes laikā lietotājs ir pārvietojies uz kādu citu ekrānu, tad šajā ekrānā notiks atslēgvārda / peles notikums.
- Lielākā daļa metožu, piemēram, mouseMove, ir atkarīgas no ekrāna izšķirtspējas, tāpēc var būt iespēja, ka kods, kas darbojas vienā mašīnā, var nedarboties citā.
Kopsavilkums
Robotu klase AWT paketē tiek izmantota tastatūras / peles notikumu ģenerēšanai, lai mijiedarbotos ar OS logiem un vietējām lietotnēm.
Robota galvenais mērķis ir atbalstīt selēna automatizēto testu projektu izveidi Java platformā
Šo rakstu ir izstrādājis Ramandeep Singh, kurš ir vadošā MNC testa automatizācijas inženieris.