Airtest IDE 自动化测试12 - 如何让 Airtest 启动指定包名(start_app)
前言
做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" ) |