前言
做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")