设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 服务器 > 系统 > 正文

7 | 如何测试Windows应用程序(2)

发布时间:2021-03-05 20:49 所属栏目:52 来源:网络整理
导读:因此,在编写Windows应用的测试脚本时,我们可能需要查阅以下几个API文档: Airtest的跨平台API,这里的所有API都可以在脚本里直接调用 Airtest的Windows专属API,请查阅后面提供的代码示例来了解如何调用Windows设

因此,在编写Windows应用的测试脚本时,我们可能需要查阅以下几个API文档:

  • Airtest的跨平台API,这里的所有API都可以在脚本里直接调用
  • Airtest的Windows专属API,请查阅后面提供的代码示例来了解如何调用Windows设备的专属接口
  • 如果需要更复杂的操作,可能需要查阅pywinauto提供的API

(1)一个简单的示例

为了方便演示,我们假设这个脚本没有在命令行中传入参数,而是在脚本里使用connect_device接口来连上一个句柄为123456的窗口,并对它进行一些操作:

from airtest.core.api import * dev = connect_device("Windows:///123456") # 通用的接口调用方式,与其它平台相同: touch(图片) 

假如我们希望能够调用一些Windows的专属操作,比如查阅了Airtest的Windows专属API文档后,我们发现有一些操作是只有Windows窗口才有的:

# 调用Windows专属的接口,例如获取当前窗口的标题内容 print(dev.get_title()) # 把窗口移动到某个坐标位置 dev.move((100,200)) 

接下来,假设我们现在想要使用鼠标滚轮,在查阅Airtest的API后发现,Airtest的Windows模块并没有封装鼠标滚轮的功能,此时我们可以进一步查询pywinauto的文档,寻找到mouse相关的章节后,就知道如何调用鼠标滚轮接口了:

dev.mouse.scroll(coords=(80,100),wheel_dist=1) 

(2)输入KeyEvent

在Android中,我们可以通过KeyEvent(“HOME”)来实现按下HOME键的操作,而在Windows中,我们同样可以通过KeyEvent接口发送一些按键响应。Android的按键码是基于ADB的,而Airtest的Windows模块则封装使用了pywinauto支持的按键码,请查阅pywinauto.keyboard文档内容来编写Windows下的KeyEvent接口参数:

# 在pywinauto中,符号^也代表了CTRL键,因此^a即为全选(Ctrl+A) keyevent("^a") # 例如这是删除键的输入方式,需要加上括号{} keyevent("{DEL}") 

请大家根据实际需求,查阅文档后再编写按键响应的代码。



7.5 如何在运行脚本时,指定连接某个窗口


在AirtestIDE的Windows模式中,运行脚本和查看报告与其它平台并无不同:

7 | 如何测试Windows应用程序

然而,最需要注意的一点是:在AirtestIDE里连接的窗口,都是用窗口句柄连接的。窗口句柄是每个Windows窗口对象拥有的独一无二的32位无符号整数,而且每次打开窗口,这个数值都会变化。

这就意味着,假如我们用某个窗口嵌入到AirtestIDE里写出了一个脚本,虽然这次可以直接运行,但是通过复制AirtestIDE里的脚本命令行的方式,是无法保证下一次还能够运行的。因为AirtestIDE里的命令行,将会有这样的参数内容--device Windows:///句柄,而下次再打开窗口,可能句柄已经发生了变化。

因此,我们也可以不使用句柄,而是通过其它的方式来连接窗口。Airtest的Windows模块,使用了pywinauto的connect接口来连接窗口,因此除了句柄以外,我们可以通过窗口标题来连接:

# 连接一个Windows窗口,窗口句柄为123456 Windows:///123456 # 连接一个Windows窗口,窗口名称匹配某个正则表达式 Windows:///?title_re=Unity.* # 连接windows桌面,不指定任何窗口,对应IDE的桌面模式 Windows:/// 

在命令行中假如想使用窗口名称连接,不需要添加引号等符号,直接这样写:

airtest run test.air --device Windows:///?title_re=Unity.* 



7.6 Poco支持


7.6.1 接入了Poco-SDK的Windows窗口

有一些Windows-App已经接入了Poco(例如Unity游戏窗口),我们同样能够使用AirtestIDE来方便地查看和选中UI节点。但是在使用这个功能前,需要事先告诉AirtestIDE这个Windows窗口所在位置以及窗口大小。

在“选项”-“设置”-“Poco”,选择“Windows Content Area Rect”,框选窗口主画面后双击确认(右键/esc可取消),随后即可开始使用Poco相关功能了,如图所示:

7 | 如何测试Windows应用程序

7.6.2 Poco-Windows支持

针对Windows窗口的Poco支持,我们正在完善文档和功能,敬请期待。

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读