IOS开发-基于WebDriverAgent代理服务,实现iOS手机app自动化测试的框架搭建

导引

iOS自动化测试一直使用的appium,iOS系统升级至10.0 Xcode8.0之后,改用WebDriverAgent代理服务作为server,编写了一套基于WebDriverAgent服务 app客户端自动化框架。并实现了自动化测试app的demo。

一:整体框架设计文章来源地址https://www.yii666.com/article/754104.html

首先是WebDriverAgent服务原理以及WDAClient以及ruby测试脚本调用框架图如下:

二:WebDriverAgent

WebDriverAgent 在 iOS 端实现了一个 WebDriver server ,借助这个 server 我们可以远程控制 iOS 设备。你可以启动、杀死应用,点击、滚动视图,或者确定页面展示是否正确。

它有如下特性:网址:yii666.com<

真机和模拟器都支持
实现了大部分的 WebDriver spec
USB support for devices,所谓的usb支持,指的是设备不需要上网,目前client binding 还没有。
提供了一个 Inspector
Easy development cycle as it can be launched & debugged directly via Xcode
Unsupported yet, but works with tvOS & OSX
运行和使用:

WebDriverAgent Facebook发布的,这里有详细介绍:https://github.com/facebook/WebDriverAgent/

直接下载下来,Xcode8中调试一下;连接真机运行test 手机端就会安装好server-WebDriverAgent

(具体教程test而Home上有的:https://toutiao.io/posts/404649/app_preview)

Demo运行后的界面显示:

主界面:

Alerts界面:文章地址https://www.yii666.com/article/754104.html

Attributes界面:

Scrolling界面:网址:yii666.com文章来源地址:https://www.yii666.com/article/754104.html

三 :WDAClient

WDAClient是基于WebDriverAgent实现的WDA的客户端。至目前完成了被测app的启动,根据不同属性定位元素 以及元素的点击 输入等基本操作。

具体实现:

1. 首先:启动webdriveragent;

2. app启动:

向WebdriverAgent发送post请求 ,请求参考WDA项目中 FBSessionCommands.m

请求地址:url=http://#{ip}:8100/session,WevDriverAgent会响应启动app,并返回session数据;

3.启动app后,定位元素以及操作元素

定位元素 post请求:url+/session/element, 请求参数是定位元素标签以及值 参考 FBFindElementCommands.m;响应会返回elementId

操作*元素post请求:url+/session/element/id/* 参考项目中文件:/Commands/FBElementCommands.m 里面介绍了很多元素操作的方法 进行相应的转换即可。
1
2
3
4
5
6
7
8
9
10
11
12
13
在WebDriverAgentLib/Commands/中有很多方法,目前只实现这么多,后续将模块补充完整;

四:Testing Script

WDAClient封装完成之后,就是自动化测试脚本实现。

安装WebDriverAgent笔记注意点

在安装WebDriverAgent时遇到了不少坑,小小的记录下。最初参考的是这个地址来安装,很详细;

1、WebDriverAgent教程在github上时有的在xcode打包之前一定记得要先执行 ./scripts/bootstrap.sh,至于证书什么的,使用自己个人账号就好了

2、ios10后就不能直接访问http://127.0.0.1:8100/inspector了,需要通过usb与手机通讯好才能使用;即使用iproxy来转发端口;

转发方法:iproxy <本地端口> <手机端口> [udid];一台机子时可以不写udid;执行转发方法后控制台显示:waiting for connection

3、执行好2后,在浏览器中执行http://localhost:8100/inspector;就可以获取到元素信息了
---------------------
作者:Maxdong24
来源:CSDN
原文:https://blog.csdn.net/Maxdong24/article/details/75532791
版权声明:本文为博主原创文章,转载请附上博文链接!

版权声明:本文内容来源于网络,版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。文本页已经标记具体来源原文地址,请点击原文查看来源网址,站内文章以及资源内容站长不承诺其正确性,如侵犯了您的权益,请联系站长如有侵权请联系站长,将立刻删除

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信图片_20190322181744_03.jpg

微信扫一扫打赏

请作者喝杯咖啡吧~

支付宝扫一扫领取红包,优惠每天领

二维码1

zhifubaohongbao.png

二维码2

zhifubaohongbao2.png