python性能自动化

该博客介绍了一个使用uiautomator2库进行手机应用性能监控的方法,包括CPU和内存分析,以及通过Python脚本抓取和处理运行时数据的过程。它展示了如何获取平均值和最大/最小值,针对不同场景如导航、静止等进行测试.
摘要由CSDN通过智能技术生成

import codecs
import subprocess
import os
import time
import unittest
from pytestreport import TestRunner
import uiautomator2 as u2
import email
import os
import smtplib
import random
import uiautomator2 as u2
import time
import unittest
from email.mime.application import MIMEApplication
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import pandas as pd
d=u2.connect_usb(‘928c9031’)
def Homestill(testname,sourcefile,sourcenextfile,memfile,minmaxcpu,minmaxmem):

print(testname+"aaaaaaaaalllllllllll")
os.system('adb shell top >>'+sourcefile)
os.system(' cat ' +sourcefile+'| grep -aiE com.baidu.navia+ >>'+sourcenextfile)
cpu = " cat " + sourcenextfile + "|awk '{sum+=$9} END {print  sum/NR}'"
resultavg = subprocess.Popen(cpu, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
                             shell=True).stdout.readline()
stravg = str(resultavg)[2:5]
print("cpu的平均值0000")
print(stravg)
infopen = open(sourcenextfile, 'r', encoding="utf-8")  # 打开本体文件
outfopen = open(memfile, 'w', encoding="utf-8")  # 打开写入文件
lines = infopen.readlines()
for line in lines:  # 按行读取
    for db in line:  # 按字读取
        if db == 'M':
            continue
        outfopen.write(db)  # 写入文件
infopen.close()  # 关闭文件
outfopen.close()  # 关闭文件
mem = " cat " + memfile + "|awk '{sum+=$6} END {print  sum/NR}'"
resultavg = subprocess.Popen(mem, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
                             shell=True).stdout.readline()
print("mem的平均值0000")
print(int(resultavg[0:3]))

## cpu
onedate="awk '{print $9}'"+sourcenextfile +">>"+minmaxcpu
subprocess.Popen(onedate, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
                 shell=True).stdout.readline()
'''
maxcpu="'sed'/^$/d'"+minmaxcpu+ "| awk 'NR==1{max=$1;next}{max=max>$1?max:$1}END{print max}'"
maxcpuresult=subprocess.Popen(maxcpu, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
                 shell=True).stdout.readline()
print("maxcpu and mincpu",maxcpuresult)


mincpu = "'sed'/^$/d'" + minmaxcpu + "| awk 'NR==1{min=$1;next}{min=min<$1?min:$1}END{print min}'"
mincpuresult=subprocess.Popen(mem, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
                 shell=True).stdout.readline()


print("maxmem and minmem", mincpuresult)
'''

mem

onedate = "awk '{print $6}"+sourcenextfile+">>"+minmaxmem

subprocess.Popen(onedate, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
                 shell=True).stdout.readline()
'''
maxmem = "'sed'/^$/d'" + minmaxmem + "| awk 'NR==1{max=$1;next}{max=max>$1?max:$1}END{print max}'"
maxmemresult = subprocess.Popen(maxmem, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
                                shell=True).stdout.readline()
print("maxmem and minmem", maxcpuresult)




minmem = "'sed'/^$/d'" + minmaxmem + "| awk 'NR==1{min=$1;next}{min=min<$1?min:$1}END{print min}'"
minmemresult = subprocess.Popen(minmem, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
                                shell=True).stdout.readline()

print("maxmem and minmem", minmemresult)
'''

if name==‘main’:

Homestill('首页静止','/Users/shixinfa/Desktop/首页静止.txt','/Users/shixinfa/Desktop/首页静止01.txt','/Users/shixinfa/Desktop/首页静止02.txt','/Users/shixinfa/Desktop/首页静止cpu.txt','/Users/shixinfa/Desktop/首页静止mem.txt')
#Homestill('后台空闲','/Users/shixinfa/Desktop/后台空闲.txt','/Users/shixinfa/Desktop/后台空闲01.txt','/Users/shixinfa/Desktop/后台空闲02.txt','/Users/shixinfa/Desktop/后台空闲cpu.txt','/Users/shixinfa/Desktop/后台空闲mem.txt')
'''
Homestill('底图缩放','/Users/shixinfa/Desktop/AAAA.txt','/Users/shixinfa/Desktop/BBBB.txt','/Users/shixinfa/Desktop/CCCC.txt')
Homestill('底图拖着','/Users/shixinfa/Desktop/mmmm.txt','/Users/shixinfa/Desktop/llll.txt','/Users/shixinfa/Desktop/nnnn.txt')
Homestill('发起算路', '/Users/shixinfa/Desktop/suanlu00.txt', '/Users/shixinfa/Desktop/suanlu01.txt',
          '/Users/shixinfa/Desktop/suanlu02.txt')
Homestill('普通导航20min(关路况)', '/Users/shixinfa/Desktop/daohangoff00.txt', '/Users/shixinfa/Desktop/danghangoff01.txt',
          '/Users/shixinfa/Desktop/daohangoff02.txt')
Homestill('普通导航20min', '/Users/shixinfa/Desktop/danghang00.txt', '/Users/shixinfa/Desktop/daohang01.txt',
          '/Users/shixinfa/Desktop/daohang.txt')
Homestill('普通xun航20min', '/Users/shixinfa/Desktop/xunghang00.txt', '/Users/shixinfa/Desktop/xunhang01.txt',
          '/Users/shixinfa/Desktop/xunhang.txt')

'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值