干货|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等相关技术,全面提升测试开发工程师的技术实力。

视频资料领取:https://qrcode.testing-studio.com/f?from=jianshu&url=https://ceshiren.com/t/topic/15844

QQ交流群:484590337

公众号:TestingStudio

点击查看更多信息

你可能感兴趣的:(干货|iOS自动化测试之基于模拟器的自动化测试)