前言
做app自动化测试,第一步是启动待测app,Airtest 可以通过截图app图标定位到启动图标,但必须保证是在app列表页。
如何让Airtest 启动指定包名 app? 可以通过指定app包名来启动。
找到app包名
查找app包名,前面一篇讲的很详细https://www.cnblogs.com/canglongdao/p/15546677.html
可以在手机上打开app,windows 系统用findstr 过滤,cmd输入
adb shell dumpsys window | findstr mCurrentFocus
运行结果
C:\Users\Administrator>adb shell dumpsys window | findstr mCurrentFocus mCurrentFocus=Window{27a6ed1 u0 com.gotokeep.keep/com.gotokeep.keep.refactor.b usiness.main.activity.MainActivity}
于是可以查到包名:com.gotokeep.keep
当前正在启动的activity名称:com.gotokeep.keep.refactor.business.main.activity.MainActivity
start_app
start_app 在设备上启动目标应用
参数:
package - 想要启动的应用包名 package name,例如 com.gotokeep.keep
activity - 需要启动的activity,默认为None,即 main activity
返回:None
支持平台:Android,IOS
示例:
start_app("com.gotokeep.keep")
stop_app
终止目标应用在设备上的运行
参数:
package:需要终止运行的应用包名 package name,另见 start_app
返回:None
支持平台:Android,ios
stop_app("com.gotokeep.keep")
使用示例
启动app后 sleep 5秒,然后停掉app
#启动指定app start_app("com.gotokeep.keep") sleep(10) #停掉app stop_app("com.gotokeep.keep")
如果app本身就是启动的状态,如下载登录页面,那么不会重新启动(仍然为继续执行停掉代码)
如果我想启动app直接进入登录页,写上activity名称就可以,如:
1.首先将app打开的登录页,
2.打开cmd命令中输入:adb shell dumpsys activity activities ;查询结果有很多,所以加了如下的过滤;
C:\Users\Administrator>adb shell dumpsys activity activities | findstr mFocus mFocusedActivity: ActivityRecord{5ed1dd4 u0 com.gotokeep.keep/.fd.business.acc ount.login.LoginMainActivity t7} mFocusedStack=ActivityStack{c45e988 stackId=1, 1 tasks} mLastFocusedStack=Acti vityStack{c45e988 stackId=1, 1 tasks} C:\Users\Administrator>login.LoginMainActivity
3.activity名称:fd.business.account.login.LoginMainActivity
4.运行可以看到跳过首页,直接进入到登录页;
一般情况下可以启动app,默认进入首页‘main..’
#启动指定app start_app("com.gotokeep.keep",activity="refactor.business.main.activity.MainActivity")