APP性能测试——首次启动耗时测试
2024-09-08 19:23:27
首次启动耗时:
即第一次安装(清除数据也可以),打开软件,直到进入到首页activity页面,并计算耗时。
示例代码:
import os
import time # 测试首次启动时间
# 创建App进程, 加载相关资源, 启动Main Thread, 初始化首屏Activity
def startUpTime(pg_name, pga_name):
"""
:param device: 设备id
:param pg_name: 包名
:param pga_name: activity名称
"""
wait_time = 5
try:
with open('F:/report/firstStartUp.txt', 'wb+') as file:
su_time = []
for i in range(30):
os.popen("adb shell pm clear {}".format(pg_name)) # 清除app缓存
time.sleep(wait_time)
# 启动activity
start = os.popen("adb shell am start -W {}".format(pga_name))
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
su_time.append(int(line[11:]))
file.write(('第{}次\n'.format(i + 1)).encode())
line += '\n'
line = line.encode()
file.write(line)
return su_time
except os.error as error:
print(error) 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][:-7]
return s
return 0
except Exception as error:
print(error) def main_cold():
# 取测试机-s
s = getDev()
pn = 'sg.partying.ghost.android'
an = 'sg.partying.ghost.android/com.bb.infinity.InfiActivity'
print('设备:{},APP包名:{}, activity:{}\n首次启动测试开始...'.format(s,pn, an))
time_list = startUpTime(pn, an)
total_time = 0
for i in time_list:
total_time += i
avg_time = total_time / len(time_list)
print('首次启动平均耗时: {}ms'.format(avg_time))
with open('F:/report/firstStartUp.txt', 'ab+')as f:
f.write(('\n设备{}平均首次启动耗时:{}ms'.format(s,avg_time)).encode()) if __name__ == '__main__':
main_cold()
最新文章
- TopCoder SRM 642 Div.2 1000 --二分+BFS
- JQ 特效下拉列表 写出与css一样的效果
- js按Enter键提交表单
- MVC Html.AntiForgeryToken() 防止CSRF攻击
- MongoDB学习笔记-创建、更新、删除文档
- yield 关键字和迭代器
- TestNG关键字和testNG.xml结构学习
- 转:JS在文本域鼠标指定位置插入文本-柯乐义
- jquery的2.0.3版本源码系列(4):285-348行,extend方法详解
- Java课设-购物车系统
- 【转载】CSRF攻击及其应对之道
- Spring配置集群定时任务
- 限定项目的 Node.js 版本
- PHP多条件分类列表筛选功能开发实例
- python3 shell 中添加清屏
- 【洛谷P1516】青蛙的约会
- Java高级教程
- c# 导出表格
- Python 给实例或者类动态绑定属性和方法
- excel如何快速更改表格边框的颜色