appium
Appium의 병렬 테스트
수색…
소개
selenium GRID 개념을 사용하여 appium에서 병렬 실행. 단계별 절차를 찾아보십시오.
단계별 프로세스
GRID를 사용하여 Appium을 사용한 병렬 테스트 : 필자는 나를 위해 일한 방법을 설명 할 것입니다. Appium으로 Selenium Grid 생성
- Selenium 그리드 설정 로컬 파일 시스템에서 selenium 독립 실행 형 서버 jar 다운로드 터미널을 열고 jar 파일을 배치 한 디렉토리로 이동하여 다음 명령을 실행하십시오.
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.
- Appium Nodes 설정 여기에 json 파일을 만들어야합니다. 두 장치에서 실행하고 두 개의 다른 json 파일을 만들고 싶다고 가정 해보십시오. 다음은 하나의 json 파일입니다. { "capabilities": [{ "applicationName": "ONEPLUS A3003", "browserName": "ONEPLUS A3003", "platformName": "ANDROID", "maxInstances": 1}] , "configuration": { "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": "사용자의 IP 주소"}} 위의 파일을 jasonFile1.json으로 저장하십시오. 여기서 applicationName은 > 귀하의 모바일 -> 설정 -> 전화 번호 -> 모델 번호 여기 hubHost 귀하의 IP 주소가 될 것입니다 여기에 당신이 기본 cmd 위치로 가서 다음 명령을 실행해야합니다
appium --nodeconfig C : /richa/jasonfile1.json -p 4723 -bp 4724 -U xxxx
i) json 파일의 절대적인 pasth를 ii) 포트 4723으로 제공해야합니다. iii) 부트 스트랩 포트 4724 iv) -U 예를 들어 xxxx
당신은 장치 ID를 찾을 수 있습니다 -> 귀하의 모바일 -> 설정 -> 상태 -> 일련 번호 또한 "adb 장치"를 수행 하고이 장치 ID를 확인하십시오.
그런 다음 하나의 장치로 Selenium Grid를 생성합니다.
이제 다시 두 번째 json 파일을 실행하면 appium이 시작됩니다. 두 번째 json 파일은 다음과 같습니다.
{ "기능": "{"applicationName ":"Lenovo K50a40 ","browserName ":"Lenovo K50a40 ","platformName ":"ANDROID ","maxInstances ": 1}],"configuration ": {"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 ":"사용자의 IP 주소 "}} 위 파일을 jasonFile2.json으로 저장하십시오.
Lenovo mobile로 두 번째 노드를 시작하십시오. appium --nodeconfig C : / richa / jasonFile2.json -p 4730 -bp 4731 -U xxxx
Selenium Grid는 다음과 같이 보일 것입니다.
3) TestNG 병렬 실행 메소드를 작성하여 테스트를 실행하십시오.
-> 장치 이름의 가치는 이전에 제공 한 우드가 될 것입니다. 명령 프롬프트에서 adb 장치를 실행하여 얻을 수 있습니다.이제 SearchHotelTestCase.Java를 다음과 같이 작성하십시오. package com.trivago.TestCases;
import java.net.MalformedURLException; import java.net.URL; import java.util.concurrent.TimeUnit;
import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Parameters; 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;
공용 클래스 SearchHotelTestCase (전용 AndroidDriver 드라이버;
@BeforeMethod public void beforeMethod (String deviceName_, String platformVersion_, String applicationName_), MalformedURLException, InterruptedException를 슬로우합니다. @Parameters ({ "deviceName _", "platformVersion _", "applicationName_"})
DesiredCapabilities 기능 = 새로운 DesiredCapabilities (); capabilities.setCapability ( "deviceName", deviceName_); capabilities.setCapability ( "platformVersion", platformVersion_); capabilities.setCapability ( "platformName", "Android"); capabilities.setCapability ( "applicationName", applicationName_); capabilities.setCapability ( "app", "/Users/richa.b.shrivastava/Downloads/com.trivago_2017-04-28.apk"); capabilities.setCapability ( "appPackage", "com.trivago"); capabilities.setCapability ( "appActivity", "com.trivago.activities.SplashActivity");
URL url = 새 URL ( "http : ///.0.0.0:4723/wd/hub/ "); System.out.println ( "before webdriver"); 드라이버 = 새로운 AndroidDriver (url, capabilities); System.out.println ( "webdriver 후"); driver.manage (). timeouts (). implicitlyWait (10, TimeUnit.SECONDS); Thread.sleep (4000); }
@Test public void SearchHotel () {// 페이지 클래스의 객체 만들기 LocaleSelectionPage localeSelectionPage = new LocaleSelectionPage (driver); SplashScreenPage splashScreenPage = 새로운 SplashScreenPage (드라이버); SearchLocation searchLocation = 새로운 SearchLocation (드라이버);
// 페이지 클래스 localeSelectionPage.selectLocale ()의 메소드를 호출한다. splashScreenPage.clickSplashSearchText (); searchLocation.inputSearchText ( "Paris"); searchLocation.selectSuggestions ( "에펠 탑, 파리");
}
}