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_input
和screenshot_each_action
這兩個引數的作用,後續我們會跟大家分享更多關於Airtest報告的內容~