聊一聊在 Airtest 自動化中如何清除 iOS 後臺應用

fishfish-yu發表於2020-09-23

此文章來源於專案官方公眾號:“AirtestProject”
版權宣告:允許轉載,但轉載必須保留原連結;請勿用作商業或者非法用途

前言

不知道做iOS測試的同學有沒有遇到過1個非常讓人苦惱的問題:每次開啟iOS應用的介面都是上次退出時的介面,應用初始頁面不一致,導致指令碼執行出現了各種問題。

但iOS平臺並不支援 clear_app() 介面,所以無法像Android那樣直接呼叫 clear_app() ,就能把應用程式殺掉。而 stop_app() 也只能把應用放到後臺,下次再喚起應用時,初始頁面依舊是上次退出時的頁面。

所以究竟有沒有什麼辦法可以清除iOS的後臺應用,從而保證應用的初始頁面一致呢?下文我們一起來探討下。

清除iOS後臺應用實踐

既然沒有介面可以給我們用來清除iOS的後臺應用,那我們可以換一種解決思路,用Airtest模擬清理後臺應用的行為:雙擊HOME鍵/從底部向上滑動,喚出多工切換的介面,再通過向上滑動的動作,逐一清理後臺應用。

但實踐後發現,執行兩次 keyevent("HOME") 並不能實現雙擊HOME鍵的效果;從底部向上滑動也不能如預期那樣喚出多工切換的介面。

那還有沒有別的方式可以喚出多工的介面呢?其實是有的,在我們最常見的蘋果圓點樣式的輔助功能按鈕中,包含了1個名為 應用切換器 或者 多工 的快捷功能。

1. 在輔助觸控中設定應用切換器

我們在示例裝置中依次找到 設定--通用--輔助功能--輔助觸控 ,開啟 自定頂層選單 ,點選 自定 的圖示,將其改成 多工 ,此時單擊蘋果的圓點按鈕,就可以看到裡面已經出現了一個 多工 的快捷鍵圖示:

設定好之後,我們可以通過Airtest的點選指令碼,輕鬆喚出多工切換的介面:

2. 提高清除iOS後臺應用指令碼的相容性

雖然上述指令碼可以完成清除後臺應用的工作,但實際在指令碼編寫和執行的過程中,很容易發現一些影響相容性的問題:

① 蘋果的圓點按鈕在閒置時會變成透明的,所以截圖時會把手機背景也連帶著截進去,換裝置執行的時候容易找不到圖或者匹配出錯誤結果:

這個問題我們可以在設定中把這個圓點按鈕的閒置透明度改成100%,即閒置時,圓點按鈕也不會變成透明的效果:

把其餘待測iOS裝置的圓點按鈕透明度都設定為100%,即閒置時圓點按鈕也是全黑不透明的,此時的截圖指令碼就可以在更多機器上成功執行了:

② 不同型號的iOS任務切換器圖示不全相同

比如iPhone 6的任務切換器圖示:

iPhone 7 plus的多工圖示:

不同型號的蘋果裝置,存在不一樣的應用切換器圖示,那我們總不能換一臺裝置就改一次點選切換器圖示的指令碼把?當然不是。更好的解決辦法是,我們把這幾種圖示儲存在1個列表裡面,只要列表中的任意1個圖示出現了,我們就進行點選操作:

這樣即使更換了iOS裝置,應用切換器的圖示不一致了,我們還是可以使用同一個指令碼:

小結

關於清除iOS後臺應用的教程就講解到這裡,解決思路由我們的airtest使用者cy hus提供。如果同學們有更好的解決辦法,也歡迎在我們的官方答疑Q群(1017250147)中分享~


Airtest官網:airtest.netease.com/
Airtest教程官網:airtest.doc.io.netease.com/
搭建企業私有云服務:airlab.163.com/b2b

相關文章