加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

7 | 如何测试Windows应用程序

发布时间:2021-03-06 18:13:16 所属栏目:系统 来源:网络整理
导读:7 | 如何测试Windows应用程序 7.1 前言 本教程主要讲解如何使用AirtestIDE进行Windows应用程序的自动化测试(以网易云音乐Windows版为案例)。 通过阅读本文,你将学会: 使用AirtestIDE对一个Windows软件窗口进行脚本录制 如何调用Windows操作的接口 如何在
副标题[/!--empirenews.page--]

7 | 如何测试Windows应用程序

7.1 前言


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

通过阅读本文,你将学会:

  • 使用AirtestIDE对一个Windows软件窗口进行脚本录制
  • 如何调用Windows操作的接口
  • 如何在脚本和命令行里指定连接某个Windows窗口


7.2 基本原理


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

7 | 如何测试Windows应用程序

Poco在Windows上的支持尚未推出,我们将会尽快推出该功能,敬请期待。



7.3 在AirtestIDE中连接Windows窗口


要使用AirtestIDE测试某个Windows程序,首先要将待测试的Windows窗口与AirtestIDE进行连接,其实也就是将Windows窗口的句柄告诉给AirtestIDE。在成功连接窗口后,Airtest能够将该窗口作为一个设备,接下来就像在操作一台Android设备一样,能够对Windows窗口进行图像识别、点击操作等。

注意:由于选定连接Windows窗口后,在AirtestIDE中操作、运行脚本时,将会依赖这个特定的窗口句柄。因此在窗口选定后请不要随意关闭,否则会导致运行时无法找到对应窗口而报错。

7.3.1 常规连接方法:一键嵌入

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

7 | 如何测试Windows应用程序

点击AirtestIDE的选定窗口按钮,将可以选择桌面上一个已经启动的Windows应用(此时窗口边缘将会显示绿色方框),把它嵌入到AirtestIDE中。嵌入窗口后,可以方便地在AirtestIDE中操作窗口、录制语句、运行脚本。

7.3.2 另一种备用的连接方法

由于Windows应用的底层实现各不相同,有些应用窗口如果使用默认的一键嵌入方法,在嵌入到AirtestIDE里之后会遇到一些问题(例如嵌入后无法用鼠标操作、无法正常嵌入、嵌入后无法显示图像等)。

针对这些问题,我们提供了一种无嵌入连接的方案,请在AirtestIDE的设置面板中,找到Device-Windows Embed Backup Method,勾选后即可使用备用方案来连接窗口。

接下来的连接方式和常规方法一样,点击选定窗口,然后选择待测窗口程序:

7 | 如何测试Windows应用程序

从图中可以看到,这种窗口连接方式不会将Windows窗口嵌入到AirtestIDE里,虽然在脚本录制时不如默认嵌入方式简单好用,但是能够避免一些窗口嵌入带来的问题。

7.3.3 桌面模式

假如想要测试的窗口不止一个(拥有多个不同的窗口句柄),单独嵌入一个窗口可能无法满足测试需求,此时我们也提供了第三种方案:桌面模式。

7 | 如何测试Windows应用程序

点击桌面模式按钮,此时AirtestIDE右侧的设备窗口将会完全隐藏,进入Windows桌面模式。

在此模式下,录制脚本与运行脚本都与正常情况下没有区别,只不过执行时将会对整个桌面进行截图识别,甚至可以识别到AirtestIDE代码窗口里的截图语句(因此在执行脚本时,请尽量缩小AirtestIDE的窗口,避免脚本界面里的截图干扰执行结果)。

7.3.4 连接注意事项

  • 由于在选定窗口时,桌面上可能会有不少同时打开着的其它窗口,导致选择时的绿色方框不一定能够很准确地框选到被测应用,请大家在点击选定窗口按钮之前,尽可能先把所有其它无关窗口都最小化,这样做可以让窗口选择更准确。

  • 为了防止出现异常情况,请不要选择自己的桌面、AirtestIDE软件本体。因为窗口嵌入的功能原理是,将一个Windows窗口设置为IDE的子窗口,因此如果试图连接桌面,可能会导致无法预料的异常情况发生。如果只是想测试桌面上的所有窗口,可以选择我们的桌面模式来录制脚本。

  • 由于Windows窗口在截图时需要记录分辨率,因此把窗口嵌入到IDE后大小将会被固定,无法修改。如果觉得嵌入后窗口过大,可以在嵌入之前先将窗口调整至合适大小再进行嵌入。

7.3.5 退出Windows连接

  • 直接关闭AirtestIDE即可退出本次Windows连接,并将先前嵌入的窗口自动弹出
  • 也可以通过右上角的Disconnect current device按钮来退出窗口连接

7 | 如何测试Windows应用程序




7.4 录制与编写Airtest脚本


成功连接上Windows窗口,就相当于我们已经连接上了一台设备,接下来就可以对它进行脚本的录制与回放了。

7.4.1 生成截图语句

首先,touch / wait / exists / assert_exists / assert_not_exists等Airtest带有截图的语句,与在Android/iOS设备上录制并没有太大区别:

7 | 如何测试Windows应用程序

但是需要注意的是,在使用鼠标拖拽框选好想要截图的位置后,需要双击该截图区域才能完成截图,而不会在鼠标松开时自动完成截图,这也是与Windows下截图的最大区别。

因此截图的步骤是:

  • 拖动鼠标框选合适的区域
  • 双击鼠标完成截图
  • 点击鼠标右键可以重新进行框选
  • 按Esc按钮可以退出本次截图操作

以及,在录制swipe语句时,在完成截图区域框选后,需要单击滑动终点完成语句录制。

7.4.2 调用Windows接口

和Android/iOS一样,Airtest也对Windows下的常用操作进行了封装,底层操作接口使用的是pywinauto库。

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!