APP性能测试——热启动耗时测试

2023-03-07,,

启动耗时

即当启动应用时,后台已有该应用的进程(我们模拟按下HOME键),打开软件,直到进入到首页activity页面,并计算耗时。

示例代码:

import os
import time def hotTime(device, pg_name, pga_name):
"""
:param device:
:param pg_name:
:param pga_name:
:return:
"""
# kill 进程
wait_time = 5
os.popen("adb -s {} shell am force-stop {}".format(device, pg_name))
time.sleep(wait_time)
os.popen("adb -s {} shell am start -W {}".format(device, pga_name))
time.sleep(wait_time)
try:
with open('F:/report/hotTime.txt', 'wb+') as f:
hot_time = []
for i in range(30):
keyEvent(3) # adb模拟按下Home键
time.sleep(wait_time)
start = os.popen("adb -s {} shell am start -W {}".format(device, pga_name)) # 启动activity
time.sleep(wait_time)
data = start.readlines()
for line in data:
if "TotalTime:" in line:
line = line.strip()
print("第{}次TotalTime为:{}ms".format(i+1,line[11:]))
if int(line[11:]) == 0:
break
hot_time.append(int(line[11:]))
f.write(('第{}次\n'.format(i + 1)).encode())
line += '\n'
f.write(line.encode())
return hot_time
except os.error as error:
print(error) # 获得设备ID
def getDev():
"""
:return: 获得设备id
"""
try:
devices_info = os.popen('adb devices')
data = devices_info.readlines()
if len(data) != 0 and data[1].find('device'):
s = data[1][:-8]
return s
return 0
except Exception as error:
print(error) # 模拟发送keyEvent
def keyEvent(keycode):
"""
:param keycode: 键值
"""
# KEYCODE_HOME = 3
# KEYCODE_BACK = 4
cmd = 'adb shell input keyevent {}'.format(keycode)
os.popen(cmd)
time.sleep(1) def main_hot():
"""
:return:
"""
s = getDev()
#pn = 'com.imbb.banban.android'
gh_packagename='sg.partying.ghost.android'
#an = 'com.imbb.banban.android/.MainActivity' # aapt dump badging + apk
gh_activityname='sg.partying.ghost.android/com.bb.infinity.InfiActivity'
print(s, gh_packagename, gh_activityname,'\n热启动测试开始...')
hot_list = hotTime(s, gh_packagename, gh_activityname)
#print(hot_list)
print('热启动测试结束...')
stime=sum(hot_list)
#print(stime)
avgtime=stime/len(hot_list)
print(avgtime)
with open('F:/report/hotTime.txt', 'ab+')as f:
f.write(('\n设备{}平均热启动耗时:{}ms'.format(s,avgtime)).encode()) #print(sum(hot_list)/len(hot_list)) if __name__ == '__main__':
main_hot()

APP性能测试——热启动耗时测试的相关教程结束。

《APP性能测试——热启动耗时测试.doc》

下载本文的Word格式文档,以方便收藏与打印。