2016-06-14 56 views
0

我想知道如何運行可以針對2種不同設備的JUnit測試?如何爲Appium上的2個不同設備運行JUnit測試?

我看到您可以設置Appium來定位設備併爲該Appium服務器設置端口,但是如何讓JUnit測試2個不同的設備?

設置爲Appium上設備(32456和43364):

node . -p 4492 -bp 2251 -U 32456 

node . -p 4491 -bp 2252 -U 43364 

這將運行用不同的端口2臺Appium服務器。

在我的JUnit測試中,我爲AndroidDriver設置了端口。你如何能夠使用相同的junit測試測試2個不同的設備?

driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap); 

我們無法擁有2套JUnit的代碼中的驅動程序到不同的端口

driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap); 

driver2 = new AndroidDriver(new URL("http://127.0.0.1:4724/wd/hub"), cap); 

這是不可能的,因爲我們可能並不總是知道不同的設備端口。我們基本上需要讓JUnit測試工作或者是可以通過測試的可配置端口(不知道這是否可能)。

是否有可能將值傳遞給JUnit測試?我們正在使用JUnitCore進行測試。

driver = new AndroidDriver(new URL("http://127.0.0.1:"+ SOME_PASSED_IN_PORT + "/wd/hub"), cap); 
+0

使用硒電網 –

回答

0

創建多個驅動器作爲解決方案之一

driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap); 

相當於

driver = new AndroidDriver(new URL("http://127.0.0.1:" + "4723" + /wd/hub"), cap); 

所以,你可以在一個簡單的方式創建並同時使用兩種不同的驅動程序,因爲 -

String port1 = "4491"; //assuming this being the port number 
String port2 = "4492"; 
driver1 = new AndroidDriver(new URL("http://127.0.0.1:" + port1 + "/wd/hub"), cap); 
driver2 = new AndroidDriver(new URL("http://127.0.0.1:" + port2 + "/wd/hub"), cap); //also the cap could differ in both the cases 

注意:您可以根據您的要求向驅動程序提供不同/類似的功能。此外,這是一個非常天真的並行執行方法,嘗試使用Selenium-Grid尋求解決方案,以獲得有效的方法。

+0

是的,我已經試過了但我應該指定這是不可能的,因爲我們可能並不總是知道不同的設備端口。我們基本上需要讓JUnit測試工作或者是可以通過測試的可配置端口(不知道這是否可能)。也許我們需要製作另一臺服務器來控制哪個appium實例。我會更新這個問題。 – ALM

0

使用硒電網

硒網格可以讓你在並行不同的設備上運行測試。也就是說,針對不同的設備同時運行多個測試。本質上,Selenium-Grid支持分佈式測試執行。它允許在分佈式測試執行環境中運行您的測試。

+0

Selenium Grid是否允許您進行Junit測試並針對不同的設備運行它?它如何設置etten中的captern,其中driver = new AndroidDriver(新URL(「http://127.0.0.1:4723/wd/hub」),cap); – ALM

0

簡單的方法就是你開始與不同端口的兩個appium服務器和更新腳本中的端口號,但你需要複製的代碼,其他的解決辦法是使用硒電網

+0

2個不同的端口不是問題中所述的選項。 – ALM

相關問題