开发手册 欢迎您!
软件开发者资料库

移动测试 - Selendroid框架

移动测试Selendroid框架 - 从概述,平台,设备类型,Native Vs Hybrid Vs Mobileweb,Device Vs应用程序测试,模拟器和模拟器,应用程序测试,UI测试,规划和工具,硬件视角,简单易懂的步骤学习移动测试设备测试类型,框架概述,Android测试框架,IOS测试框架,Robotium测试框架,Selendroid测试框架,Appium测试框架,Zucchini测试框架。

Selendroid是一款用于测试Android原生和混合应用程序的测试自动化框架. Selendroid测试使用Selenium Webdriver客户端API编写.

Selendroid的好处

  • 完全兼容JSON Wire Protocol/Selenium 3 Ready.

  • 无需修改需要测试的应用程序以实现自动化.

  • 使用内置的Android驱动程序webview app测试移动网络.

  • 自动化原生应用程序或混合应用程序的相同概念.

  • UI元素可以通过不同的定位器类型找到.

  • 支持手势:高级用户交互API.

  • 现有仿真器自动启动.

  • Selendroid支持热门插入硬件设备.

  • 作为节点完全集成到Selenium Grid中进行扩展和并行测试.

  • 多个Android目标API支持(10到19).

  • 内置Inspector以简化测试用例开发.

  • Selendroid可以在运行时使用您自己的扩展程序进行扩展.

  • Selendroid可以与多个Android设备(模拟器或硬件)进行交互设备)同时.

Selendroid的缺点

这个工具的缺点是这是非常慢,在一些内存小于4GB的机器上,它是无法使用的.

如何使用Selendroid

第1步 : 使用Robotium的先决条件是Java SDK(最低1.6).如果您的系统上没有安装Java,请按照以下步骤进行操作.

  • 从以下位置下载JDK和JRE  Oracle JavaSE

  • 接受许可协议.

  • 安装JDK和JRE.

  • 设置环境变量如下面的屏幕截图所示.

环境变量

第2步 : 从 SDK Android 下载Android Studio(由于文件大小,需要一些时间).

  • 双击exe并运行安装程序.

  • 继续使用所有默认选项.

  • 设置ANDROID_HOME.

步骤3 : 从 Selendroid 下载Selenium jar文件和测试应用程序

  • 下载selenium jar文件和测试应用程序.

  • 将其放入任何文件夹,即D:\ SelendroidJars.

第4步 : 带USB线的物理设备.

  • 确保设备通过USB线连接到工作站.

  • 确保启用USB调试模式(在setttings →  Developer选项下).

使用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/).

打开Web浏览器并导航到: http://localhost:4444/wd/hub/status .

第8步 : 创建Java项目;在构建路径中添加Selendroid Standalone库,Selenium jar和JUnit库.

Selenium Master

第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运行配置运行该类.