APP性能测试——冷启动耗时测试
冷启动耗时:
即后台没有该应用的进程(我们使用am force-stop命令结束app运行),打开软件,直到进入到首页activity页面,并计算耗时。
示例代码:
import os
import time # 测试冷启动时间
# 创建App进程, 加载相关资源, 启动Main Thread, 初始化首屏Activity
def startUpTime(pg_name, pga_name):
"""
:param device: 设备id
:param pg_name: activity名称
:param pga_name: 包名
"""
wait_time = 5
try:
with open('F:/report/coldStartUp.txt', 'wb+') as file:
su_time = []
for i in range(30):
os.popen("adb shell am force-stop {}".format(pg_name)) # kill 进程
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' # aapt dump badging + apk
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/coldStartUp.txt', 'ab+')as f:
f.write(('\n设备{}平均冷启动耗时:{}ms'.format(s,avg_time)).encode()) if __name__ == '__main__':
main_cold()
APP性能测试——冷启动耗时测试的更多相关文章
- Android APP性能及专项测试
移动测试. Android测试 .APP测试 Android篇 1. 性能测试 Android性能测试分为两类:1.一类为rom版本(系统)的性能测试2.一类为应用app的性能测试 Android的a ...
- Android APP性能及专项测试(个人整理)
移动测试. Android测试 .APP测试 Android篇 1. 性能测试 Android性能测试分为两类:1.一类为rom版本(系统)的性能测试2.一类为应用app的性能测试 Android ...
- APP性能测试工具GT的使用总结:app内存测试
APP性能测试工具GT的使用总结:app内存测试 GT(随身调)是APP的随身调测平台,它是直接运行在手机上的“集成调测环境”(IDTE, Integrated Debug Environment). ...
- Android app性能测试小结(7个性能指标)
1.性能测试的几个指标: 2.性能测试环境准备: 3.启动时间 3.1,监控值的获取方法 启动分为冷启动和热启动,冷启动:应用程序首次启动,进程首次创建并加载资源的过程:热启动:应用程序启 ...
- Android APP性能测试笔记(一)
Android APP性能测试笔记(一) (1)工具使用 Android Studio GT, root的真机 (2)记录apk大小(对比竞品) 使用Android Studio导入需要测试 ...
- 【转】Emmagee app性能测试工具使用教程
简介 Emmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具,主要用于监控单个App的CPU,内存,流量,启动耗时,电量,电流等性能状态的变化,且用户可自定义配置监控 ...
- app性能测试指标
性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样.中国软件评测中心将性能测试概括为三个方面:应用在客户端性能的测试.应用在网络上性能的测试和应用在服务器端性能的测试.通常情况下,三方 ...
- Emmagee app性能测试工具使用教程
Emmagee app性能测试工具使用教程 by:授客 QQ:1033553122 简介 Emmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具,主要用于监控单个Ap ...
- APP性能测试中的几个重要概念
转载一篇文章,关于app性能测试的几个概念,对于想要接触app测试的朋友或许有些帮助. 我们在使用各种 App 的时候基本会关注到:这款软件挺耗流量的?运行起来设备掉电有点快嘛?切换页面的时候还会有卡 ...
- 常见的APP性能测试指标
性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样.中国软件评测中心将性能测试概括为三个方面:应用在客户端性能的测试.应用在网络上性能的测试和应用在服务器端性能的测试.通常情况下,三方 ...
随机推荐
- (二)用go实现二叉查找树
本篇,我们用go简单的实现二叉查找树. 1.节点定义 type BSNode struct{ data int left, right, parent *BSNode } 2.前序遍历 func (p ...
- windows安装和重装系统后无法识别U盘
安装系统的方法: 1. 方案一,用大白菜制写入pe系统,但必须先准备Windows安装包 方案二,把ISO格式的系统安装包直接写入到u盘,写入U盘的方法请百度 2.开机看到电脑的logo后,按f2(不 ...
- 《Makefile中传递宏定义到源文件》
Makefile中定义的变量无法直接传递到头文件中,因为头文件是在预编译阶段处理的,而Makefile中的变量是在编译阶段处理的. 如果需要在头文件中使用Makefile中定义的变量,可以在头文件中使 ...
- P5736 质数筛
原题连接 一看到这个熟悉的输入,我们就立马反应过来要请出一维数组来记录一下输入的数据.现在数据的存储解决了,紧接着来剖析一下步骤: 输入数据 一个一个的判断是否为质数 筛去合数 输出质数 理清了思路后 ...
- MySQL 学习(四)并集查询
联合查询,它是用 union 关键字把多条 select 语句的查询结果合并为一个结果集.纵向合并的前提是被合并的结果集的字段数量.顺序和数据类型必须完全一致.字段名不一样的情况下,会将第一个结果集的 ...
- 日志服务器 nagios log server
官网 https://www.nagios.com/products/ 可官网下载手动安装也可命令安装 命令安装 cd /tmp wget https://assets.nagios.com/down ...
- MinGW、Linux GNU、MSVC编译和链接动态库的分析
这几天研究CMake跨平台项目嘛,用了以下几种编译器: VS2019(MSVC) Linux GNU MinGW 编译之后发现链接动态库发现以下问题: VS2019中如果直接链接CMakeLists. ...
- scrapy框架学习(六)日志设置和数据存储
日志设置 CRITICAL : 严重错误 ERROR : 一般错误 WARNING : 警告 INFO : 一般的信息 DEBUG : 调试信息 默认的显示级别是DEBUG # 设置错误显示级别 LO ...
- 新年快乐!体验Windows7黄金版,祝你2023财源广进!
新年快乐!体验Windows7黄金版,祝你2023财源广进! 首先,开机画面表示出它的土豪,并说明,它并不来自Microsoft. 然后: 它是2016年出现的. 改成64位的. 然后许可: 自定义: ...
- wait notify 实例,生产消费者模式(转)
今天发现了一段很标准的多线程代码,记得以前也写过,但是没有这个这么小巧和标准. import java.util.LinkedList; import java.util.Queue; import ...