📅  最后修改于: 2020-12-06 11:54:06             🧑  作者: Mango
Selendroid是用于测试Android本机和混合应用程序的测试自动化框架。 Selendroid测试是使用Selenium Webdriver客户端API编写的。
与JSON Wire Protocol / Selenium 3 Ready完全兼容。
无需修改被测应用即可使其自动化。
使用内置的Android驱动程序Webview应用测试移动网络。
自动化本地或混合应用程序的相同概念。
UI元素可以通过不同的定位器类型找到。
支持手势:高级用户交互API。
现有仿真器将自动启动。
Selendroid支持硬件设备的热插拔。
作为节点完全集成到Selenium Grid中,以进行缩放和并行测试。
多个Android目标API支持(10到19)。
内置Inspector以简化测试用例开发。
Selendroid可以在运行时使用您自己的扩展进行扩展。
Selendroid可以同时与多个Android设备(模拟器或硬件设备)进行交互。
该工具的缺点是速度很慢,并且在某些内存小于4GB的计算机上无法使用。
步骤1-使用Robotium的前提条件是Java SDK(最低1.6)。如果您的系统上未安装Java,请按照以下步骤操作。
从Oracle JavaSE下载JDK和JRE
接受许可协议。
安装JDK和JRE。
设置环境变量,如下面的屏幕快照所示。
步骤2-从SDK Android下载Android Studio(由于文件的大小,这将需要一些时间)。
步骤3-从Selendroid下载Selenium jar文件和测试应用程序
步骤4-使用USB电缆的物理设备。
确保使用USB电缆将设备连接到工作站。
确保已启用USB调试模式(在设置下→开发人员选项下)。
要使用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 /)。
打开Web浏览器并导航至: http:// localhost: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运行配置运行该类。