Appium测试UWP之开启多台测试

上一篇 / 下一篇  2017-05-09 10:43:36 / 个人分类:Appium

  要开启多台Server进行UWP测试,那么首先要了解下Appium的工作原理:
  一.Appium框架组成 
 Appium框架组成是java自动化脚本即client端(通过Java编写的代码,也可以通过其他语言编写),Appium指令服务器,sdk通信环境(Android模拟器)或移动端设备(这里是测试Windows平台的设备,)。
  二.Appium通信原理:
  Appium通信原理:Client端发送自动化指令给Appium server,Appium Server接收到client发送的指令后,转换为移动端能够识别的指令,然后发送给移动端设备,并对移动端设备进行操作。
如下图,Android设备的appium自动化原理。
   

  2.1 Client端:
一般来说就是运行代码的机器,即我们是用Java语言编写的代码,也可以用其他Selenium支持Python,ruby,C#等语言来编写,Appium提供的Appium-client API是Appium通过扩展Selenium的Webdriver协议而来的,我们编写代码的时只要实现Webdriver标准协议即可。

  2.2 Appium Server:
Appium Server功能是监ting接口,接收client端发送的command,然后将command转为移动端能够识别的command,然后发送给移动设备进行操作,再等待移动设备返回来的操作结果,将操作结果发送给client端。 Appium server是可以放在client端,也可以放在云端。 Appium server 默认的端口号是4723,用于Appium server监ting client端的发送来的请求。

  2.3 移动设备:
Appium最早是支持Android和IOS移动设备app自动化测试,后来开始对Windows设备平台的支持,支持windows平台的UWP软件自动化测试
  2.3.1 Android设备
     Android端,Appium基于Webdriver协议,利用Bootstrap.jar,最后通过调用UIautomatior命令,实现APP的自动化测试(Android4.2以前的版本是用Instrumentation框架,通过绑定另外一个独立的selendroid项目来实现),Android4.2以后的版本是用UIautomator)。UIAutomator测试框架是Android SDK自带的APP UI自动化测试Java库,另外UIAutomator对H5支持有限,Appium引入了Chromedriver以及Safaridriver来实现H5的自动化。
  在Android设备的工作过程:
  1.Appium server将监ting 到的4723端口的指令,转发给中间件Bootstrap.jar。Bootstrap.jar是用Java编写的,安装在Android手机上;
  2.Bootstrap监ting 4724端口并接收Appium server的指令;
  3.Bootstrap再通过调用UIautomator的命令来实现具体的command操作。
  4.最后Bootstrap将执行的结果返回给Appium server。

   2.3.2 IOS设备
     IOS设备底层是用的uiautomation接口。Appium ios封装的是apple的instruments框架,主要用了Instrument里的Automation(APPle的自动化测试框架),然后在设备注入Bootstrap.js进行监ting。
 在IOS设备的工作过程:
1.Appium Server将监ting 到的4723端口的指令,调用instruments.js启动一个socket server,同时分出一个子进程instrument.app,将Bootstrap.js注入到设备,然后
2.instruments.j启动一个socket server,同时分出一个子进程instrument.app,将Bootstrap.js注入到IOS设备,进行具体的指令操作。
3.最后command执行完成后,Bootstrap.js将执行的结果返回给Appium server。

      Android和IOS区别在于Appium server将请求转发到Bootstrap.js和Bootstrap.jar,然后由Bootstrap驱动UIAutomation和UiAutomator去device上完成具体的操作动作。

  2.3.3 Windows设备
Appium对Windows设备的支持和操作要比Android和IOS设备简单许多,但需要Windows application Driver.exe支持,Winappdriver是一个符合Json移动协议标准的服务,主要用于监ting Json协议的HTTP请求。Winappdriver默认的监ting地址是127.0.0.1:4723,可以修改这个地址来监ting不同的IP地址和端口,实现远程自动化测试但需要使用管理员权限来启动WinappDriver, 
语法: WinAppDriver.exe IPaddress Port 
        操作:1.安装好winAppDriver后,以管理员权限运行cmd;
       2.定位到WinAPPDriver安装路径下;
     3.运行 WinAppDriver.exe 10.31.4.100 4723 (也可以修改为WinAppDriver.exe 10.31.4.100 4880/wd/hub)
那么重点来了,自己编写的脚本,如何在远程server上跑起来呢?
 三.开启UWP多台远程server测试
   不像Appium测试Android和IOS app那样设置远程server,UWP的远程测试是需要在Windows设备上设置并开启对应端口的,具体操作如下:
   1. 首先在要测试的Windows设备上开启入站规则,主要是端口设置
   1)在Windows 10设备上,进入System and security->Windows firewall->Windows firewall with advanced security即高级安全Windows防火墙
   2)新建一个inbound rule入站规则
   3)Rule Type选择Port;
   4)选择TCP
   5)输入一个特定的本地端口号(一般WinAppDriver的标准端口是4723)
   6)操作选择允许连接
   7)配置文件选择所有项
   8)输入规则名称,如WinAPPdriver远程

  2.其次再脚本机上ping下Windows10 设备的IP 地址,检查网络连接是否正常。
  3.然后在Windows10设备上安装WinAppDriver.exe
  4.运行 WinAppDriver.exe 10.31.4.100 4723.
  5.最后将脚本中的capability连接的URL地址改为要测试的机器的地址,即10.31.4.100。就可以开始跑脚本了。

  

TAG:

奋斗的个人空间 引用 删除 819longjiayan   /   2017-05-09 15:44:14
监ting居然是敏感词,害得写了一上午的日志,发布不了 ,浪费了一些时间
 

评分:0

我来说两句

Open Toolbar