您的位置: 消费周刊网 > 科技 > 正文

android如何自动切换后台app!

2020-11-19 06:38:36来源:阅读:

在做 android 前端性能自动化测试时,你是否经历过这样的场景:依次启动 A、B、C 三个 app,其中 C 是被测 app, 当当前屏幕切换到 B 进行相关操作后,如何通过封装方法实现自动切换会已经处于后台进程模式的被测 app 进程 C 呢?

我的实现思路大体是这样的。

1

首先封装点击键盘 menu 键操作,代码如下所示:

public static void tapDeviceMenu(String udid){String cmdMenu = "adb -s "+udid+" shell input keyevent KEYCODE_MENU";CmdUtils.executeCmd(cmdMenu);}

android如何自动切换后台app

2

当前界面处于进程切换情况下,可以通过点当前屏幕的中点实现切换到进程 C 的预期效果,封装点击当前屏幕中点方法,代码如下所示:

public static void screenTapCenter(String udid){List list = AppiumUtil.getResolution(udid);if(list.size() == 2){String width = list.get(0);String height = list.get(1);String cmdTapCenter = "adb -s "+udid+" shell input tap "+(Integer.valueOf(width)/2)+" "+(Integer.valueOf(height)/2);CmdUtils.executeCmd(cmdTapCenter);} }

android如何自动切换后台app

3

不同的手机设备屏幕分辨率是不同的,如何兼容不同手机获取中点坐标呢?封装方法如下:

public static List getResolution(String udid){String cmdStr = "adb -s "+ udid +" shell wm size";List strList = CmdUtils.executeCmd(cmdStr);List list = new ArrayList();for( int i = 0; i< strList.size(); i++){if( strList.get(i)!=null && !strList.get(i).isEmpty() ){list = StringMatchUtils.getMatchers("Physical size: (\\d{1,})x(\\d{1,})", strList.get(i),2);} }return list; }

android如何自动切换后台app

4

对应的 adb 命令有哪些呢?

>adb shell input keyevent KEYCODE_MENU>adb shell input tap 中点横坐标中点纵坐标Ⅴ注意,该方法仅适用于安卓设备启动 3 个应用,并且启动顺序是 A、B、C,并且 B 这个 App处于当前界面情况下如何切换到 C 情况下。这里还涉及到获取 dos 命令返回结果以及正则匹配指定字符串,这两个方法封装较常见,在这里就不再赘述了。

作  者:Testfan 恨水

出  处:微信公众号:自动化软件测试平台

版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接

推荐阅读:爱秀时尚风

滚动推荐
38:36android如何自动切换后台ap
在做 android 前端性能自动化测试时,你是否经历过这样的场景:依[详细]
21:48运营复盘:在线教育产品,少儿英语的
本文作者从自己的工作出发,结合实际的运营案例来分享,如何通过运营,让在[详细]
00:11思考:随时联系、电商通达的互联网时
无论你是宅家找乐解闷,还是闲情逸致寻找意义,这边全民宅家不动,那厢商超[详细]
45:14企业营销的获客成本太高?了解一下运
运营商大数据精准营销系统是在确保用户隐私安全的前提下,用基于运营商的海[详细]
31:38音响+小爱同学+防丢神器:距离无限
一直以来,对讲机产品好像都是专业人士才会选择的产品。比如一些户外运动爱[详细]
24:35基于知识图谱的问答在美团智能交互场
文章作者:潘路 美团点评 资深算法专家编辑整理:凌铭内容来源:2019[详细]
23:23「更新」流量来源分析详解!
以前分析过阿里巴巴国际站流量来源,现在,数据管家流量来源版块又进行了更[详细]