Zoeken…


Invoering

Parallelle uitvoering in appium met behulp van het selenium GRID-concept. Vind stap voor stap proces.

Stap voor stap proces

Parallel testen met Appium met behulp van GRID: ik zal de manier beschrijven die voor mij werkte. Maak Selenium-raster met Appium

  1. Stel het seleniumraster in Download selenium standalone server jar op lokaal bestandssysteem Open uw terminal en navigeer naar de map waar u het jar-bestand hebt geplaatst en voer de volgende opdracht uit:
java -jar selenium-server-standalone-2.53.3.jar -role hub
Open http://localhost:4444/grid/console and you should be able to see GRID console in your browser.
  1. De Appium-knooppunten instellen Hier moet u de json-bestanden maken. Stel dat u op twee apparaten wilt werken en vervolgens twee verschillende json-bestanden maakt. Hier is een json-bestand, ik heb als: {"mogelijkheden": [{"applicationName": "ONEPLUS A3003", "browserName": "ONEPLUS A3003", "platformName": "ANDROID", "maxIngrams": 1}] , "configuratie": {"cleanUpCycle": 2000, "timeout": 30000, "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", "host": "127.0.0.1", "port": 4723, "maxSession": 1, "register": true, "registerCycle": 5000, "hubPort": 4444, "hubHost": "uw ip-adres"}} sla het bovenstaande bestand op als jasonFile1.json Hier zal applicatienaam zijn - > Uw mobiel-> instellingen-> over telefoon-> Modelnummer Hier is hubHost uw ip-adres. Merk op dat u als standaard cmd-locatie moet gaan en vervolgens onderstaande opdracht uitvoert

appium --nodeconfig C: /richa/jasonfile1.json -p 4723 -bp 4724 -U xxxx

i) Merk op dat u de absolute pasth van het json-bestand moet opgeven ii) poort als 4723 iii) Bootstrap-poort als 4724 iv) -U bijvoorbeeld heb ik gegeven als xxxx

u kunt de apparaat-ID vinden als -> Uw mobiel-> instellingen-> status-> Serienummer U kunt ook "adb device" doen en deze apparaat-ID controleren.

Vervolgens wordt het Selenium-raster met één apparaat gemaakt.

Voer nu opnieuw het tweede json-bestand uit en je begint appium. Hier is het tweede json-bestand:

{"mogelijkheden": [{"applicationName": "Lenovo K50a40", "browserName": "Lenovo K50a40", "platformName": "ANDROID", "maxIngrams": 1}], "configuratie": {"cleanUpCycle": 2000, "timeout": 30000, "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", "host": "127.0.0.1", "port": 4730, "maxSession": 1, "register ": true," registerCycle ": 5000," hubPort ": 4444," hubHost ":" uw ip-adres "}} sla het bovenstaande bestand op als jasonFile2.json

Start het tweede knooppunt met Lenovo mobiel. appium --nodeconfig C: / richa / jasonFile2.json -p 4730 -bp 4731 -U xxxx

Selenium Grid ziet er zo uit

3) Maak TestNG parallelle uitvoeringsmethoden om uw test uit te voeren.

-> Let op: de waarde van de apparaatnaam is de udid die u eerder hebt opgegeven. Je kunt het krijgen door adb-apparaten uit te voeren vanaf je opdrachtprompt.

Maak nu SearchHotelTestCase.Java zoals hieronder: pakket com.trivago.TestCases;

import java.net.MalformedURLException; java.net.URL importeren; java.util.concurrent.TimeUnit importeren;

import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.annotations.B BeforeMethod; import org.testng.annotations.Parameters; import org.testng.annotations.Test;

import com.trivago.pages.LocaleSelectionPage; import com.trivago.pages.SearchLocation; import com.trivago.pages.SplashScreenPage;

import io.appium.java_client.MobileElement; import io.appium.java_client.android.AndroidDriver;

openbare klasse SearchHotelTestCase {privé AndroidDriver-stuurprogramma;

@Parameters ({"deviceName _", "platformVersion _", "applicationName_"}) @BeforeMethod public void beforeMethod (String deviceName_, String platformVersion_, String applicationName_) gooit MalformedURLException, InterruptedException {

DesiredCapabilities-mogelijkheden = nieuw DesiredCapabilities (); powers.setCapability ("deviceName", deviceName_); powers.setCapability ("platformVersion", platformVersion_); powers.setCapability ("platformName", "Android"); powers.setCapability ("applicationName", applicationName_); powers.setCapability ("app", "/Users/richa.b.shrivastava/Downloads/com.trivago_2017-04-28.apk"); powers.setCapability ("appPackage", "com.trivago"); powers.setCapability ("appActivity", "com.trivago.activities.SplashActivity");

URL url = nieuwe URL (" http://0.0.0.0:4723/wd/hub/ "); System.out.println ("voor webdriver"); driver = nieuwe AndroidDriver (url, mogelijkheden); System.out.println ("na webdriver"); driver.manage (). timeouts (). impliciet Wait (10, TimeUnit.SECONDS); Thread (4000); }

@Test public void SearchHotel () {// Maak de objecten van Page Class LocaleSelectionPage localeSelectionPage = new LocaleSelectionPage (driver); SplashScreenPage splashScreenPage = nieuwe SplashScreenPage (stuurprogramma); SearchLocation searchLocation = nieuwe SearchLocation (driver);

// Roep de methoden van paginaklasse localeSelectionPage.selectLocale () aan; splashScreenPage.clickSplashSearchText (); searchLocation.inputSearchText ( "Paris"); searchLocation.selectSuggestions ("Eiffeltoren, Parijs");

}

}



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow