1.4 测试Windows应用程序

本教程主要讲解如何使用AirtestIDE进行Windows应用程序的自动化测试(以网易云音乐Windows版为案例)。

本文约1000字,阅读全文可能将花费3分钟

1. 基本原理

AirtestIDE对普通Windows应用程序的测试支持,主要依靠图像识别框架(Airtest)进行位置定位,使用 pywinauto的操作接口进行模拟操作。

Windows原理图

2. Windows窗口连接

要测试某个Windows程序,首先AirtestIDE需要选定测试对象,这个过程也可以理解为待测试的Windows窗口连接。

选定测试窗口后,AirtestIDE在执行测试时会主动把连接的测试窗口置于桌面窗口层叠顺序(Z-order)的最上方,进而执行对应窗口的测试操作。值得一提的是,我们是通过窗口句柄来进行的窗口选定,在选定窗口后,脚本运行时也会指定特定的窗口句柄,所以在窗口选定后请不要随意关闭对应窗口,否则运行时无法找到对应句柄的窗口会导致报错。

①常规连接方法

AirtestIDE提供了一键嵌入Windows窗口的功能。如下所示:

1-

为了提高脚本撰写效率,AirtestIDE在进行Windows窗口连接时,默认会把窗口嵌入到设备窗内。(可以通过快捷入口断开连接、解除嵌入状态。)

②备用嵌入方法

对于某些较为特殊的窗口,常规嵌入AirtestIDE时可能出现异常(比如嵌入失败、嵌入后鼠标交互失效等),可以勾选“设置”-“Device”-“Windows Embed Backup Method”(使用Windows备用连接方式),进而实现窗口的不嵌入连接。

2-

③桌面模式

如果是想对于整个桌面进行测试,AirtestIDE还提供了桌面模式的快捷入口。

airtestide-desktop-demo

3. 生产Airtest脚本

在完成Windows窗口嵌入后,就开始生产测试脚本了。

生成测试脚本

3-

操作注意事项:

  • 截图时请尽量少用“自动截图”自动截图图标,它会根据操作位置的图像内容自适应截图尺寸,有可能会导致脚本的返工。
  • 在执行touch / wait / exists / assert_exists / assert_not_exists等主动截图的操作时,在完成截图区域框选后:
    • 鼠标双击完成截图;
    • 右键重新开始截图区域框选;
    • Esc按钮退出本次截图操作。
  • 在执行手动 swipe 截图时,在完成截图区域框选后,单击滑动终点完成语句录制。
  • 使用text()输入时,底层调用为pywinauto.keyboard.SendKeys,有组合键等特殊输入需求时请查看文档

运行脚本、查看报告

4-运行脚本

5-查看报告

在测试脚本运行结束后,通过一键生成报告进行执行步骤的查看。如果有脚本运行错误,也可以根据报告定位错误原因。

4. 其他功能

  • 已嵌入Poco-SDK的游戏窗口测试(文档在路上)
  • 如果窗口存在关闭可能,可以考虑通过窗口名进行测试窗口定位(文档在路上)