前言
做app自動化測試,第一步是啟動待測app, Airtest可以通過截圖app圖標定位到啟動圖標,但必須保證是在app列表頁。
如何讓 Airtest 啟動指定包名 app? 可以通過指定app包名來啟動。
找到app包名
查找app包名,前面一篇講的很詳細了https://www.cnblogs.com/yoyoketang/p/14842568.html
可以在手機上打開 app,windows 系統用 findstr 過濾,cmd 輸入
>adb shell dumpsys window | findstr mCurrentFocus
運行結果
C:\Users\dell>adb shell dumpsys window | findstr mCurrentFocus
mCurrentFocus=Window{6aff6e2 u0 com.netease.edu.study/com.netease.edu.study.main.activity.ActivityMain}
於是可以查到包名:com.netease.edu.study
當前正在啟動的activity名稱:com.netease.edu.study.main.activity.ActivityMain
start_app
start_app在設備上啟動目標應用
參數:
- package – 想要啟動的應用包名package name,例如 com.netease.my
- activity – 需要啟動的activity,默認為None,意為main activity
返回: None
支持平台: Android, iOS
示例:
>>> start_app("com.netease.cloudmusic")
>>> start_app("com.apple.mobilesafari") # on iOS
stop_app
終止目標應用在設備上的運行
參數:
package: 需要終止運行的應用包名 package name,另見 start_app
返回:None
支持平台: Android, iOS
示例:
>>> stop_app("com.netease.cloudmusic")
使用示例
啟動 app 后等sleep 5秒,然后停掉 app
# 作者-上海悠悠 QQ交流群:717225969
# blog地址 https://www.cnblogs.com/yoyoketang/
# 啟動指定app
start_app(package="com.netease.edu.study")
sleep(5)
# 停掉app
stop_app(package="com.netease.edu.study")
如果app本身就是啟動的狀態,如下在登錄頁面,那么不會重新啟動
如果我想啟動app直接進入到登錄頁,activity名稱寫包名后面的一部分就可以,如:com.netease.edu.study.ogin.activity.ActivityLogin
# 作者-上海悠悠 QQ交流群:717225969
# blog地址 https://www.cnblogs.com/yoyoketang/
# 啟動指定app
start_app(package="com.netease.edu.study", activity="login.activity.ActivityLogin")
sleep(10)
# 停掉app
stop_app(package="com.netease.edu.study")
運行可以看到跳過首頁,直接進入到登錄頁
一般情況下可以啟動app,默認進入首頁'main.activity.ActivityMain'
# 啟動指定app
start_app(package="com.netease.edu.study", activity="main.activity.ActivityMain")