1. 程式人生 > 其它 >monkey測試指令碼.ps1

monkey測試指令碼.ps1

#aapt.exe adb.exe 設定為環境變數
#將指令碼和apk包放在同一個資料夾
#.\monkeytest.ps1 -deviceid "123" 是monkey測試當前資料夾下所有apk
#.\monkeytest.ps1 -deviceid "123" -apk_list ("androbench-5.0.1.apk", "HD Video Player.apk") 是monkey測試當前資料夾下指定的apk


#命令列引數
Param(
[string[]]$apk_list = $null,
[string]$deviceid = "0123456789ABCDEF"
)

#獲取日期時間
$start = Get-Date

#獲取根目錄
$PSScriptRoot = Split-Path -Parent $MyInvocation.MyCommand.Definition

$CurrentyDir = $PSScriptRoot
echo "Currentdir: "$CurrentyDir
echo ""

#存在則刪除此檔案
$FILE_PATH="$CurrentyDir\$deviceid-*.txt"
$TRUE_FALSE=(Test-Path $FILE_PATH)
if($TRUE_FALSE -eq "True")
{
remove-Item -Recurse -Force $FILE_PATH
}

#if判斷
if( $apk_list -eq $null ){
#獲取包名 foreach迴圈 按當前資料夾下所有apk獲取包名
foreach($i in dir $CurrentyDir\*.apk -name){aapt d badging $CurrentyDir\$i|Select-String 'package: name' >> $CurrentyDir\$deviceid-package1.txt}
gc $CurrentyDir\$deviceid-package1.txt|?{-not [String]::IsNullOrWhiteSpace($_)} | set-content $CurrentyDir\$deviceid-package_old.txt
gc $CurrentyDir\$deviceid-package_old.txt |%{$_.split('=')[1]}|%{$_.split(' ')[0]} >> $CurrentyDir\$deviceid-package.txt

}else{
#獲取包名 按命令列引數提供apk獲取包名
foreach($i in $apk_list){aapt d badging $CurrentyDir\$i|Select-String 'package: name' >> $CurrentyDir\$deviceid-package1.txt}
gc $CurrentyDir\$deviceid-package1.txt|?{-not [String]::IsNullOrWhiteSpace($_)} | set-content $CurrentyDir\$deviceid-package_old.txt
gc $CurrentyDir\$deviceid-package_old.txt |%{$_.split('=')[1]}|%{$_.split(' ')[0]} >> $CurrentyDir\$deviceid-package.txt
}

#monkey測試
$lines_pack = cat $CurrentyDir\$deviceid-package.txt
foreach ($line in $lines_pack){echo "$line monkey test";adb -s $deviceid shell monkey -p $line --throttle 200 --ignore-crashes --ignore-timeouts --ignore-security-exceptions --ignore-native-crashes --monitor-native-crashes -v -v -v 30000;sleep 1}
sleep 5

#3刪除中間檔案
$FILE_PATH="$CurrentyDir\$deviceid-*.txt"
$TRUE_FALSE=(Test-Path $FILE_PATH)
if($TRUE_FALSE -eq "True")
{
remove-Item -Recurse -Force $FILE_PATH
}

#計算耗時
$end = Get-Date
Write-Host -ForegroundColor Red ($deviceid + ' monkeytest ' + 'Total Runtime: ' + ($end - $start).TotalSeconds)