Skip to content

itimetime/poco_ui_record

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

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

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

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

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

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

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

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

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

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

使用方式如下:

pip install -r requirements.txt

python main.py

相应的运行过程:

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

image-20200812103926941

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

image-20200812104105547

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

询问是否达到预期效果

image-20200812104522311

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

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

{
  "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
}

About

一款poco自动化录制框架,记录点击过程,自动生成测试用例。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages