Airtest:Windows桌面应用自动化测试一

  • 一、为什么选择Airtest?
  • 二、官方文档
  • 三、环境搭建
  • 四、简易操作
  • 1、模拟双击桌面应用
  • 2、连接应用窗口
  • (1)嵌入方式连接(2种方式连接应用窗口)
  • (2)非嵌入方式连接
  • (3)使用脚本连接应用
  • (4)注意事项
  • 3、编写代码时,图片与代码的转换
  • 4、运行程序时,要求可见
  • 5、连接32位应用要求32位python
  • 6、录制脚本


一、为什么选择Airtest?

1、因为它集成了pywinauto

2、我相信他应该是比pywinauto更强大的东西

3、我想使用它实现Windows桌面应用自动化

二、官方文档

1、中文

欢迎使用 - Airtest Project Docs
Airtest Project Docs
https://airtest.doc.io.netease.com/

2、github

Airtest — airtest 文档
https://airtest.readthedocs.io/zh_CN/latest/README_MORE.html

三、环境搭建

1、使用官方推荐的Airtest IDE

安装与启动 - Airtest Project Docs
Airtest Project Docs
https://airtest.doc.io.netease.com/IDEdocs/3.1getting_started/AirtestIDE_install/

四、简易操作

1、模拟双击桌面应用

(1)使用IDE连接桌面(2种方式)

(2)点击touch去选择图标,并双击

(3)注意事项

如果没有连接桌面,可能点击touch没法选择,或者touch直接置灰,而且运行时将报错

(4)验证结果

这个双击桌面应用图标并没有成功打开应用

windows可以用airtest连接iOS手机吗_windows


windows可以用airtest连接iOS手机吗_句柄_02

2、连接应用窗口

(1)嵌入方式连接(2种方式连接应用窗口)

不推荐嵌入方式连接桌面应用,因为桌面应用界面太大了,不像手机应用友好。当然,可以单独作为一个窗口分离出来,只是会有一些不兼容或不好用的情况,如窗口改变会自动从IDE分离出来。但是,这个功能有着非常鸡肋(至少1.2.13的win应用是这样)的脚本录制功能,可在写代码阶段使用,需要以嵌入的方式录制。

windows可以用airtest连接iOS手机吗_桌面应用_03

(2)非嵌入方式连接

设置好后按照嵌入式方式连接窗口的操作步骤,即可实现连接

windows可以用airtest连接iOS手机吗_桌面应用_04


windows可以用airtest连接iOS手机吗_桌面应用_05

(3)使用脚本连接应用

① 使用窗口句柄

不推荐这种方式,因为这个句柄会改变。

auto_setup(__file__,devices=["Windows:///133194"])

② 使用正则表达式匹配窗口TITLE

推荐使用这种方式,窗口TITLE一般不变。

 例如匹配“吹梦到西洲”后面跟着换行符以外的任意字符的窗口title
auto_setup(__file__,devices=["Windows:///?title_re=吹梦到西洲.*"])

③ 连接WINDOWS桌面

不指定devices具体参数,连接的就是桌面。

auto_setup(__file__,devices=["Windows:///"])
不指定devices参数,将没有连接对象而给出报错信息,或连接IDE已经连接的对象成功(对象中有该目标时成功,没有将报错)

auto_setup(__file__)

windows可以用airtest连接iOS手机吗_句柄_06

windows可以用airtest连接iOS手机吗_python_07


windows可以用airtest连接iOS手机吗_python_08

(4)注意事项

① 运行代码时,最好不要通过IDE连接窗口,而是通过代码连接

windows可以用airtest连接iOS手机吗_句柄_09


②运行代码的连接对象,如果要通过IDE连接,代码应该与实际连接对象保持一致

windows可以用airtest连接iOS手机吗_桌面应用_10

3、编写代码时,图片与代码的转换

windows可以用airtest连接iOS手机吗_windows_11

4、运行程序时,要求可见

(1)对象不可见时,将会报错

(2)IDE内的图标也会被点击

解决方案:要么加延时,运行后将IDE缩到最小;要么指令运行代码;要么脚本里指定连接对象运行(需要注意,如果是桌面,将是全局的)

windows可以用airtest连接iOS手机吗_python_12

5、连接32位应用要求32位python

如图提示,要求应用连接时,python位数与应用保持一致,这种情况可以使用句柄方式操作(虽然不推荐)。

windows可以用airtest连接iOS手机吗_python_13


windows可以用airtest连接iOS手机吗_python_14

6、录制脚本

这个功能在录制win应用脚本时,并不好用,如双击图标不能录制、输入字符不能录制等等,目前(1.2.13的win应用录制)非常鸡肋。

windows可以用airtest连接iOS手机吗_windows_15