软件测试 / 测试开发丨 iOS App 自动化测试
获取更多相关知识
本文为霍格沃兹测试开发学社学员学习笔记分享,文末附原文链接。
一、Xcode 基础使用
1、Xcode 安装
AppStore 下载安装最新版本
2、 模拟器安装 App
模拟器运行:

3、 查看应用的 bundleID
BundleID 概念:一个应用的唯一标识

4、 查看应用路径
提取 app:

5、 扩展
苹果的开发者需要开发者证书,才可以将开发的 app 发布到 AppStore 开发证书, 开发证书用于真机调试发布证书, 发布证书用于提交到 appStore
6、 真机运行
所以如果想用 Xcode 运行 App 到真机上,要满足几个条件:成为 Apple Developer 计划的成员需要设置认证书和应用 ID(开发证书和发布证书)
二、iOS 自动化测试环境安装
1、 硬件环境
Mac 系统电脑
iOS 系统手机或模拟器
2、 软件环境
Xcode
依赖工具(libimobiledevice,WDA,ideviceinstaller 等)
被测应用
3、 依赖工具

4、 依赖安装
三、iOS 自动化相关工具
1、 常用命令
查看设备
启动模拟器
安装应用
卸载应用
查看应用 bundleID
2、 介绍
操作模拟器命令:xcrun simctl
操作真机命令:idevice<xxx>
3、 查看设备
查看模拟器列表
查看真机设备列表
4、 启动模拟器
启动模拟器命令:
xcrun simctl boot <device>
5、 安装应用
模拟器安装应用
真机安装应用
6、 卸载应用
模拟器卸载应用
真机卸载应用
7、 查看应用的 bundleid
模拟器查看应用 bundleid 找到 app 的安装包右键点击显示包内容找到 Info.plist 文件双击打开,就可以找到对应的 Bundle identifier 项
真机查看应用的 bundleid : ideviceinstaller -l

8、 总结
模拟器使用 xcrun simctl 命令来操作,比如启动模拟器,安装应用,卸载应用等,真机使用 idevice_xxxx 来操作。
可以通过命令来完成很多事情,比如:查看设备、启动模拟器、安装应用、卸载应用、截图命令、查看应用 bundleID 等。
四、iOS 元素定位
1、 页面结构分析
启动 Appium Server Version: 1.22.0
Inspector App Version: 2021.12.2
配置 Desire Capability
2、 定位表达式结构
iOS Predicate String 定位表达式结构:属性+运算符+值
3、 元素属性

4、 运算符

5、比较运算符
常用的比较运算符:==,>=,<=,>,<,!=,<>可用来比较数值或字符串
6、范围运算符
常用的范围运算符:IN,BETWEEN 可用于数值和字符串的范围核对
7、逻辑运算符
常用的逻辑运算符:AND,OR,NOT 逻辑与:AND(等同于 &&)逻辑或:OR(等同于||)逻辑非:NOT(等同于!)
8、模糊匹配 LIKE
模糊匹配使用 LIKE 关键字? 和 * 都可以作为通配符?匹配一个字符*匹配多个字符。
9、字符串运算
CONTAINS 字符包含
BEGINSWITH 以某个字符开头
ENDSWITH 以某个字符结尾
10、正则表达式
使用正则表达式匹配想要的内容
11、总结
iOS 中常用元素定位器 predicate string
predicate String 的定位表达式格式【属性+运算符+ 值】
属性包括 type,name,label,enable,visible 等
运算符分很多种,比如:比较运算符,范围运算符,逻辑运算符,模糊匹配,正则匹配等等
值就是预期值
五、iOS 模拟器自动化测试
1、WebDriverAgent 简介
简称 WDA。它是由 Facebook 推出的一款移动端测试框架。
Xcode8 移除 UIAutomation ,使用 WebDriverAgent
2、WebDriverAgent 工作原理

3、WDA 安装
Appium >=1.22 自动编译安装 WebDriverAgent 到 iOS 设备
一般 Appium 自带的 WebDriverAgent 目录为
/Applications/Appium.app/Contents/\Resources/app/node_modules/appium/\node_modules/appium-webdriveragent
Appium 的 Capability 设置
4、日志分析
5、验证启动成功
浏览器访问 “http://127.0.0.1:8100/status”
六、iOS 真机自动化测试
1、连接真机
使用 USB 线
真机需要连接网络(验证证书)
2、安装应用
方法一:build 应用到手机上信任证书:设置->通用->设备管理->信任开发者证书
方法二:ideviceinstaller –install/-i xx.app
3、配置 capability-未安装应用
4、配置 capability-已安装应用
5、使用 Appium Desktop 验证环境

6、相关问题和解决方法
问题 1:appium inspector 启动 session 的时候,报错,提示没有相应的模拟器设备
解决 1:设置真机的 Desired Capability 没有设置 udid
问题 2:appium inspector 启动 session 的时候,报错,提示应用不被认可,
解决 2:因为设置的是模拟器的 app 路径 , 要设置真机 build 出来的 app 路径
问题 3:不能启动 WDA
解决 3:需要根据日志找到 WDA 的路径,手动打开 WDA 项目,build 成功之后(中间需要输入几次密码授权),再运行 inspector 就可以了。
七、iOS Safari / WebView 手机浏览器自动化测试
1、网页 app 测试
iOS 模拟器 15.2
Appium-server 版本:1.22.0
Appium inspector 版本: 2021.12.2
2、混合 app 测试
iOS 模拟器 15.2
Appium-server 版本:1.22.0
Appium inspector 版本: 2021.12.2
3、真机测试- WebView 调试
手机设置设置 > Safari 浏览器 > 高级 > 打开网页检查器
真机调试工具 ios-webkit-debug-proxy 安装:brew install ios-webkit-debug-proxy 启动:ios_webkit_debug_proxy -f chrome-devtools://devtools/bundled/inspector.html 访问:http://127.0.0.1:9221/
4、真机 web view 实战
环境:Appium Server 版本:1.22.0Appium Inspector 版本: 2021.12.2 手机版本:iPhone 14.2
用例打开 UICatalog App 点击 Web View 项,进入到 webview 界面点击 Buy iPhone 13 Pro 项
5、总结
Appium 支持 iOS 的 webview 测试
Appium 新版本不需要任何配置,也可以直接测试 iOS
Appium 会自动将 web 页面解析转化成原生页面转件,可以直接识别进行用例编写
版权声明: 本文为 InfoQ 作者【测试人】的原创文章。
原文链接:【http://xie.infoq.cn/article/eb95829a4fde496299c694de7】。文章转载请联系作者。
评论