美文网首页自动化测试移动终端测试工作生活
【IOS测试】一篇读懂自动化框架WDA-WebDriverAge

【IOS测试】一篇读懂自动化框架WDA-WebDriverAge

作者: 七喜酱子 | 来源:发表于2019-07-04 19:28 被阅读1次

    引言:

    Apple公司因其无与伦比的设计,让无数果粉为之迷恋。但作为IOS测试人员,也因为IOS系统封闭和不开放库苦不堪言,羡慕死Android测试。不过没关系,本文将为你介绍一个IOS自动化测试框架WDA。

    什么是WDA

    WDA(WebDriverAgent)是Facebook推出的一个开源ios自动化测试框架。(官方链接:https://github.com/facebookarchive/WebDriverAgent)

    WDA原理

    W通过Mobile JSON Wire Protocol Specification协议,实现与浏览器的交互。与我们平常理解的服务器客户端过程不同,wda框架是以iPhone端作为服务器,运行测试脚本的mac端为发请求的客户端。

    如下图,mac首先运行WebDriverAgent 工程,令iPhone上启动WDA这个app, 这个app实现了WebDriver server。然后mac端再作为客户端运行测试脚本,通过http协议向WDA app发起请求,服务端再通过调用XCTest.framework和调用苹果的API直接在设备上执行命令。

    wda使用

    1.环境搭建

    前提:

    本地有环境 xcode,node,carthage,libimobiledevice,iproxy。

    如果没有,那么xcode可以在appstore下载最新,后几个分别用如下命令安装:

    ① brew install carthage

    ② brew install node

    ③ brew install --HEAD libimobiledevice

    ④ npm install -g iproxy

    另外还需要一个开发者账户

    步骤1:下载wda源码。

    使用命令  git clone https://github.com/appium/WebDriverAgent

    该地址是Facebook提供的官方仓库,另外Appium也提供一个wda仓库(

    https://github.com/appium/WebDriverAgent.git,appium有时候会对facebook没有及时修复的bug的进行一些提前修复更新。供读者参考,笔者这里使用的就是appium提供的仓库)。

    步骤2:初始化。

    进入步骤一中下载的本地路径,执行 ./Scripts/bootstrap.sh。

    步骤3.改签名。换成自己准备的开发者账户签名。

    步骤4.启动服务

    Product-Test启动后如下图。如果需要信任信用,在iPhone上设置-通用-设备管理-信任即可。

    步骤5.验证服务状态

    首先,设置端口转发 ——mac终端输入命令 iproxy 8100 8100 设备id  (设备id可以通过命令 idevice_id -l查看);然后查看服务是否正常浏览器访问, http://localhost:8100/status,返回如下数据表示正常。

    2.用例编写

    1)查看元素信息

    2)代码编写

    以python测试脚本为例, 首先安装wda的python库 pip install facebook-wda 示例代码如下:

    3.并行测试

    Q:如果只有1台mac设备,但是想同时进行自动化测试怎么办?

    A:使用不同的端口转发,为了方便,这里使用终端命令启动xcode。

    /{你的xcode路径}/xcodebuild build-for-testing test-without-building -project /{你的wda项目路径}/WebDriverAgent.xcodeproj -schemeWebDriverAgentRunner -destination id={设备1的udid} USE_PORT={端口1}test

    那么对应的端口转发就是 iproxy {端口1} {端口1} {设备1的udid}

    在我这里的启动命令是

    /usr/bin/xcodebuild build-for-testing test-without-building -project /Users/tenvideo/Documents/workspace/myproj/wda_from_appium/WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destinationid=30a04ed46d97b716ff0e68021d3236ac47b789ac USE_PORT=8100 test

    完成如下启动后,分别在测试脚本中指定端口和应用即可实现并行测试。

    相关文章

      网友评论

        本文标题:【IOS测试】一篇读懂自动化框架WDA-WebDriverAge

        本文链接:https://www.haomeiwen.com/subject/tkhdhctx.html