干货|iOS自动化测试之基于模拟器的自动化测试
本文节选自霍格沃兹测试学院内部教材
本章节主要讲解 WebDriverAgent 环境搭建以及如何通过 iOS模拟器完成自动化。
WebDriverAgent简介
WebDriverAgent 是在 iOS 客户端启动了 WebDriver 的 Server,借助这个 server,可以远程控制 iOS
设备进行自动化测试。
Appium 早期支持 UIAutomation,但在 Xcode8 移除 UIAutomation 后,项目增加支持 WebDriverAgent 。所以
Appium 对 iOS 的测试主要依赖于 facebook 的 WebDriverAgent(现 WebDriverAgent 已转由 Appium
维护)。
参考链接:
https://github.com/appium/WebDriverAgent
安装WebDriverAgent
Appium 包含 WebDriverAgent 环境,所以仅安装 Appium 环境即可
初始化项目
在 WebDriverAgent 目录下执行:./Scripts/bootstrap.sh
,一般 Appium 自带的 WebDriverAgent
目录为:
/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium- webdriveragent
WebDriverAgent
选择 WebDriverAgentRunner 和对应的设备,设置对应的 Team、certificate,然后点击“运行”即可。
build 成功后,在菜单栏 product -> Test 即可
** 注意: 需在手机上信任 WebDriverAgent **
Appium的Capability设置
在模拟器下,需要设置以下参数;如果是测试手机浏览器,可以使用 browserName 代替 app,并把值设置为 Safari 。
Capability name | value | describe |
---|---|---|
automationName | XCUITest | 使用引擎的名字 |
platformName | iOS | 操作系统 |
deviceName | iPhone 11 Pro | 设备名 |
platformVersion | 11.3 | 系统版本 |
app | xx/demo.ipa | apk、.ipa等的加载路径 |
根据以上表格内的参数设置对应的 Capability
通过如下命令获取本机可用的 deviceName
instruments -s devices
启动 Session 后,看到如下界面就表示成功了。
接着就可以直接启动 inspector 做测试了。
常见问题
Unable to launch WebDriverAgent because of xcodebuild failure: "ENOENT: no
such file or directory, open
'/Applications/Appium.app/Contents/Resources/app/node_modules/appium-
xcuitest-driver/WebDriverAgent/PrivateHeaders/XCTest/XCUICoordinate.h'
-
原因:WDA 的依赖不对
-
解决方法:进入 appium 的目录执行
npm install
语句,然后再重新启动,例如: -
cd /Applications/Appium.app/Contents/Resources/appnpm install
从今天开始,我们将会给大家分享iOS自动化内容,如果有想了解的知识点可以在下方留言哦~
** _ _
来霍格沃兹测试开发学社,学习更多软件测试与测试开发的进阶技术,知识点涵盖web自动化测试 app自动化测试、接口自动化测试、测试框架、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移、测试右移、精准测试、测试平台开发、测试管理等内容,课程技术涵盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关技术,全面提升测试开发工程师的技术实力
QQ交流群:484590337
公众号 TestingStudio
点击获取更多信息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了