校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 實現android自動化測試部署與運行Shell腳本分享

實現android自動化測試部署與運行Shell腳本分享

熱門標簽:安裝外呼系統費用 電銷機器人 劍魚 申請公司400電話要注意什么 奧維互動地圖標注參數 聯通電話機器人怎么接 寧波智能外呼系統公司 地圖標注輻射圖案 衛星地圖標注地名 曲阜400電話辦理

我的配置是linux 64, android4.2.2的sdk。 實現的細節都在代碼注釋里了,變量名以及echo的內容也是說明的一部分。

主流程為:

1.檢測是否指定端口的模擬器已經運行,若有則關閉
2.創建模擬器
3.啟動模擬器
4.用ant build包,通過檢查bin目錄下有沒有apk來確定是否成功
5.檢查指定端口的模擬器是否已正常運行
6.用adb安裝apk
7.啟動apk的activity,讓程序自己跑
8.用shell ps循環檢測程序是否已退出,若已退出,檢查是否sdcard是是否已成功生成報告文件
9.若報告文件不完整,即程序被中止/崩潰,重啟activity
10.檢測是否超時

復制代碼 代碼如下:

#!/bin/bash
# by hursing 2013-10-28
# 指定port,可以不干擾其它正在運行的模擬器。根據sdk文檔,port可以在5554至5584之間,最好是偶數
portNumber=5578
emulatorPID=`ps -ef | grep "emulator" | grep "port $portNumber" | awk '{print $2;}'`
if [ -n "$emulatorPID" ]; then
 echo "close emulator window"
 kill -9 $emulatorPID
fi

# 創建模擬器,force選項能覆蓋已存在的模擬器,即sdcard內容也抹掉。echo no是回答不需要自定義硬件配置
echo "create avd"
emulatorName="Test"
echo no | android create avd --name $emulatorName --force --target android-17 --sdcard 300M --abi armeabi-v7a

# 啟動模擬器,port選項指定tcp端口。是另起進程執行
echo "start avd"
emulator -avd $emulatorName -port $portNumber

# 沒有證書簽名,所以是debug
echo "build apk"
android update project -p .
ant debug
if [ $? -ne 0 ]; then
 echo "build failed, try again now..."
 ant clean
 ant debug
 if [ $? -ne 0 ]; then
  echo "can NOT build apk!"
  exit 5
 fi
fi
apkFile=`find ./bin/*.apk | grep -v "unaligned"`
if [ -z "$apkFile" ]; then
 echo "no apk file generated!"
 exit 7
fi

# wait-for-device能block住腳本直到不顯示offline
echo "check emulator ready..."
emulatorSerialNumber="emulator-$portNumber"
ready=`adb devices | grep "$emulatorSerialNumber"`
if [ -z "$ready" ]; then
 echo "emulator can NOT launch."
 exit 3
else
 ready=`adb devices | grep "$emulatorSerialNumber.*offline"`
 if [ -n "$ready" ]; then
  echo "wait-for-device"
  adb -s $emulatorSerialNumber wait-for-device
  sleep 10
 fi
fi

# 當adb可以安裝時,模擬器未必已經初始化完成,還是會失敗的,所以要檢測error,試3遍。
echo "install apk"
let maxTryTimes=3
while [ $maxTryTimes -gt 0 ]; do
 result=`adb -s $emulatorSerialNumber install $apkFile`  # 'ant installd' can NOT specify device
 check=`echo "$result" | grep -o "Error"`
 if [ -z "$check" ]; then
  echo "successfully install apk"
  break;
 else
  echo "$result"
  echo "install failed, try again after sleeping 10 seconds"
  sleep 10
  let maxTryTimes-=1
 fi
done
if [ $maxTryTimes -eq 0 ]; then
 echo "can NOT install apk to emulator."
 exit 4
fi

echo "start MainActivity"
activityName="com.hursing.MainActivity"
packageName=`cat AndroidManifest.xml | grep -o "package=\".*\"" | sed 's/package="http://;s/"http://'`
adb -s $emulatorSerialNumber shell am start -W -n "$packageName/$activityName"

heartBeat=10
echo "waiting for test finished.check every $heartBeat seconds."
resultFile="/sdcard/result.txt"
successFlag="End at "
sleep $heartBeat
let maxTimeLimit=60*10
while [ $maxTimeLimit -gt 0 ]; do
 running=`adb -s $emulatorSerialNumber shell ps | grep $packageName`
 if [ -n "$running" ]; then
  let maxTimeLimit-=$heartBeat
  echo "waiting, sleep another $heartBeat seconds..."
  sleep $heartBeat
 else
  report=`adb -s $emulatorSerialNumber shell cat "$resultFile"`
  check=`echo "$report" | grep -o "$successFlag"`
  if [ -z "$check" ]; then
   echo "app crash, run activity again..."
   adb -s $emulatorSerialNumber shell am start -W -n "$packageName/$activityName"
  else
   echo "app exit normally"
   break
  fi
 fi
done

echo "close emulator window."
kill -9 `ps -ef | grep "emulator" | grep "port $portNumber" | awk '{print $2;}'`

if [ $maxTimeLimit -eq 0 ]; then
 echo "Test timeout!"
 echo "$report"
 exit 9
else
 echo "Test Finished!"
 echo
 echo "$report"
fi

java代碼里有一點要注意,如果程序崩潰,彈出了"has stopped”對話框,那么ps還是能查到的,要自己調用

復制代碼 代碼如下:

Thread.setDefaultUncaughtExceptionHandler

,在handler里直接System.exit(0)才行。

您可能感興趣的文章:
  • Android App開發的自動化測試框架UI Automator使用教程
  • 實現android應用程序自動化測試的批處理腳本
  • Android 自動化測試經驗分享 深入UiScrollable
  • android monkey自動化測試改為java調用monkeyrunner Api
  • Android實現彈窗進度條效果
  • Android開發實現仿京東商品搜索選項卡彈窗功能
  • Android自動化測試處理各種彈窗的操作方法

標簽:大興安嶺 仙桃 安康 江西 大慶 遵義 三門峽 上饒

巨人網絡通訊聲明:本文標題《實現android自動化測試部署與運行Shell腳本分享》,本文關鍵詞  實現,android,自動化,測試,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《實現android自動化測試部署與運行Shell腳本分享》相關的同類信息!
  • 本頁收集關于實現android自動化測試部署與運行Shell腳本分享的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    国产一区二区三区精品视频| 精品国产麻豆免费人成网站| 中文字幕成人av| 蜜臀av一区二区三区| 日韩欧美高清在线| 日本一不卡视频| 69精品人人人人| 久久精品国产久精国产| 欧美理论电影在线| 亚洲成国产人片在线观看| 欧美日韩一区二区三区视频| 亚洲狠狠丁香婷婷综合久久久| 99在线精品观看| 亚洲不卡在线观看| 欧美性xxxxxxxx| 亚洲高清免费观看| 精品区一区二区| 亚洲日穴在线视频| 成人av免费网站| 一区二区在线观看视频 | 亚洲激情第一区| 欧美电视剧在线观看完整版| 美美哒免费高清在线观看视频一区二区 | 97久久精品人人爽人人爽蜜臀 | 亚洲午夜久久久久久久久电影网| 欧美日本在线观看| 美女任你摸久久 | 另类小说图片综合网| 国产日本欧美一区二区| 成人av在线播放网站| 亚洲你懂的在线视频| 日韩免费视频一区二区| 精品中文字幕一区二区| 色又黄又爽网站www久久| 亚洲一二三四区| 精品视频123区在线观看| 欧美中文字幕亚洲一区二区va在线 | 日韩理论片网站| 亚洲日本一区二区| 一区二区三区精密机械公司| 成人影视亚洲图片在线| 亚洲人精品午夜| 在线播放日韩导航| 99免费精品在线| 丝袜美腿一区二区三区| 久久精品视频在线免费观看| 欧美人牲a欧美精品| 国产在线精品不卡| 亚洲精品老司机| 久久蜜桃av一区精品变态类天堂 | 国产精品欧美一区喷水| 在线观看av一区二区| 国产不卡视频在线观看| 一区二区三区在线观看视频| 欧美电视剧在线观看完整版| 欧美日韩在线免费视频| 国产一区二区在线视频| 一区二区三区四区激情| 国产精品天干天干在线综合| 欧美猛男超大videosgay| 精品国产伦一区二区三区免费 | 亚洲一本大道在线| 久久综合资源网| 成人av在线播放网站| 国产毛片精品一区| 亚洲成人在线免费| 久久精品人人做| 精品国产乱码久久久久久蜜臀| 一本久久精品一区二区| 日本伊人午夜精品| 精品福利一二区| 一本大道久久精品懂色aⅴ | 蜜臀av性久久久久av蜜臀妖精 | 91视视频在线观看入口直接观看www | 福利视频网站一区二区三区| 亚洲国产精品一区二区久久| 中文字幕制服丝袜一区二区三区| 91精品福利在线一区二区三区| 99精品久久只有精品| 国产成人8x视频一区二区| 日韩av电影免费观看高清完整版 | 一区二区欧美国产| 欧美激情在线看| 精品久久久久av影院 | 91亚洲午夜精品久久久久久| 激情小说亚洲一区| 亚洲综合免费观看高清在线观看| 亚洲天堂成人在线观看| 国产三级欧美三级日产三级99| 欧美欧美欧美欧美首页| 日韩亚洲欧美一区| 91精品国产一区二区三区蜜臀| 欧美中文字幕久久| 亚洲第一久久影院| 2024国产精品| 精品对白一区国产伦| 欧美成人免费网站| 日韩精品自拍偷拍| 日韩精品在线一区二区| 日韩欧美中文一区二区| 日韩欧美中文一区| 精品国产精品网麻豆系列| 国产午夜精品在线观看| 国产午夜精品一区二区三区四区| 久久影院午夜片一区| 国产精品久久久久久久午夜片| 中文字幕免费一区| 中文字幕五月欧美| 亚洲成人你懂的| 日韩高清国产一区在线| 亚洲免费观看高清完整版在线| 欧美日韩一区三区| 一区二区三区在线视频观看| 亚洲欧洲av一区二区三区久久| 中文字幕中文字幕在线一区| 亚洲日本在线a| 午夜免费欧美电影| 视频一区国产视频| 精品一区二区久久| 国产精品69久久久久水密桃| 久久国产精品一区二区| 成人自拍视频在线| 青椒成人免费视频| 韩国精品在线观看| 日本精品裸体写真集在线观看| 成人爽a毛片一区二区免费| 成人av在线播放网站| 日韩欧美激情四射| 国产欧美日韩不卡免费| 国产欧美一区视频| 洋洋av久久久久久久一区| 午夜av一区二区| 日本不卡一区二区三区| 成人黄色在线视频| 欧美日韩在线亚洲一区蜜芽| 亚洲精品一区二区三区四区高清| 亚洲色图.com| 青青草97国产精品免费观看 | 99精品视频在线观看| 国产成人精品亚洲日本在线桃色| 99精品久久只有精品| 91精品国产综合久久久久久漫画| 6080日韩午夜伦伦午夜伦| 国产精品传媒在线| 日本vs亚洲vs韩国一区三区二区 | 日韩中文字幕av电影| 国产二区国产一区在线观看| 一本大道av一区二区在线播放| 久久香蕉国产线看观看99| 亚洲日本乱码在线观看| 奇米影视在线99精品| 七七婷婷婷婷精品国产| 欧美三级中文字幕在线观看| 久久免费精品国产久精品久久久久| 亚洲欧美综合在线精品| 国产精品中文字幕一区二区三区| 日本道色综合久久| 精品久久久久99| 亚洲不卡一区二区三区| av影院午夜一区| 青青草精品视频| 丝袜脚交一区二区| av资源网一区| 久久午夜电影网| 精品无码三级在线观看视频| 91欧美一区二区| 久久久av毛片精品| 国精品**一区二区三区在线蜜桃| 色偷偷一区二区三区| 国产欧美日韩麻豆91| 视频一区中文字幕国产| 一本到高清视频免费精品| 91国产视频在线观看| 精品国产第一区二区三区观看体验| 久久精品国产成人一区二区三区| 欧美日韩精品一区视频| 国产视频一区二区在线观看| 国内国产精品久久| 日韩欧美在线观看一区二区三区| 亚洲妇熟xx妇色黄| 91久久线看在观草草青青| 国产精品久久夜| 不卡视频在线看| 国产偷国产偷精品高清尤物| 日韩在线一二三区| 日韩免费成人网| 精品一区二区三区在线视频| 欧美电影一区二区| 久久精品国产色蜜蜜麻豆| 538在线一区二区精品国产| 午夜欧美电影在线观看| 精品国产亚洲一区二区三区在线观看 | 一区二区高清免费观看影视大全| 99国内精品久久| 亚洲一区二区三区爽爽爽爽爽| 欧美精品视频www在线观看| 美女脱光内衣内裤视频久久影院| 精品国产在天天线2019| 国产一区中文字幕| 国产精品国产三级国产a|