サーチ…


前書き

セレニウムGRIDコンセプトを使用したappiumでの並列実行。ステップバイステップのプロセスを見つけてください。

ステップバイステップのプロセス

GRIDを使用したAppiumによる並列テスト:私が働いていた方法を説明します。 AppiumでSelenium Gridを作成する

  1. Seleniumグリッドのセットアップローカルファイルシステム上のselenium standalone server 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.
  1. Appium Nodesの設定ここでは、jsonファイルを作成する必要があります。 2つのデバイスで実行し、2つの異なるjsonファイルを作成するとします。ここに1つの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ファイルの絶対パスを指定する必要があります。ii)ポートは4723です。iii)ブートストラップポートは4724です。iv)-Uたとえば、xxxx

- >あなたのモバイル - >設定 - >ステータス - >シリアル番号のようにデバイスIDを見つけることができます "adbデバイス"を実行し、このデバイスIDを確認することもできます。

次に、1つのデバイスでSelenium Gridを作成します。

もう一度、2番目のjsonファイルを実行すると、appiumが起動します。2番目の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で2番目のノードを起動します。 appium --nodeconfig C:/ richa / jasonFile2.json -p 4730 -bp 4731 -U xxxx

Selenium Gridは次のようになります

3)テストを実行するTestNGパラレル実行メソッドを作成します。

- >デバイス名の価値はあなたが以前に提供したudidになることに注意してください。コマンドプロンプトで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; 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;

public class SearchHotelTestCase {プライベートAndroidDriverドライバ。

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

DesiredCapabilities capabilities =新しい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.0:4723/wd/hub/ "); System.out.println( "webdriverの前");ドライバ=新しいAndroidDriver(URL、機能); System.out.println( "webdriverの後"); ()。暗黙的に待機する(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( "エッフェル塔、パリ");

}

}



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow