美文网首页自动化测试移动终端测试工作生活
【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