自動的にバックグラウンドアプリのアンドロイドを切り替える方法

Cは、現在の画面は、B-関連操作に切り替えられた測定アプリケーション、あるプロモーター配列、B、C 3アプリ、どのようにカプセル化方式:アンドロイドフロントエンドのパフォーマンスをテスト自動化された際に、あなたはこのシナリオを経験しています自動切り替えはデーモンモードCアプリ過程でそれをテストしてきたのだろうか?

私はこれが一般的な考え方であると認識します。

1

まず、パッケージキーボードクリックメニューのボタン操作、コードは次のように:

パブリック静的ボイドtapDeviceMenu(文字列UDID){文字列cmdMenu = "ADB -s "+ UDID +" シェル入力たKeyEvent KEYCODE_MENU"; CmdUtils.executeCmd(cmdMenu);}

2

現在のインターフェースは、ハンドオーバー状況の過程にあることができる現在の画面の中点によって達成さがCをプロセスの所望の効果を指すように切り替えられ、現在の画面クリックカプセル化方法の中間点は、以下のように、コードは次のとおりです。

パブリック静的ボイドscreenTapCenter(文字列UDID){リストの<string>リスト= AppiumUtil.getResolution(UDID);(はlist.size()== 2){文字列幅= list.get(0)であれば、文字列の高さ= list.get (1)文字列cmdTapCenter = "ADB -s "+ UDID +" シェル入力タップ "+(Integer.valueOf(幅)/ 2)+"" +(Integer.valueOf(高さ)/ 2); CmdUtils.executeCmd(cmdTapCenter );}} 

3

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

public static List<String> getResolution(String udid){String cmdStr = "adb -s "+ udid +" shell wm size";List<String> strList = CmdUtils.executeCmd(cmdStr);List<String> list = new ArrayList<String>();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; } 

4

对应的 adb 命令有哪些呢?

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

作  者:Testfan 恨水

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

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

おすすめ

転載: www.cnblogs.com/testfan2019/p/11891114.html