用Airtest在Windows上测试PC游戏

简介: 用Airtest在Windows上测试PC游戏

新增的一些指令



之前Airtest已经支持Windows应用程序的测试了,但在涉及到对一些要求DirectInput设备的PC游戏的测试时,之前提供的方法并不能十分有效地模拟键盘和鼠标输入,因此我们提供了新的接口来支持此类PC游戏的测试。


一些PC游戏只接收来自底层硬件层面的发送的键盘扫描码,而不响应例如keyevent()所用的pywinauto库发送的操作系统层面的虚拟键码,所以我们提供了新的接口,key_press(key)key_release(key),来通过发送键盘扫描码进行键盘按键按下和释放的模拟。一些游戏要求在按键按下和释放之间进行一定的操作,因此我们将keyevent(...)拆分成了按下和释放两个步骤,这样做也比传入一个duration参数要更加精确。


因为目前是Windows平台独有的接口,所以指令并没有放在公共API中。在使用时需要先获取设备,再调用方法来模拟对应的键盘操作。


win = device()
win.key_press('W')
... // some operations
win.key_release('W')
复制代码


具体key_press(key)key_release(key)接受的参数key的类型可以在官方Windows平台api文档中查看。



一些3D游戏需要通过控制鼠标的移动来操作镜头,通过对鼠标按钮的点击和释放来进行例如包括射击在内的的一些操作。我们提取了原来swipe(...)touch(...)中的一些逻辑并封装成了三个新的指令,mouse_move(pos)mouse_down(button)mouse_up(button),来模拟鼠标的操作。在一些对镜头移动要求十分严格的游戏中,例如需要鼠标移动来瞄准敌人进行射击,可能需要进行反复的调试或自己提供算法来确定pos这个参数具体的值。


同样,在模拟一些鼠标的操作时,也需要先获取设备再模拟对应的鼠标操作。


import win32api
win = device()
x, y = win32api.GetCursorPos()
win.mouse_move((x+10, y+10))
win.mouse_down('right')
...  // some operations
win.mouse_up('right')
复制代码


一些常见的问题及解决方法



  1. 一些游戏在使用窗口嵌入模式时会出现包括无法框选窗口或者画面消失在内的问题。如果窗口无法框选的话,可以尝试搜索窗口。如果连接窗口以后整个游戏窗口消失的话,可以选择无嵌入模式。如果仍旧无法连接窗口,可以尝试桌面模式。

搜索窗口


无嵌入模式



桌面模式


  1. 因为使用了桌面模式,如果你的脚本当中涉及到图像识别,那很有可能在跑脚本的过程中识别到脚本中的图像,而不是游戏画面当中的图像。此时可以右键单击脚本,选择图片/代码模式切换,将模式转换成代码模式,就能顺利运行脚本了。


  1. 一些PC游戏对光标进行了限制,玩家无法将光标移出游戏画面以外。在编写脚本的时候,可以利用Tab+Alt的方式进行窗口切换。
相关文章
|
1月前
|
Linux Shell Windows
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
|
2月前
|
监控 安全 Android开发
【新手必读】Airtest测试Android手机常见的设置问题
【新手必读】Airtest测试Android手机常见的设置问题
|
2月前
|
Android开发 iOS开发 计算机视觉
Airtest新增iOS、Windows录屏功能,真香!
Airtest新增iOS、Windows录屏功能,真香!
|
2月前
|
弹性计算 Linux 数据安全/隐私保护
教程:幻兽帕鲁联机服务器多人游戏专用服务器(Windows)
幻兽帕鲁联机服务器多人游戏专用服务器(Windows)搭建教程,玩转幻兽帕鲁服务器,幻兽帕鲁Palworld多人游戏专用服务器一键部署教程,阿里云推出新手0基础一键部署幻兽帕鲁服务器教程,傻瓜式一键部署,3分钟即可成功创建一台Palworld专属服务器,成本仅需26元,阿里云百科分享2024年新版基于阿里云搭建幻兽帕鲁服务器教程
|
4月前
|
网络协议 测试技术 Linux
软件测试/测试开发|你不知道的Windows神操作
软件测试/测试开发|你不知道的Windows神操作
29 0
|
8月前
|
测试技术 5G iOS开发
【游戏专项测试】弱网测试-测试用例
【游戏专项测试】弱网测试-测试用例
|
8月前
|
XML 网络协议 测试技术
【游戏专项测试】弱网测试-NEWT使用
【游戏专项测试】弱网测试-NEWT使用
【游戏专项测试】弱网测试-NEWT使用
|
1月前
|
Linux iOS开发 MacOS
|
3月前
|
存储 Kubernetes 安全
虚拟机测试Windows Server 2016原地升级2019,应用和数据完美保留
Windows Server 2016可以无缝升级到2019版本,确保应用程序和数据在原地升级过程中完整保留。
105 0
|
4月前
|
网络协议 测试技术 网络安全
2021年中职“网络安全“江西省赛题—B-9:Windows操作系统深入测试
2021年中职“网络安全“江西省赛题—B-9:Windows操作系统深入测试
36 0