appium
Parallel testen in Appium
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
- 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.
- 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");
}
}