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、禅道等。
在面试中,考察的频率相对比较低,一般有两种情况会考察到测试工具的相关考点:
  1. 该测试岗位对一些工具的使用熟练度有一定要求,这些一般在招聘要求里面都会说明,比如:要求掌握 Jmeter 的基本使用。
  2. 求职者对某种测试工具比较熟悉,并且在简历上也有体现,这种时候,面试官也会针对简历上提到的测试工具进行发问。
测试工具相关考点的考察方式有很多种,但主要目的都是为了考察常用测试工具的熟练度。大家在复习的时候,需要了解常见测试工具的原理、用途、使用方法以及优缺点。
测试工具的相关考点如下:
  • 网络抓包工具
  • 接口测试工具
  • 性能测试工具
  • 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命令有哪些?

【考点映射】
  • 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