不可轻言放弃,否则对不起自己!
app性能数据收集
上一篇 /
下一篇 2015-07-19 19:10:18
/ 个人分类:python
集成monkey功能,以及在手工测试app端功能时,自动收集相关数据,并生成HTML报告。
1、采用python脚本来驱动测试;
2、调用android
SDK adb与monkey命令,进行数据采集和稳定性测试;
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
2、SQLIte数据库表设计说明
表名 | 字段 | 字段说明 |
cpu_data | | |
| capture_time | 采集时间点 |
| occupancyRate | 总的cpu消耗百分比 |
| user | user百分比 |
| kernel | kernel百分比 |
| | |
cpu_load | | |
| capture_time | 采集时间点 |
| lavg_1 | 1分钟平均负载 |
| lavg_5 | 5分钟平均负载 |
| lavg_15 | 15分钟平均负载 |
| nr_running | 在采样时刻,运行队列的任务的数 |
| nr_threads | 在采样时刻,系统中活跃的任务的个数(不包括运行已经结束的任务) |
| last_pid | 最大的pid值,包括轻量级进程,即线程 |
| | |
flow_data | | |
| capture_time | 采集时间点 |
| download | wifi下载流量 |
| upload | wifi上传流量 |
| down_flow_diff | 本次download-上一次download,差值为两个采集时间点下载流量的实际消耗 |
| up_flow_diff | 本次upload-上一次upload,差值为两个采集时间点上传流量的实际消耗 |
| | |
mem_data | | |
| capture_time | 采集时间点 |
| mem_percent | 内存实际消耗百分比(PSS/MemoryTotal) |
表名 | SQL语句 |
cpu_data | CREATE
TABLE [cpu_data] ( [capture_time] DATETIME NOT NULL, [occupancyRate] CHAR NOT NULL, [user] CHAR NOT NULL, [kernel] CHAR NOT NULL); |
| |
cpu_load | CREATE
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_data | CREATE
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_data | CREATE
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端的功能测试,这样的数据采集才具有意义。
src目录下,执行run_monkey.py,可调用monkey命令进行稳定性测试,产生的日志信息记录在report目录下。
说明:
可在进行monkey稳定性过程中,进行性能数据收集操作,这样采集的数据为monkey稳定性测试期间被测app的性能数据。
测试报告在report目录下Performance_Results.html文件,部分截图详见附件
收藏
举报
TAG: