cpu占用监测软件 安卓cpu监控软件

实时监控内存、CPU消耗工具

1.概述

通过工具,将能够根据需要监控CPU、内存状态。脚本默认每隔10s钟获取一次当前的cpu、内存状态并记录,设定的时间到了后,停止获取并开始分析数据,最后自动发出结果邮件。运行结果截图如下

2.使用介绍

2.1使用场景

在手工测试APP的时候,可同步监测系统、该app的性能

在做自动化测试的时候,可同步监测系统、指定的apps的性能

在做Monkey测试的时候,可同步监测系统、指定的apps的性能

2.2运行环境

2.2.1 .ubuntu系统,安装好python2.7、adb工具,pychart插件

2.2.2 手机需要支持top、procrank命令

2.3使用方法:

2.3.1根据需要修改systemMonitor.conf配置文件,配置项有:

[runTime]#脚步运行时长,以分钟为单位

rumTime=1

[updateTime]#刷新间隔,默认为10秒

updateTime=10

[packageNameList]#过滤进程名,多个进程以逗 分隔

packageNameList=com.android.email,com.android.providers.calendar,

[mailto_list]#收件人,以逗 分隔

mailto_list= ***@163.com

[mailInfo]#邮件服务器参数

mailserver=***

user=***

password=*********

me=guojianbiao@le.com

2.3.2运行脚本

python systemMonitor.py

3.实际代码

分为三个文件,下面将逐个展现。

3.1 systemMonitor.conf

[runTime]#运行时长,以分钟为单位

rumTime=10

[updateTime]#刷新间隔,默认为10秒

updateTime=10

[packageNameList]#过滤进程名,多个进程以逗 分隔

packageNameList=com.android.providers.calendar,

[mailto_list]#收件人,以逗 分隔

mailto_list=***@163.com

[mailInfo]#邮件服务器参数

mailserver=***

user=***

password=***

me=***@163.com

3.2 systemMonitor.py

#encoding:utf-8

import os

import sys

import datetime

from threading import Thread

import threading

import subprocess

import ConfigParser

from analysisInfo import *

from pychartdir import *

import smtplib

from email.mime.image import MIMEImage

from email.MIMEText import MIMEText

from email.MIMEMultipart import MIMEMultipart

import time

def getTime():

now = datetime.datetime.now()

return now.strftime(“%Y-%m-%d %H:%M:%S”)

def run_cmd(cmd):

process = subprocess.Popen(cmd , shell = True, stdout=subprocess.PIPE)

return process.stdout.read().strip()

def timestamp_datetime(value):

value = time.localtime(value)

dt = time.strftime(‘%Y-%m-%d %H:%M:%S’, value)

return dt

#获取设备型

def get_model():

return run_cmd(‘adb shell getprop ro.product.model’)

#获取Android版本

def get_androidVersion():

return run_cmd(‘adb shell getprop ro.build.version.release’)

#获取CPU型

def get_cpuInfo():

return run_cmd(‘adb shell getprop ro.product.cpu.abi’)

#获取系统编译版本增量

def get_buildVersionIncremental():

return run_cmd(‘adb shell getprop ro.build.version.incremental’)

#获取系统编译时间

def get_buildDate():

return run_cmd(‘adb shell getprop ro.build.date.utc’)

#生成表

#title:标题

#lable:

#ytitle

#data

#chartpath

#title_list

#style

def get_chart(title,label,ytitle,data,chartpath,title_list,style):

color_list = [0x008800,0xff0000,0x8A2BE2,0xA52A2A,0x7FFF00,0xFF7F50,0xDC143C,0x8B008B,0xFF1493,0xFFD700]

c = XYChart(1400, 600, 0xCCEEFF, 0x000000, 1)

c.addTitle(title, “simsun.ttc”, 18).setBackground(0xCCEEFF, 0x000000, glassEffect())

c.setPlotArea(50, 55, 1300, 500)

c.addLegend(50, 28, 0, “arialbd.ttf”, 10).setBackground(Transparent)

c.xAxis().setLabels(label)

c.yAxis().setTickDensity(30)

c.xAxis().setLabelStyle(“arialbd.ttf”, 8)

c.yAxis().setLabelStyle(“arialbd.ttf”, 8)

c.xAxis().setWidth(2)

c.yAxis().setWidth(2)

c.yAxis().setTitle(ytitle, “arialbd.ttf”, 10)

layer = c.addLineLayer2()

layer.setLineWidth(3)

#c.addText(1280, 70,”最大值:111n最小值:111″).setAlignment(BottomRight)

for i in range(0,len(data)):

layer.addDataSet(data[i], color_list[i],title_list[i]).setDataSymbol(CircleShape, 1)

#layer.setDataLabelStyle(“”,10)

#layer.setDataLabelFormat(None)

c.setDefaultFonts(“simsun.ttc”)

c.makeChart(chartpath)

#发送邮件

def send_mail_image(mailserver,user,password,me,mailto_list,title,bodyinfo,system_file_list,system_maxminavg,appInfo_list,app_file_list):

msg = MIMEMultipart(‘related’)

msg[‘Subject’]=title

msg[‘From’]=me

msg[‘To’]=’;’.join(mailto_list)

content = “”

content+=”<html>”

content+=”<head>”

content+=”<meta http-equiv=Content-Type content=”text/html;charset=gb2312″”>””

content+=””<style type=””text/css””>””

content+=””body {font-family:”””” + “”微软雅黑””.decode(‘UTF-8’).encode(‘GBK’) + “”””

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年8月26日
下一篇 2022年8月26日

相关推荐