appium单机并发测试-入门

参考文档:https://anikikun.gitbooks.io/appium-girls-tutorial/content/start_appium_server.html

                  https://qaseven.github.io/2016/05/05/appium/


此处单机并发是指:在多台手机上同时执行一个测试脚本


测试应用:android移动端App

测试方向:基于界面的自动化测试

测试工具:appium+java+eclipse

实现目标:使用appium实现同一个case在两台android设备上同时运行


-开始-

      能够使用appium编写、运行测试用例后,又面临了另一个问题,即如何将编写的case同时在多个设备上运行呢?这样可以达到兼容不同机型的目的,于是开始google和baidu,各种资料看过之后,先实现了最最基本的单机并发测试(将同一个case在多个设备上运行)


-过程-

1、 启动Appium Server

     要实现多个设备同时运行,必须开启多个appium server,且每一个appium server对应一个设备。(从图形化界面启动appium,无法达到两个同时启动两个,所以要在命令行启动server,通过打开多个命令终端,每个终端启动一个server即可)

     我的电脑是mac,appium的启动文件存放路径包括两种,

      appium1.5.3,运行:/Applications/Appium.app/Contents/Resources/node_modules/appium/build/lib/main.js

      appium1.5.3之前版本,运行/Applications/Appium.app/Contents/Resources/node_modules/appium/bin/

     

      由于我的appium版本是1.5.3,所以在两个终端分别输入以下命令,从而启动两个appium server:  

   $/Applications/Appium.app/Contents/Resources/node_modules/appium/build/lib/main.js -p 4723 -bp 4724 -U LE67A06110254732

   $/Applications/Appium.app/Contents/Resources/node_modules/appium/build/lib/main.js -p 4725 -bp 4726 -U 55dd55cb

   注:4723和4725分别是启动的appium server端口号,LE67A06110254732是设备id,可以通过adb devices获取到

      4724和4726分别是启动的bootstrap端口号,55dd55cb是设备id

2、 验证端口号是否开启成功

     在浏览器输入http://127.0.0.1:4723/和http://127.0.0.1:4725/,给出如下响应,则表明成功     

3、开始写自动化脚本

     关键点:定义两个设备参数,然后   

   @BeforeTest

   public void setUp() throws MalformedURLException {

  // Created object of DesiredCapabilities class.

  DesiredCapabilities capabilities = new DesiredCapabilities();

  capabilities.setCapability("deviceName""55dd55cb"); //设备一

  capabilities.setCapability(CapabilityType.BROWSER_NAME"");

  capabilities.setCapability("platformName""Android");

  capabilities.setCapability("appPackage""被测程序包名");

  capabilities.setCapability("appActivity""被测程序启动方法");

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

  driver.manage().timeouts().implicitlyWait(25, TimeUnit.SECONDS);

  

  DesiredCapabilities capabilities2 = new DesiredCapabilities();

  capabilities2.setCapability("deviceName""LE67A06110254732"); // 设备二

  capabilities2.setCapability("platformName""Android"); // 手机平台

  capabilities2.setCapability("appPackage""被测程序包名"); // app包名

  capabilities2.setCapability("appActivity""被测程序启动方法"); // app启动方法

  driver2 = new AndroidDriver<>(new URL("http://127.0.0.1:4725/wd/hub"), capabilities);

  driver2.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

 }


4、运行测试用例

   点击eclipse上方运行,即可看到该用例在两台android设备上同时执行,见附件视频


你可能感兴趣的:(移动UI自动化)