1.4 测试工具使用
【考点讲解】
工欲善其事,必先利其器,在日常的测试工作中,如果没有测试工具辅助测试,测试效果将会大打折扣。
以 APP 稳定性测试为例,APP 稳定性测试,顾名思义,就是测试 APP 在极端操作下是否还能够长时间稳定工作,这个时候如果人工去模拟随机操作 APP,假设一秒钟2次,一个小时下来,需要触发7200次对APP的操作事件,但事实上,人工根本无法稳定执行那么多次的操作。这个时候,就需要用测试工具—— Monkey 来模拟这些操作事件,并且在发生 Crash 或者 ANR 时,Monkey 也能将异常日志记录下来,所以测试工具能够大大提升我们的工作效率,帮助我们完成手工操作无法做到的工作。
测试工具有很多种,常见的工具有:网络抓包工具、接口测试工具、APP测试工具、自动化测试工具、缺陷管理工具等等。
网络抓包工具,用于查看数据在网络传输过程中的状态。一般不同的网络协议都有针对性的抓包工具,比如:HTTP/HTTPS协议 常用的抓包工具是Fiddler、Charles;TCP/UDP协议常用的抓包工具是Wireshark。
接口测试工具,用于进行接口调试和测试。常用的测试工具有:Postman、Jmeter等。
性能测试工具,一般用于测试服务端的性能。常用的测试工具有:Jmeter、LoadRunner等。
APP测试工具,用于对APP进行测试。常见的测试工具有:Monkey、Appium、adb、libimobiledevice、Appetizer等。
自动化测试工具(框架),主要分为接口自动化测试工具和UI自动化测试工具。涉及的工具较多,此处不再拓展,详情请参考例题示例中:(1.4.x 说说你所了解的测试工具有哪些?)。
缺陷管理工具,常见的缺陷管理工具有:Jira、禅道等。
在面试中,考察的频率相对比较低,一般有两种情况会考察到测试工具的相关考点:
- 该测试岗位对一些工具的使用熟练度有一定要求,这些一般在招聘要求里面都会说明,比如:要求掌握 Jmeter 的基本使用。
- 求职者对某种测试工具比较熟悉,并且在简历上也有体现,这种时候,面试官也会针对简历上提到的测试工具进行发问。
测试工具相关考点的考察方式有很多种,但主要目的都是为了考察常用测试工具的熟练度。大家在复习的时候,需要了解常见测试工具的原理、用途、使用方法以及优缺点。
测试工具的相关考点如下:
- 网络抓包工具
- 接口测试工具
- 性能测试工具
- APP测试工具
- 自动化测试工具(框架 )
- 缺陷管理工具
【例题示例】
1.4.1 说说你所了解的测试工具有哪些?
【考点映射】
- 网络抓包工具
- 接口测试工具
- 性能测试工具
- APP测试工具
- 自动化测试工具
- 缺陷管理工具
【出现频度】★★★
【难度】★★☆
【参考答案】
测试工具的种类繁多,笔者根据多年经验,把测试工具分成了以下22个种类:
下面列举一些比较常用的测试工具:
抓包工具:Charles、Fiddler、Wireshark、mitmproxy(适合二次开发)、Stream(iOS APP)
接口工具:Postman、Jmeter、Swagger、requests(python第三方库)、Yapi
压力工具:Jmeter、Loadrunner、Stress
Android调试工具:adb、Android Studio、aapt
iOS调试工具:libimobiledevice、Xcode
自动化测试工具:按键精灵、Appium、Selenium、Appetizer、Airtest
数据库工具:Navicat、phpMyAdmin、Hue、SQLyog、Workbench
移动端性能:Monkey、GT、SoloPi、Maxim、PerfDog
持续集成:Jenkins
项目管理:Jira、禅道、普兰能效平台
更多测试工具,可以参考:
1.4.2 如何用charles抓取APP的https请求的数据包?
【考点映射】
- 网络抓包工具
【出现频度】★★☆
【难度】★☆
【参考答案】
因为https的数据包都是经过加密后才进行传输,假如没有安装和信任Charles的CA证书,捕获的数据将会是一堆乱码。
此时我们需要对charles和手机进行设置。
第一步,电脑下载和安装证书:
在Charles菜单栏中选择Help -> SSL-Proxying -> Install Charles Root Certificate:
将证书安装到本地,注意这里需要双击证书设置证书被始终信任,不然默认是未信任的:
第二步,手机端安装和信任证书(iOS为例):
在charles上打开下载证书的地址
手机上操作:
手机浏览器打开:chls.pro/ssl
如果是安卓手机,尤其是OPPO、VIVO手机,可能需要改证书的后缀 cer、pem、cert
第三步,安装验证描述文件(此处以iOS手机为例,安卓手机会有差异):
安装证书
打开“设置”-> “通用” -> “描述文件与设备管理”
信任证书
打开“设置”-> “通用” -> “关于本机” -> “证书信任设置”
第四步,charles上***L:
这一步可以指定抓取的请求的域名和端口号,如果想要抓取所有的https请求,则可以设置为:“*:*”
这样,就完成了HTTPS的抓包设置,可以顺利抓取到HTTPS的数据。
1.4.3 常用的adb命令有哪些?
1.4.3 常用的adb命令有哪些?
【考点映射】
- APP测试工具
【出现频度】★★☆
【难度】★★★
【参考答案】
adb 是安卓调试桥,用于电脑端与安卓模拟器或安卓真实设备交互。
常见的adb命令:
# 1. 指定相应的seriaNum号的设备去执行adb 命令 adb -s <seriaNum> command # 2. 获取连接状态 adb devices # device 已经连上 # offline 未连接成功或者无响应 # no device 没有设备/模拟器连接 # unauthorized 手机没有信任 # 启动 adb 服务 adb start-server # 停止 adb 服务 adb kill-server # 查看 adb 版本 adb version # 进入 adb 命令行 adb shell # 通过 ip 地址连接设备 adb connect <device-ip> # 安装apk adb install xxx.apk # 覆盖安装apk adb install -r xxx.apk # 卸载应用,-k 保留数据和缓存 adb uninstall [-k] <packageName> # 查看端上日志 adb logcat | grep xxx # 清空日志 adb logcat -c # 查看warning日志,并且输出时间戳 adb logcat -v time *:W # 获取系统属性 adb shell getprop # 查看设备型号 adb shell getprop ro.product.model # 查看安卓系统版本 adb shell getprop ro.build.version.release # 查看屏幕分辨率 adb shell wm size # 查看连过的wifi密码 adb shell; su; cat /data/misc/wifi/*.conf # 查看进程 adb shell&nb