App測試學習:自動遍歷測試


一、目的

1、降低用例維護成本

2、盡可能的自動化覆蓋回歸業務

二、常見遍歷工具與技術

  • google android原生monkey、app crawler
  • 百度smartmonkey
  •  騰訊newmonkey
  • vigossjji smart monkey
  • macaca的NoSmoke
  • 頭條的zhangzhao maxim
  • seveniruby appcrawler

三、android monkey

是一個在模擬器或設備上運行的程序,用於生成用戶事件的偽隨機流

優點:運行速度快、需要的編碼少

缺點:隨機事件不受控制

常用命令

adb shell monkey 100 對所有包隨機操作

adb shell monkey -p com.xueqiu.android 100 對指定包

adb shell monkey -p com.xueqiu.android -s 20 80 時間種子(相同參數執行的動作一樣,可用於回溯問題)

adb shell monkey -p com.xueqiu.android -vv -s 20 80 記錄詳細日志

adb shell monkey -p com.xueqiu.android --throttle 5000 100 時間延遲

adb shell monkey -p com.xueqiu.android --pct-touch 10 1000 指定事件時間百分比

adb shell monkey -p com.hundsun.winner.pazq  -vvv --pct-touch 80  200 >monkey.txt 輸入日志信息

常用事件

--pct-touch:觸摸事件,比如點擊

--pct-motion:動作事件,比如滑動(直線)

--pct-trackball:軌跡事件,比如移動+點擊,曲線滑動

--pct-majornav:主要導航事件,比如回退按鍵、菜單按鍵

用bash腳本自動執行

#monkey.sh
#! /bin/bash #用``反引號包含的當做命令運行 devices=`adb devices | grep 127.0.0.1 |awk '{print $1}'` for device in $devices; do { nohup adb -s $device shell monkey -p com.hundsun.winner.pazq -vv --throttle 200 400 >result.txt & } done

然后在git bash命令行窗口中執行:bash -x monkey.sh

四、maxim

項目地址:https://github.com/zhangzhao4444/Maxim

簡單使用:

  • 支持 Android 5,6,7,8,真機及模擬器; Android 5不支持 dfs mode
  • 將 framework.jar , monkey.jar push 到手機上某個目錄中,建議/sdcard
adb push framework.jar /sdcard adb push monkey.jar /sdcard

cmd 命令 : adb shell CLASSPATH=/sdcard/monkey.jar:/sdcard/framework.jar exec app_process /system/bin tv.panda.test.monkey.Monkey -p com.panda.videoliveplatform --uiautomatormix --running-minutes 60 -v -v

  • tv.panda.test.monkey.Monkey: monkey入口類,不要修改
  • com.panda.videoliveplatform: 被測app包名,需要修改
  • --uiautomatormix: 遍歷策略

策略

  1. 模式 DFS --uiautomatordfs 增加深度遍歷算法

  2. 模式 Mix --uiautomatormix 直接使用底層accessibiltyserver獲取界面接口 解析各控件,隨機選取一個控件執行touch操作。 同時與原monkey 其他操作按比例混合使用 默認accessibilityserver action占比50%,其余各action分剩余的50% accessibilityserver action占比可配置 --pct-uiautomatormix n

  3. 模式Troy --uiautomatortroy 控件選擇策略按max.xpath.selector配置的高低優先級來進行深度遍歷

  4. 保留原始monkey

  5. 總運行時長 --running-minutes 3 運行3分鍾

  6. --act-whitelist-file /sdcard/awl.strings 定義白名單 --act-blacklist-file

其他參數與原始monkey一致

其他

1、對於需要登錄才能進入的app,可以先手動進行登錄;

2、登錄后可能會自動退出,可以屏蔽掉登出按鈕,或者通過腳本方式執行,屏蔽掉該登出坐標。

 五、appcrawler

開源地址:https://github.com/seveniruby/AppCrawler

1、下載最新版本的appcrawler包;

2、啟動appium,啟動並連接模擬器

3、基礎使用

java -jar appcrawler-2.4.0-jar-with-dependencies.jar命令用於查看幫助文檔

啟動已經安裝過的app,這里以平安證券app為例

 java -jar appcrawler-2.4.0-jar-with-dependencies.jar --capability "appPackage=com.hundsun.winner.pazq,appActivity=.ui.home.activity.MainContainerActivity"

執行完成后會生成以執行時間命名的日志文件,日志中包含每一步的截圖,會用紅框標識出點擊的位置:

 其中log日志文件中可以按照index索引進行解讀,包含每步的動作、頁面名稱等信息

4、進階使用(官方社區上有完整的說明https://ceshiren.com/t/topic/3788)

在步驟3中命令后加上--demo參數生成配置模板文件, java -jar appcrawler-2.4.0-jar-with-dependencies.jar --capability "appPackage=com.hundsun.winner.pazq,appActivity=.ui.home.activity.MainContainerActivity" --demo

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM