基于windows的iOS自动化测试
准备工作
技术原理
手机端的WDA Runner(WebDriverAgent)类似于appium测试框架中的 UIAutomator Server,将从客户端接收到的控制命令转换为XCUITest 相关API操作,实现对应用界面的控制。WebDriverAgent应用需要通过xcode编译安装。
usbmuxd是苹果提供的一个服务,用于USB和TCP协议之间的转换,实现在没有网络的情况下也可以连接设备,iTunes和Xcode就使用到了这个服务,所以在环境安装中需要在windows上安装一个iTunes。
WDA的启动使用阿里开源的tidevice工具。
Language Bindings为不同语言的测试脚本,比如基于python语言的facebook-wda,基于go语言的gwda等。
环境抢建
iOS 设备安装 wda
安装Xcode
下载WebDriverAgent
github下载地址
安装iTunes
下载安装Windows 版 iTunes方法:下载地址
iTunes安装成功后,连接上你的iPhone:
安装python,windows10安装python详细过程
安装pip
官网下载pip安装包,官网地址:https://pypi.org/project/pip/
下载pip的tar包,如图:
解压后,通过cmd进入解压目录,执行命令:python setup.py install
安装tidevice
打开cmd,输入命令: pip3 install -U "tidevice[openssl]",如图表示安装成功
查看tidevice版本号验证是否安装成功,打开cmd,输入命令:tidevice version或tidevice -v,如图
安装git,下载地址
安装weditor(本人n次安装失败,找到了源码安装方法)
先用git下载源码,git clone https://github.com/openatx/weditor
基于源码安装pip3 install -e weditor
连接测试
手机安装WebDriverAgent
启动驱动器
tidevice wdaproxy -B com.facebook.WebDriverAgentRunner.xctrunner --port 8100
启动weditor
python -m weditor,会自动打开一个浏览器,选择iOS
输入http://localhost:8100,连接
python命令测试
import wda
wda.DEBUG = True
c = wda.Client('http://localhost:8100')
c = wda.Client() # 读取环境变量DEVICE_URL,如果没有使用默认地址:http://localhost:810
c.home() #点击home键
s = c.session("com.Litta.LittaCoach") # 打开app
用例编写
元素定位
s(name='我的',className='Button')
s(nameContains='账号设置',index=0)
s.xpath('//Table/Cell[2]/Button[1]/StaticText[1]')
s(className='XCUIElementTypeTextField')
s(predicate='name BEGINSWITH "账号设置"')
元素事件
s(name='我的',className='Button').tap
s(nameContains='账号设置',index=0).click()
s(name="我的").tap_hold(2.0)
text操作
s.xpath('//ScrollView/Other[1]/Other[1]').set_text('1')
s(className='XCUIElementTypeTextField').set_text('18651660882')
s(className='XCUIElementTypeTextField').clear_text()
异常
assert s(nameContains='账号设置',index=0).wait(1.0)
打印元素信息
ele = s(predicate='name BEGINSWITH "账号设置"') print(ele.name)
ele = s(predicate='name BEGINSWITH "账号设置"') print(ele.text)
屏幕截图
s.screenshot().save("test.png")
手势滑动swipe
s.swipe(fx, fy, tx, ty, duration=0.5) # 从(fx, fy)滑到(tx, ty),坐标值可以是绝对值或者百分比,duration单位秒
s.swipe_left()
s.swipe_right()
WDA教程
https://github.com/openatx/facebook-wda
https://blog.51cto.com/u_15649298/5479308
https://blog.csdn.net/QQqun810119819/article/details/120939806
基于windows的iOS自动化测试相关推荐
- Windows实现appium+iOS自动化测试
在前面的文章介绍了Windows上安装配置tidevice,环境搭建好后就实现了在Windows运行iOS自动化的第一步,接下来本文重点介绍在Windows上如何运行iOS自动化测试. 如果没有安装好 ...
- 基于 KIF 的 iOS UI 自动化测试和持续集成
客户端 UI 自动化测试是大多数测试团队的研究重点,本文介绍猫眼测试团队在猫眼 iOS 客户端实践的基于 KIF 的 UI 自动化测试和持续集成过程. 一.测试框架的选择 iOS UI 自动化测试框架 ...
- Web 自动化解决方案 [开源项目] 基于 Selenium 的 Web 自动化测试框架完美版
欢迎查阅Selenium(Web自动化测试框架体系) Selenium ) Selenium是一个用于Web应用程序的自动化测试工具,直接运行在浏览器中,就像真正的用户在操作一样• 支持的浏览器包括I ...
- App 自动化解决方案 [开源项目] 基于 Appium 的 UI 自动化测试框架完美版
欢迎查阅Appium(Android自动化测试框架体系) Appium Appium是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的,可用于IOS和Android以 ...
- iOS自动化测试(一)-技术方案、环境配置与疯狂踩坑
移动端的自动化测试,最常见的就是Android自动化测试,IOS相较于Android要安全稳定的多,但是IOS也是一个需要测试的方向,作为测试,不认真测一下心里还是过意不去,只是我个人觉得Androi ...
- 基于XMPP的IOS聊天客户端程序(XMPP服务器架构)
最近看了关于XMPP的框架,以文本聊天为例,需要发送的消息为: <message type="chat" from="kang@server.com" t ...
- 基于python的界面自动化测试-基于Python语言的自动化测试实战第二章(上)
原标题:基于Python语言的自动化测试实战第二章(上) 测试环境搭建 2.1 Windows 下的环境搭建 如果想要学习一门编程语言,对于新手来说只需到其官方网站上去下载最新版本安装即可,但对于想要 ...
- Unity3d(U3D) Windows/Android/IOS 播放rtmp/rtsp方案
如果基于Unity3d完全重新开发一个播放器,代价大,周期长,不适合快速出产品,最好的方式就是集成现有Native平台上成熟稳定播放器. 集成Navtive播放器可行性分析: 安卓: Unity3d可 ...
- [iPhone高级] 基于XMPP的IOS聊天客户端程序(XMPP服务器架构)
最近看了关于XMPP的框架,以文本聊天为例,需要发送的消息为: [html] view plaincopy <message type="chat" from="k ...
- python自动化测试开发_基于python的selenium2自动化测试从基础到实战(Python3、selenium2、自动化测试、web测试)...
Selenium2是目前比较流行的一款针对web页面测试的自动化测试工具,他的前身是Selenium .Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozi ...
最新文章
- Python 十六进制转Base64_马克的Python学习笔记#数据编码与处理 4
- 迭代法移动盘子java,算法学习--日记(牛顿迭代法)
- pandas使用read_csv读取数据使用skiprows参数跳过指定的数据行但保留表头、pandas使用to_csv函数将dataframe保存为gzip压缩文件
- 开展网络营销推广能为企业网站带来怎样的网络营销推广优势?
- 前端篇--------1.css学习笔记
- linux根-文件系统-目录管理-文件管理-用户及权限详解-用户组-用户管理-权限管理...
- 运行Jenkins部署任务
- 不敢摔!三星Galaxy Fold换屏费用可以入手一部华为Mate 30了
- 华为今年不会推出运行鸿蒙OS的手机;Deno 1.3.2发布|极客头条
- 麦克纳姆轮运动特性分析(图片版)
- python 代码命令大全-深度学习中python常用命令
- c语言任务设计书,C语言课程设计任务书(必备).pdf
- 项目实战 五 拟合直线 获得中线
- execution表达式里写多个条件
- 面试: 华为综合测试
- SAP合同类型的使用
- React父传子、子传父
- 学习Linux(centos7)准备的工具
- Flink中的CEP(二)
- 【Linux】Linux安装
热门文章
- ftp客户端使用详细说明【linux和windows】
- 关于anaconda下载包的位置的问题
- c 语言游戏代码大全,给我提供个小游戏的C 语言代码
- The Things Network LoRaWAN Stack V3 学习笔记 2.6 新增一个 CN470 子频段
- Android四大组件之间的交互,Android四大组件每个组件的作用?它们都可以开启多进程吗?...
- android stub,Android:ViewStub
- 全网最全移动端App性能测试方法,值得收藏!
- GJB5000A与DO178B/C简介及对比
- 基于matplotlib对iris数据集进行数据分析
- java 高斯投影_高斯投影正算公式以及java代码