天天看点

python 自动化框架_基于Python Pocoui库的自动化录制框架

基于Python Pocoui库的自动化录制框架

游戏可以写一些脚本驱动游戏自动化测试,其自动化原理基本和Appium测试手机APP基本一样,可以通过相应的驱动解析出相应的目录结构,是一棵树,树的大小基本和游戏中存在的内容有关。

poco库的原理就是游戏运行过程中通过ADB命令获取到这些树,进行解析,找到代码中的节点进行操作。前期通过AirtestIDE写一些脚本,发现有如下几个问题。

1.目录树结构太多,显示在页面上层级过多,难以把控。

2.驱动过慢,自动化脚本驱动程序运行慢,尤其是在获取UI树的时候,会卡顿,影响程序性能。

3.相应节点都写在代码上,代码可维护差,且代码重复性高。

前期也写了一些遍历框架、及探索自动化框架但效果不怎么理想,开发一套属于自己的自动化录制框架势在必行。经过相应的研究,及前期的技术积累。开发了自动化录制框架,其框架有以下优点。

1.支持录制,即在用户点击过程中测试用例的生成。

2.自动解析可点击节点,并渲染到游戏截图上。

3.采用坐标点击方式,点击过程不在遍历UI树,游戏运行过程和人工点击效果相似。

使用方式如下:

1

2

3pip install -r requirements.txt

python main.py

相应的运行过程:

程序自动获取当前游戏画面并标记所有可点击节点。

命令窗口将会提示用户点击哪一个节点,并提示节点的名字。

用户选择节点后程序将会模拟用户进行执行,此时点击步骤已经被记录。

询问是否达到预期效果

属于步骤将被写入测试用例中。输入其它不被记录,防止出现点击出错的情况。

最后导出测试用例,大约是这个样子。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26{

"author": null,

"gameName": "test2",

"steps": [

{

"name": "BtnBgEnter",

"pos": [

0.5,

0.889444351

],

"type": "Button",

"sleep": 12

},

{

"name": "BtnBag",

"pos": [

0.9213542,

0.0379629247

],

"type": "Button",

"code": "print('open bag')"

},

],

"originPage": null,

"executeTime": 0

}