天天看點

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

}