monkey命令性能測(cè)試

new一下調(diào)試成功,可以直接使用

import time, os, random
import subprocess
import re

PATH = lambda p: os.path.abspath(os.path.join(os.path.dirname(__file__), p))

#注意apk包的存放路徑

class adbmokeybast(object):
     filename = ""
    packagename = ""
    versionCode = ""
    versionName = ""

    def __init__(self, adbdeves, locatpath):
        self.adbdeves = adbdeves
        self.locatpath = locatpath
        self.clsriz()

    def getApkBaseInfo(self):
        getcmd = 'aapt d badging  %s  |findstr "package launchable-activity"' % self.locatpath
        result = subprocess.Popen(getcmd, stdout=subprocess.PIPE,
                                  stderr=subprocess.PIPE,
                                  stdin=subprocess.PIPE, shell=True)
        (output, err) = result.communicate()
        match = re.compile("package: name='(\S+)' versionCode='(\d+)' versionName='(\S+)'").match(output.decode())
        if not match:
            raise Exception("can't get packageinfo")
        self.packagename = match.group(1)
        self.versionCode = match.group(2)
        self.versionName = match.group(3)

        print('packagename:' + self.packagename)
        print('versionCode:' + self.versionCode)
        print('versionName:' + self.versionName)
        return self.packagename, self.versionName, self.versionCode

    def clsriz(self):
        os.system("cls")  # 清楚日志
        print("adb 啟動(dòng)中...")
        # 鏈接模擬器 進(jìn)行測(cè)試
        os.popen("adb connect 127.0.0.1:62001")
        os.popen("adb devices")  # 執(zhí)行命令
        os.system("cls")

    def adbmokdeyaut(self):
        result = os.popen(self.adbdeves).readlines()  # os.popen()執(zhí)行系統(tǒng)命令并返回執(zhí)行后的信息對(duì)象
        devices = []
        devicesdec = {}
        # 保存選擇設(shè)備號(hào)
        dev = ""
        alen = len(result)
        new_a = result[1:alen - 1]
        for i in range(len(new_a)):
            newadvices = new_a[i].split("\t")
            if newadvices[1] == "device\n":
                devices.append(newadvices[0])
                devicesdec[i] = newadvices[0]
            else:
                return "沒(méi)有可以用的設(shè)備號(hào)"
        print(devices)
        print(devicesdec)
        try:
            while True:
                nSel = int(input("選擇輸入設(shè)備按序號(hào)就行: "))
                for k, v in devicesdec.items():
                    if nSel == k:
                        print("您輸入的序號(hào)為:%d,設(shè)備號(hào)為: %s" % (int(nSel), devicesdec[nSel]))
                        dev = devicesdec[nSel]
                        break
                else:
                    print("你輸入的有誤?。。?)
                    continue
                break
        except:
            print("輸入有誤,程序停止")
            return 0

        self.filename = input("輸入保存的結(jié)果文件名:")
        fd = open(self.filename + '.cmd', 'w')
        monkeypath = "e:\\monkey\\" + self.filename
        if not os.path.isfile(monkeypath):
            os.mkdir(monkeypath)
        print(monkeypath)
        fd.write(":loop\n")
        fd.write("adb -s ")  # 選擇設(shè)備
        fd.write(dev)  # 設(shè)備號(hào)
        # -s %random%的意思是防止產(chǎn)品相同的時(shí)間避免重復(fù)執(zhí)行同一種動(dòng)作  320000
        cmmmdgetapck = " shell monkey  -p ${packes} --monitor-native-crashes  --pct-touch 80 --pct-motion 15 --pct-nav 5 -s %random% -v  --throttle 500 320000".replace(
            "${packes}", self.packagename)
        fd.write(cmmmdgetapck + "  >" + monkeypath)
        fd.write("\\%random%.log\n")
        # ping自己15次用來(lái)延遲
        fd.write("@ping -n 15 127.1 >nul\n")
        fd.write("adb -s ")
        fd.write(dev)
        fd.write(" reboot\n")
        fd.write("@ping -n 120 127.1 >nul\n")
        fd.write("@goto loop")
        fd.close()
        print("批處理生成完畢")

    def cmdrun(self):
        path = os.getcwd()
        print(path)
        self.adbmokdeyaut()
        print("============" + self.filename)
        os.system(self.filename)

if __name__ == '__main__':
    locatpath = PATH(r'apk\XXXX.apk')
    am = adbmokeybast("adb devices", locatpath)
        #獲取包名
    am.getApkBaseInfo()
        #啟動(dòng)全部程序
    # am.cmdrun()

old

#! /usr/bin/env python
# -*- coding:utf-8 -*-
# Author: liwen
'''
@time: 2018/8/6 9:19
'''
import os
import os.path

def clsriz():
    os.system("cls")  # 清楚日志
    print "adb 啟動(dòng)中..."
    os.popen("adb devices")  # 執(zhí)行命令
    os.system("cls")

def operation():
    result = os.popen('adb devices').readlines()  # os.popen()執(zhí)行系統(tǒng)命令并返回執(zhí)行后的信息對(duì)象
    n = len(result) - 2
    print result
    print "檢測(cè)到" + str(n) + "臺(tái)設(shè)備:"
    devices = range(n)
    for i in range(n):
        nPos = result[i + 1].index("\t")
        devices[i] = result[i + 1][:nPos]
        print str(i + 1) + " - " + devices[i]
    print " "
    nSel = 1
    if n != 1:
        nSel = input("選擇設(shè)備:")
    if nSel <= n:
        dev = devices[nSel - 1]

    fn = raw_input("輸入文件名:")
    fd = open(fn + '.cmd', 'w')

    if not os.path.isdir("D:\\" + fn):
        os.mkdir("D:\\" + fn)

    fd.write(":loop\n")
    fd.write("adb -s ")  # 選擇設(shè)備
    fd.write(dev)  # 設(shè)備號(hào)
    fd.write(
        " shell monkey  -p com.android.browser --monitor-native-crashes  --pct-touch 80 --pct-motion 15 --pct-nav 5 -s %random% -v  --throttle 500 320000 >d:\\")  # -s %random%的意思是防止產(chǎn)品相同的時(shí)間避免重復(fù)執(zhí)行同一種動(dòng)作
    fd.write(fn)
    fd.write("\\%random%.log\n")
    fd.write("@ping -n 15 127.1 >nul\n")  # ping自己15次用來(lái)延遲
    fd.write("adb -s ")
    fd.write(dev)
    fd.write(" reboot\n")
    fd.write("@ping -n 120 127.1 >nul\n")
    fd.write("@goto loop")

    fd.close()

    print "批處理生成完畢"

if __name__ == '__main__':
    # clsriz()
    operation()

修改版本

result = os.popen(self.adbdeves).readlines()  # os.popen()執(zhí)行系統(tǒng)命令并返回執(zhí)行后的信息對(duì)象
        devices = []
        devicesdec = {}
        # 保存選擇設(shè)備號(hào)
        dev = ""
        alen = len(result)
        new_a = result[1:alen - 1]
        for i in range(len(new_a)):
            newadvices = new_a[i].split("\t")
            if newadvices[1] == "device\n":
                devices.append(newadvices[0])
                devicesdec[i] = newadvices[0]
            else:
                return "沒(méi)有可以用的設(shè)備號(hào)"
        print(devices)
        print(devicesdec)
        try:
            while True:
                nSel = int(input("選擇輸入設(shè)備按序號(hào)就行: "))
                for k, v in devicesdec.items():
                    if nSel == k:
                        print("您輸入的序號(hào)為:%d,設(shè)備號(hào)為: %s" % (int(nSel), devicesdec[nSel]))
                        dev = devicesdec[nSel]
                        break
                else:
                    print("你輸入的有誤?。?!")
                    continue
                break
        except:
            print("輸入有誤,程序停止")
            return 0

#第二種方法:
 devices = []
    import subprocess
    result = subprocess.Popen("adb devices", shell=True, stdout=subprocess.PIPE,
                              stderr=subprocess.PIPE).stdout.readlines()
    for item in result:
        t = item.decode().split("\tdevice")
        if len(t) >= 2:
            devices.append(t[0])
    return devices

本文標(biāo)題:monkey命令性能測(cè)試
文章鏈接:http://muchs.cn/article26/ihjpcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作軟件開(kāi)發(fā)、企業(yè)建站品牌網(wǎng)站設(shè)計(jì)、電子商務(wù)搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化