Airtest IDE 自动化测试14 - 如何让 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输入

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")

Airtest IDE 自动化测试14 - 如何让 Airtest 启动指定包名(start_app)

 

 如果app本身就是启动的状态,如下载登录页面,那么不会重新启动(仍然为继续执行停掉代码)

Airtest IDE 自动化测试14 - 如何让 Airtest 启动指定包名(start_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.运行可以看到跳过首页,直接进入到登录页;

Airtest IDE 自动化测试14 - 如何让 Airtest 启动指定包名(start_app)

 

 一般情况下可以启动app,默认进入首页‘main..’

#启动指定app
start_app("com.gotokeep.keep",activity="refactor.business.main.activity.MainActivity")

  

上一篇:Android开发中混淆后Gson序列化、反序列化的那些坑,移动端跨平台框架


下一篇:sqli-lab1~4