Skip to content

Commit 7f34e81

Browse files
author
Monkey
committed
重构性能测试代码,并增加了monkey的通用脚本
1 parent 2a0fa32 commit 7f34e81

12 files changed

Lines changed: 129699 additions & 0 deletions

‎V1.0/App_cpu_13_36_54.txt‎

Lines changed: 126008 additions & 0 deletions
Large diffs are not rendered by default.

‎V1.0/Command.py‎

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# -*- coding: utf-8 -*-
2+
3+
import os, re,sys
4+
import subprocess
5+
import time, os, sched,shlex,threading
6+
from reportlab.graphics.shapes import *
7+
from reportlab.graphics.charts.lineplots import LinePlot
8+
from reportlab.graphics.charts.textlabels import Label
9+
from reportlab.graphics import renderPDF
10+
11+
def now_time():
12+
localtime = time.asctime( time.localtime(time.time()) )
13+
time_array = localtime.split(" ")[4].split(":")
14+
return time_array[0]+'_'+time_array[1]+"_"+time_array[2]
15+
16+
def WriteLog(waittime,package_name):
17+
try:
18+
subprocess.Popen("adb shell top >App_cpu_%s.txt"%now_time(),shell=True)
19+
subprocess.Popen("adb logcat | grep ActivityManager >Start_Time_%s.txt"%now_time(),shell=True)
20+
subprocess.Popen("adb logcat | grep GC >GC_Data_%s.txt"%now_time(),shell=True)
21+
subprocess.Popen("adb shell dumpsys meminfo %s >Meminfo_%s.txt"%(package_name,now_time()),shell=True)
22+
subprocess.Popen("adb logcat -v time *:E | grep com.alipay.m.portaltrafficeTest >NetWorkFile_%s.txt"%now_time(),shell=True)
23+
subprocess.Popen("adb logcat -v time *:E | grep battery >batteryFile_%s.txt"%now_time(),shell=True)
24+
print '日志正在记录中。。。请稍后'
25+
print '各个界面启动时间正在记录。。。请稍后'
26+
print '应用每个功能cpu占用率正在记录。。。请稍后'
27+
print '应用GC回收和使用时间正在记录。。。请稍后'
28+
print '应用内存正在记录。。。请稍后'
29+
print '应用网络数据正在记录。。。请稍后'
30+
print '应用电量数据正在记录。。。请稍后'
31+
time.sleep(float(waittime)*1)
32+
except KeyboardInterrupt:
33+
print '报告正在生成'
34+
os.system('adb kill-server')
35+
36+
37+
if __name__ == '__main__':
38+
WriteLog(sys.argv[1],sys.argv[2])

‎V1.0/GC_file.txt‎

Lines changed: 2511 additions & 0 deletions
Large diffs are not rendered by default.

‎V1.0/Listener.apk‎

782 KB
Binary file not shown.

‎V1.0/Log_Analysis.py‎

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
# -*- coding: utf-8 -*-
2+
3+
import os, re,sys
4+
import subprocess
5+
import time, os, sched,shlex,threading
6+
from reportlab.graphics.shapes import *
7+
from reportlab.graphics.charts.lineplots import LinePlot
8+
from reportlab.graphics.charts.textlabels import Label
9+
from reportlab.graphics import renderPDF
10+
11+
cpu_path = "/Users/monkey/Pictures/performance_test_script/App_cpu_13_36_54.txt"
12+
gc_path = '/Users/monkey/Pictures/performance_test_script/GC_file.txt'
13+
package_name = 'com.alipay.m.portal'
14+
15+
16+
17+
def read_log(log_path):
18+
LogList = []
19+
f = open(log_path)
20+
s = f.readlines()
21+
f.close()
22+
for line in s:
23+
LogList.append(line)
24+
return LogList
25+
26+
def cpu_analysis():
27+
_data_list =[]
28+
_cpudata_list = []
29+
cpu_list = read_log(cpu_path)
30+
for i in xrange(len(cpu_list)):
31+
_data_list.append(cpu_list[i].split(" "))
32+
for i in xrange(len(_data_list)):
33+
for j in xrange(len(_data_list[i])):
34+
_noblank_list = [elem for elem in _data_list[i] if elem != ""]
35+
for k in xrange(len(_noblank_list)):
36+
if package_name in _noblank_list[k]:
37+
_cpudata_list.append(_noblank_list[2])
38+
print _cpudata_list
39+
40+
41+
def Memory_Vss_analysis():
42+
_data_list =[]
43+
_Vssdata_list = []
44+
cpu_list = read_log(cpu_path)
45+
for i in xrange(len(cpu_list)):
46+
_data_list.append(cpu_list[i].split(" "))
47+
for i in xrange(len(_data_list)):
48+
for j in xrange(len(_data_list[i])):
49+
_noblank_list = [elem for elem in _data_list[i] if elem != ""]
50+
for k in xrange(len(_noblank_list)):
51+
if package_name in _noblank_list[k]:
52+
_Vssdata_list.append(_noblank_list[5])
53+
print _Vssdata_list
54+
55+
def Memory_Vss_analysis():
56+
_data_list =[]
57+
_Vssdata_list = []
58+
memory_list = read_log(cpu_path)
59+
for i in xrange(len(memory_list)):
60+
_data_list.append(memory_list[i].split(" "))
61+
for i in xrange(len(_data_list)):
62+
for j in xrange(len(_data_list[i])):
63+
_noblank_list = [elem for elem in _data_list[i] if elem != ""]
64+
for k in xrange(len(_noblank_list)):
65+
if package_name in _noblank_list[k]:
66+
_Vssdata_list.append(_noblank_list[5])
67+
print _Vssdata_list
68+
69+
def Memory_Rss_analysis():
70+
_data_list =[]
71+
_Rssdata_list = []
72+
memory_list = read_log(cpu_path)
73+
for i in xrange(len(memory_list)):
74+
_data_list.append(memory_list[i].split(" "))
75+
for i in xrange(len(_data_list)):
76+
for j in xrange(len(_data_list[i])):
77+
_noblank_list = [elem for elem in _data_list[i] if elem != ""]
78+
for k in xrange(len(_noblank_list)):
79+
if package_name in _noblank_list[k]:
80+
_Rssdata_list.append(_noblank_list[5])
81+
print _Rssdata_list
82+
83+
def Gc_analysis():
84+
_gc_free_list =[]
85+
_gc_used_per = []
86+
_gc_total_time = []
87+
gc_list = read_log(gc_path)
88+
for i in xrange(len(gc_list)):
89+
if 'GC_CONCURRENT' in gc_list[i]:
90+
freed_index = gc_list[i].split(' ')[5]
91+
_gc_free_list.append(gc_list[i].split(' ')[3])
92+
_gc_used_per.append(gc_list[i].split(' ')[4])
93+
_gc_total_time.append(gc_list[i].split(' ')[10][-4:])
94+
# print _gc_total_time
95+
96+
97+
98+
99+
100+
101+
102+
if __name__=="__main__":
103+
cpu_analysis()

‎V1.0/Meminfo_13_36_54.txt‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Applications Memory Usage (kB):
2+
Uptime: 31430314 Realtime: 87192126
3+
4+
** MEMINFO in pid 11798 [com.alipay.m.portal] **
5+
Got RemoteException!

‎V1.0/Monkey_Script.py‎

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# -*- coding: utf-8 -*-
2+
3+
import os, re,sys
4+
import subprocess
5+
import time, os, sched,shlex,threading
6+
from reportlab.graphics.shapes import *
7+
from reportlab.graphics.charts.lineplots import LinePlot
8+
from reportlab.graphics.charts.textlabels import Label
9+
from reportlab.graphics import renderPDF
10+
11+
12+
def now_time():
13+
localtime = time.asctime( time.localtime(time.time()) )
14+
time_array = localtime.split(" ")[4].split(":")
15+
return time_array[0]+'_'+time_array[1]+"_"+time_array[2]
16+
17+
def run_monkey(param,package_name,count,waittime):
18+
try:
19+
if param == 'Normal':
20+
subprocess.Popen("adb shell monkey -p %s --pct-motion 20 --pct-trackball 0 --pct-touch 40 --pct-nav 10 --ignore-crashes --ignore-timeouts --throttle 300 -v -v -v %d >MonkeyTest_Report_%s.txt"%(package_name,count,now_time()),shell=True)
21+
if param == 'alltouch':
22+
subprocess.Popen("adb shell monkey -p %s --pct-touch 100 --ignore-crashes --ignore-timeouts --throttle 300 -v -v -v %d >MonkeyTest_Report_%s.txt"%(package_name,count,now_time()),shell=True)
23+
if param == 'other':
24+
subprocess.Popen("adb shell monkey -p %s --pct-majornav 30 --pct-syskeys 30 --pct-anyevent 30 --ignore-crashes --ignore-timeouts --throttle 300 -v -v -v %d >MonkeyTest_Report_%s.txt"%(package_name,count,now_time()),shell=True)
25+
print 'Monkey日志正在记录中。。。请稍后'
26+
time.sleep(float(waittime)*1)
27+
except KeyboardInterrupt:
28+
print '报告正在生成'
29+
os.system('adb kill-server')
30+
os.system('adb devices')
31+
32+
33+
if __name__ == '__main__':
34+
run_monkey(%s,%s,%d,%d)%(sys.argv[1],sys.argv[2],argv[3],argv[4])

0 commit comments

Comments
 (0)