前言
做app自动化测试,第一步是启动待测app,Airtest 可以通过截图app图标定位到启动图标,但必须保证是在app列表页。
如何让Airtest 启动指定包名 app? 可以通过指定app包名来启动。
找到app包名
查找app包名,前面一篇讲的很详细https://www.cnblogs.com/canglongdao/p/15546677.html
可以在手机上打开app,windows 系统用findstr 过滤,cmd输入
1 |
adb shell dumpsys window | findstr mCurrentFocus
|
运行结果
1 2 3 |
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
示例:
1 |
start_app( "com.gotokeep.keep" )
|
stop_app
终止目标应用在设备上的运行
参数:
package:需要终止运行的应用包名 package name,另见 start_app
返回:None
支持平台:Android,ios
1 |
stop_app( "com.gotokeep.keep" )
|
使用示例
启动app后 sleep 5秒,然后停掉app
1 2 3 4 5 6 7 |
#启动指定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 ;查询结果有很多,所以加了如下的过滤;
1 2 3 4 5 6 7 |
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..’
1 2 |
#启动指定app
start_app( "com.gotokeep.keep" ,activity = "refactor.business.main.activity.MainActivity" )
|