- 移動測試教程
- 移動測試 - 首頁
- 移動測試 - 概述
- 移動測試 - 平臺
- 移動測試 - 裝置型別
- 原生應用 vs 混合應用 vs 移動網頁
- 移動測試 - 裝置 vs 應用
- 模擬器 vs 模擬環境
- 移動測試 - 應用
- 移動測試 - UI
- 移動測試 - 計劃與工具
- 硬體視角
- 移動裝置測試 - 型別
- 移動測試 - 框架概述
- 移動測試 - Android框架
- 移動測試 - iOS框架
- Robotium框架
- Selendroid框架
- 移動測試 - Appium框架
- 移動測試 - Zucchini框架
- 移動測試有用資源
- 移動測試 - 快速指南
- 移動測試 - 有用資源
- 移動測試 - 討論
移動測試 - Selendroid框架
Selendroid是一個用於測試Android原生和混合應用程式的測試自動化框架。Selendroid測試使用Selenium Webdriver客戶端API編寫。
Selendroid的優勢
完全相容JSON Wire協議/Selenium 3就緒。
無需修改被測應用即可實現自動化。
使用內建的Android驅動程式webview應用測試移動網頁。
自動化原生或混合應用的概念相同。
UI元素可以透過不同的定位器型別找到。
支援手勢:高階使用者互動API。
自動啟動現有模擬器。
Selendroid支援硬體裝置的熱插拔。
作為節點完全整合到Selenium Grid中,用於擴充套件和並行測試。
支援多個Android目標API(10到19)。
內建檢查器,簡化測試用例開發。
Selendroid可以在執行時使用您自己的擴充套件進行擴充套件。
Selendroid可以同時與多個Android裝置(模擬器或硬體裝置)互動。
Selendroid的缺點
此工具的缺點是速度相當慢,在某些記憶體小於4GB的機器上無法使用。
如何使用Selendroid
步驟1 - 使用Robotium的先決條件是Java SDK(至少1.6)。如果您的系統上未安裝Java,請按照以下步驟操作。
從Oracle JavaSE下載JDK和JRE
接受許可協議。
安裝JDK和JRE。
設定環境變數,如下面的螢幕截圖所示。
步驟2 - 從SDK Android下載Android Studio(由於檔案大小,這將需要一些時間)。
- 雙擊exe檔案並執行安裝程式。
- 繼續使用所有預設選項。
- 設定ANDROID_HOME。
步驟3 - 從Selendroid下載Selenium jar檔案和測試應用程式
- 下載selenium jar檔案和測試應用程式。
- 將其放置到任何資料夾中,例如D:\SelendroidJars。
步驟4 - 使用USB線的物理裝置。
確保裝置已透過USB線連線到工作站。
確保已啟用USB除錯模式(在設定→開發者選項下)。
使用Selendroid測試應用程式
要使用Selendroid測試應用程式,請按照以下步驟操作:
步驟1 - 安裝Eclipse。
步驟2 - 建立一個Java專案。
步驟3 - 將下載的Selendroid jar檔案新增到新建立的專案中。
步驟4 - 將下載的Selenium jar檔案新增到新建立的專案中。
步驟5 - 在Eclipse中配置testNG。
步驟6 - 使用USB線將移動裝置連線到系統。從設定下的開發者選項中設定USB除錯模式。
步驟7 - 執行Selendroid伺服器。開啟命令提示符並編寫以下程式碼,然後按Enter鍵:
java -jar selendroid-standalone-0.17.0-with-dependencies.jar -app selendroid-test-app-0.17.0.apk
Selendroid-standalone將在埠4444上啟動一個http伺服器,並將掃描使用者建立的所有Android虛擬裝置(avd)(~/.android/avd/)。
開啟網頁瀏覽器並導航到:https://:4444/wd/hub/status。
步驟8 - 建立一個Java專案;在構建路徑中新增Selendroid Standalone庫、Selenium jar和JUnit庫。
步驟9 - 在Java專案下建立包。
步驟10 - 在包下建立一個類並編寫以下程式碼。
package selTest;
import io.selendroid.SelendroidDriver;
import io.selendroid.common.SelendroidCapabilities;
import io.selendroid.standalone.SelendroidConfiguration;
import io.selendroid.standalone.SelendroidLauncher;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.testng.Assert;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.Test;
public class SelendroidTest {
private WebDriver driver ;
@BeforeSuite
public void setUp() throws Exception {
SelendroidConfiguration config = new SelendroidConfiguration();
config.addSupportedApp("selendroid-test-app-0.9.0.apk");
SelendroidLauncher selendroidServer = new SelendroidLauncher(config);
selendroidServer.launchSelendroid();
SelendroidCapabilities caps = new
SelendroidCapabilities("io.selendroid.testapp:0.9.0");
driver = new SelendroidDriver(caps);
}
@Test
public void selendroidTest() throws Exception {
WebElement inputField = driver.findElement(By.id("my_text_field"));
Assert.assertEquals("true", inputField.getAttribute("enabled"));
inputField.sendKeys("Selendroid");
Assert.assertEquals("Selendroid", inputField.getText());
WebElement button = driver.findElement(By.id("buttonTest"));
button.click();
button = driver.findElement(By.id("button2"));
button.click();
Thread.sleep(5000);
button = driver.findElement(By.id("startUserRegistration"));
button.click();
Thread.sleep(10000);
WebElement element = driver.findElement(By.id("label_username"));
String text = element.getText();
System.out.println(text);
element = driver.findElement(By.id("inputUsername"));
element.sendKeys("bob");
element = driver.findElement(By.id("inputEmail"));
element.sendKeys("test@gmail.com");
element = driver.findElement(By.id("inputPassword"));
element.clear();
element.sendKeys("test1233");
element = driver.findElement(By.id("inputName"));
element.clear();
element.sendKeys("My Name ");
element = driver.findElement(By.id("input_preferedProgrammingLanguage"));
element.click();
element = driver.findElement(By.id("text1"));
element.click();
element = driver.findElement(By.id("input_adds"));
element.click();
element = driver.findElement(By.id("btnRegisterUser"));
element.click();
element = driver.findElement(By.id("buttonRegisterUser"));
element.click();
}
@AfterSuite
public void tearDown(){
driver.quit();
}
}
步驟11 - 使用testNG執行配置執行該類。