Changes

Jump to: navigation, search

Selenium 3 architektúra

2,238 bytes added, 16:42, 20 July 2018
Szofisztikált node konfiguráció (képességek)
}
</source>
{{note|A driver elérési útját azért az osztályon belül adtuk itt meg, mert a WebDriver lokálisan fut, nem a Seleinum GRID-en, így a driver-re itt 'helyben' van szükség. Majd látni fogjuk, hogy a [[SeliniumSelenium_3_architektúra#GRID_2.0|Grid 2.0]] fejezetben, hogy grid-es futtatás esetén a node-oknak kell megadni a driver helyét, nem a tesztet futtató VM-nek, mivel a node-oknak el lesz küldve a teszt, azok fogják futtatni.}}
<br><br>
A Selenium IDE egy Firefox böngésző plug-in, aminek a segítségéve felvehetjük a user aktivitást egy úgynevezett Selenese script formájában, amit vissza is játszhatunk a Selenium IDE-ben.
:[[File:ClipCapIt-180719-161423.PNG|700px]]
{{warning|A '''Selenium IDE 3'''-asnak semmi köze már a régi '''Selenium IDE 2'''-eshez és a korábbi verziókhoz. A Firefox 56-tól kezdve, a Firefox áttért a '''WebExtensions''' plugin API-ra, és megszüntette a legacy firefox plugin támogatást, amire a Selenium IDE 2 is épített. Így nulláról újraírták a Selenium IDE-t '''WebExtensions''' API támogatással. A WebExtensions API egy szabványosított plugin API, így a Selenium IDE 3 elvileg Chrome-ban is működik<br>
<br>
 
==Selenium IDE alternatívák (Katalon)==
Ahogy azt már láthattuk a legnagyobb baja a Selenium IDE 3-asnak az, hogy nem írták meg benne az Export funkciót, vagyis, hogy a felvett script-ből egy gombnyomással futtatható WebDriver alapú java kódot tudjunk készíteni.
Az exportált script gyakorlatilag azonnal futtatható a [[SeliniumSelenium_3_architektúra#WebDriver_teszt_.C3.ADr.C3.A1sa|Webdav teszt írása]] fejezetben bemutatott környezetben. Arra kell csak figyelni, hogy a megfelelő driver-t beállítsuk a '''webdriver.gecko.driver''' system változóval.
<br>
<br>
A [[SeliniumSelenium_3_architektúra#WebDriver_teszt_.C3.ADr.C3.A1sa|Webdav teszt írása]] fejezetben készített teszt-et fogjuk átalakítani, úgy hogy a GRID-en fusson a teszt, ne közvetlenül a lokális böngészőben.
<source lang="java">
import java.net.URL;
</source>
 
<br><br>
==Szofisztikált node konfiguráció (képességek)==
A fenti példában a node-nak nem adtunk meg semmilyen képességet, így attól függetlenül, hogy a RemoteWebDriver-ben milyen képességet adtunk meg, az egy szem node-unk mindig megkapta a tesztet.
}
</source>
 
 
{{warning|A Selinium 3-ban a node konfig szerkezete is megváltozott, a Selenium 2-re írt konfigurációs fájlok már nem fognak itt működni! }}
===Node-ok indítása===
:[[File:ClipCapIt-180720-094940.PNG]]
A bal oldalit indítottuk a chrome konfigurációval, látható hogy csak Chrome ikonka van rajta.
 
 
 
===Teszt elkészítése===
Annyi változás lesz az előzőhöz képest, hogy most két JUnit tesztet fogunk definiálni, egyet a Firefox node-nak, egyet pedig Chrome node-nak, és kiemeljük a teszt futtató részt egy külön metódusba, ahol a '''MutableCapabilities''' interfészt fogjuk használni a kapacitás megadására.
 
<source lang="java">
import java.net.URL;
 
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.MutableCapabilities;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.firefox.FirefoxOptions;
import org.openqa.selenium.remote.RemoteWebDriver;
 
public class GridTest2 {
 
@Test
public void executeFirefoxDriver() throws Exception {
this.execute(new FirefoxOptions());
}
 
@Test
public void executeChrome() throws Exception {
this.execute(new ChromeOptions());
}
 
private void execute(final MutableCapabilities brwserOptions) throws Exception {
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), brwserOptions);
driver.get("https://www.google.com/");
driver.findElement(By.id("lst-ib")).click();
driver.findElement(By.id("lst-ib")).clear();
driver.findElement(By.id("lst-ib")).sendKeys("how to use sele");
driver.findElement(By.id("lst-ib")).sendKeys(Keys.DOWN);
driver.findElement(By.id("lst-ib")).sendKeys(Keys.ENTER);
}
}
</source>
 
 
===Teszt futtatása===
 Ha most futtatjuk le a tesztet, akkor a két JUnit teszt egymás után le fog futni: :[[File:ClipCapIt-180719180720-124810101824.PNG]](Firefox browser remote üzemmódban) A HUB a képességeknek megfelelő node-ra fogja küldeni a tesztet: <pre>10:17:34.558 INFO - Got a request to create a new session: Capabilities {acceptInsecureCerts: true, browserName: firefox, moz:firefoxOptions: {args: [], prefs: {}}}...10:17:42.568 INFO - Got a request to create a new session: Capabilities {browserName: chrome, goog:chromeOptions: {args: [], extensions: []}}...</pre>   {{note|Nekem a chrome nem indult el, a teszt egy helyben állt a node2-ön. Azt írták, hogy nem megfelelő a driver-em}}

Navigation menu