1. 程式人生 > 其它 >Android Poco初始化時,不大起眼但可能存在坑點的引數們

Android Poco初始化時,不大起眼但可能存在坑點的引數們

1. 前言

進行Android poco初始化的時候,可能大多數同學都是直接在Poco輔助窗裡選擇Android模式,然後選擇自動幫我們補充poco的初始化指令碼:

這種情況下,我們大多數都不會關注初始化的引數。但如果我們不瞭解這些引數的含義,也非常有可能在一些特殊情況下踩到一些坑。下文我們就從一次入坑經歷說起吧~

2. 入坑分享:沒有傳poco初始化的引數

有一次在給Android裝置初始化poco時,小A採用了下述的方式:

dev1 = Android('127.0.0.1:7555')

from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco1 = AndroidUiautomationPoco(dev1)

sleep(1.0)
poco1("計算器").click()

然後在生成報告的時候,小A發現,報告沒有Poco點選計算器的步驟,而只有1張截圖,截圖上也沒有標註控制元件點選位置:

經過一頓排查之後,才發現,原來他這裡沒有傳任何的Poco初始化引數,之後他把引數加上:

from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco1 = AndroidUiautomationPoco(dev1,use_airtest_input=True, screenshot_each_action=False)

報告就能正常顯示了:

那這2個Android poco的初始化引數,究竟起到怎樣的作用呢?我們下文詳細說明下。

3. use_airtest_input

use_airtest_input=True是指,使用Airtest去執行點選操作,好處是,會在日誌裡面記錄一條log記錄,這樣生成報告時,就能在報告上顯示這個點選記錄。

如果初始化Android poco時,不傳入這個引數,預設use_airtest_input=False,則不使用Airtest去執行點選操作,而是呼叫Android介面去點選,這時候不會在日誌裡面記錄一條點選的log,所以會導致報告裡面丟失這個點選步驟。

所以,如果同學們不在意log內容,或者無需生成測試報告,這個引數可以不傳。

但如果同學們需要生成測試報告,在初始化Android poco時,還是需要把use_airtest_input=True

這個引數傳上去。

4. screenshot_each_action

screenshot_each_action是指,是否開啟每個poco步驟的截圖。我們也可以從1個對比測試,來看出這個引數的效果:

# 關閉每個步驟的截圖操作
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=False, screenshot_each_action=False)

sleep(1.0)
poco("計算器").click()
# 開啟每個步驟的截圖操作
from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=False, screenshot_each_action=True)

sleep(1.0)
poco("計算器").click()

至於,為什麼當初始化時,指定use_airtest_input=True,且screenshot_each_action=False 時,仍然會有截圖,這是因為使用了Airtest的點選,Airtest點選是預設開啟截圖的:

from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)

sleep(1.0)
poco("計算器").click()

5. 小結

本文詳細講述了,進行Android poco初始化時,傳參和不傳參的差別,以及可能帶來的坑點。也跟同學們解釋了use_airtest_inputscreenshot_each_action這兩個引數的作用,後續我們會跟大家分享更多關於Airtest報告的內容~