聊一聊在Airtest自動化中如何清除iOS后台應用


 

前言

不知道做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)中分享~


AirtestProject官方答疑Q群:1017250147

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM