MQC一直在探索和寻找各种方法帮助用户发现更多的问题、更快速的定位问题。 为此,我们提供了两类不同的截图功能来满足不同的用户的需求。
自动截图。自动截图是我们提供的一种默认的截图方式,测试系统会在APP测试过程中,自动的进行屏幕抓取。这种方式下,您无需增加任何成本,只需要将APP和测试脚本提交即可。
自定义截图。系统自动截图,有时候并不能满足您的精确截图的需求(比如把截图作为功能测试通过与否的决定条件)。为了满足精确截图的需求,我们推出了自定义截图功能, 自定义截图能够非常精确的进行截图。自定义截图是通过logcat日志发送截图消息实现的。
下面是自定义截图的使用方法。
Robotium脚本
在Robotium脚本中,我们需要通过Android系统自带的日志系统(android.util.Log)进行截图消息发送,具体使用方法:
a. 不指定截图文件名,使用时间戳作为文件名[backcolor=transparent]Log[backcolor=transparent].[backcolor=transparent]i[backcolor=transparent]([backcolor=transparent]"MQC-LOG-MASTER"[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]"screenshot"[backcolor=transparent]);- [backcolor=transparent]solo[backcolor=transparent].[backcolor=transparent]sleep[backcolor=transparent]([backcolor=transparent]2000[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 调用截图,请等待2秒钟。
b. 指定截图文件名
- [backcolor=transparent]Log[backcolor=transparent].[backcolor=transparent]i[backcolor=transparent]([backcolor=transparent]"MQC-LOG-MASTER"[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]"screenshot picName"[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 以picName作为本次截图的文件名。
- [backcolor=transparent] solo[backcolor=transparent].[backcolor=transparent]sleep[backcolor=transparent]([backcolor=transparent]2000[backcolor=transparent]);[backcolor=transparent] [backcolor=transparent]// 调用截图,请等待2秒钟
Appium脚本
我们需要调用Appium的Python 客户端包中的方法:
a. 不指定截图文件名称,使用时间戳作为文件名
- [backcolor=transparent] [backcolor=transparent]// dirver 是Appium WebDriver的一个实例对象,可以通过driver 下的各个方法操作设备,比如shell函数,就是在手机上执行一个shell命令。
- [backcolor=transparent] driver[backcolor=transparent].[backcolor=transparent]shell[backcolor=transparent]([backcolor=transparent]"log -p i -t MQC-LOG-MASTER screenshot"[backcolor=transparent])
- [backcolor=transparent] [backcolor=transparent]// 需要import time 这个包
- [backcolor=transparent] time[backcolor=transparent].[backcolor=transparent]sleep[backcolor=transparent]([backcolor=transparent]2[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]// 等待2s
b. 指定截图文件名
- [backcolor=transparent] [backcolor=transparent]// 以picName作为本次截图的名称
- [backcolor=transparent] driver[backcolor=transparent].[backcolor=transparent]shell[backcolor=transparent]([backcolor=transparent]"log -p i -t MQC-LOG-MASTER screenshot picName"[backcolor=transparent])
- [backcolor=transparent] [backcolor=transparent]// 需要import time 这个包
- [backcolor=transparent] time[backcolor=transparent].[backcolor=transparent]sleep[backcolor=transparent]([backcolor=transparent]2[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]// 等待2s