不可轻言放弃,否则对不起自己!

app性能数据收集

上一篇 / 下一篇  2015-07-19 19:10:18 / 个人分类:python

功能描述

集成monkey功能,以及在手工测试app端功能时,自动收集相关数据,并生成HTML报告。

 

实现方法

  1、采用python脚本来驱动测试;

  2、调用android SDK adbmonkey命令,进行数据采集和稳定性测试;

  3、采集数据写入文件和数据库

  4、附带android其他小脚本,便于测试过程中使用;

  5、根据实际情况修改配置文件后进行数据采集,生成静态HTML报告,数据一目了然

 

目录结构

代码目录结构:


 

 

性能数据收集使用指南

测试准备

1、配置文件

只需保证配置文件内容正确即可。

配置文件存放在src/config/目录下,名称是:config.ini。配置文件各参数介绍,参考如下:

[PERFORMANCE]

package_name = com.xxxxx.xxxx

activity = com.xxxxx.xxx.xxxxxPager

start_no = 10

interval = 5

capture_num = 100

isROOT = True


[MONKEY]

#种子数

throttle = 500

#事件数

event_number = 10000

#事件延迟时间

event_delay_time = 600

#事件分布比,填写正整数,且总和不能超过100

pct_touch = 30

pct_motion = 30

pct_nav = 0

pct_trackball = 0

pct_majornav = 10

pct_syskeys = 10

pct_appswitch = 10

pct_anyevent = 10


[CAPTURE_FILE]

#性能数据采集后记录到文件

cpu_info_file = cpu_info.txt

cpu_load_file = cpu_load.txt

mem_info_file = mem_info.txt

flow_info_file = flow_info.txt


 

2SQLIte数据库表设计说明

表名字段字段说明
cpu_data  
 capture_time采集时间点
 occupancyRate总的cpu消耗百分比
 useruser百分比
 kernelkernel百分比
  
cpu_load  
 capture_time采集时间点
 lavg_11分钟平均负载
 lavg_55分钟平均负载
 lavg_1515分钟平均负载
 nr_running在采样时刻,运行队列的任务的数
 nr_threads在采样时刻,系统中活跃的任务的个数(不包括运行已经结束的任务)
 last_pid最大的pid值,包括轻量级进程,即线程
  
flow_data  
 capture_time采集时间点
 downloadwifi下载流量
 uploadwifi上传流量
 down_flow_diff本次download-上一次download,差值为两个采集时间点下载流量的实际消耗
 up_flow_diff本次upload-上一次upload,差值为两个采集时间点上传流量的实际消耗
  
mem_data  
 capture_time采集时间点
 mem_percent内存实际消耗百分比(PSS/MemoryTotal)


3、创建表SQL语句

表名SQL语句
cpu_dataCREATE TABLE [cpu_data] (
  [capture_time] DATETIME NOT NULL,
  [occupancyRate] CHAR NOT NULL,
  [user] CHAR NOT NULL,
  [kernel] CHAR NOT NULL);
  
cpu_loadCREATE TABLE [cpu_load] (
  [capture_time] DATETIME NOT NULL,
  [lavg_1] CHAR NOT NULL,
  [lavg_5] CHAR NOT NULL,
  [lavg_15] CHAR NOT NULL,
  [nr_running] INT,
  [nr_threads] INT,
  [last_pid] CHAR);
  
flow_dataCREATE TABLE [flow_data] (
  [capture_time] DATETIME NOT NULL,
  [download] CHAR NOT NULL,
  [upload] CHAR NOT NULL,
  [down_flow_diff] CHAR,
  [up_flow_diff] CHAR);
  
mem_dataCREATE TABLE [mem_data] (
  [capture_time] DATETIME NOT NULL,
  [mem_percent] CHAR NOT NULL);

 

 

4、涉及的第三方模块

模块名称

安装命令

模块说明

progressbar

pip install progressbar

进度条

configobj

pip install configobj

读取配置文件

matplotlib

pip install matplotlib

绘图使用

dateuti

pip install python-dateutil

绘图使用

numpy

pip install numpy

绘图使用

 

 

 

 

 

性能数据收集代码执行

   执行src目录下run_performance.py,即可进行性能数据的收集工作,在数据收集期间,请手工进行app端的功能测试,这样的数据采集才具有意义。

 

Monkey稳定性测试

src目录下,执行run_monkey.py,可调用monkey命令进行稳定性测试,产生的日志信息记录在report目录下。

 

说明:

   可在进行monkey稳定性过程中,进行性能数据收集操作,这样采集的数据为monkey稳定性测试期间被测app的性能数据。

 

 

测试报告查看

测试报告在report目录下Performance_Results.html文件,部分截图详见附件



TAG:

引用 删除 foot112233   /   2017-12-12 17:16:44
这么牛么,一会儿试试
引用 删除 foot112233   /   2017-12-12 17:16:23
5
 

评分:0

我来说两句

Open Toolbar