热启动耗时:

即当启动应用时,后台已有该应用的进程(我们模拟按下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性能测试——热启动耗时测试的更多相关文章

  1. Android APP性能及专项测试

    移动测试. Android测试 .APP测试 Android篇 1. 性能测试 Android性能测试分为两类:1.一类为rom版本(系统)的性能测试2.一类为应用app的性能测试 Android的a ...

  2. Android APP性能及专项测试(个人整理)

    移动测试. Android测试 .APP测试   Android篇 1. 性能测试 Android性能测试分为两类:1.一类为rom版本(系统)的性能测试2.一类为应用app的性能测试 Android ...

  3. APP性能测试工具GT的使用总结:app内存测试

    APP性能测试工具GT的使用总结:app内存测试 GT(随身调)是APP的随身调测平台,它是直接运行在手机上的“集成调测环境”(IDTE, Integrated Debug Environment). ...

  4. Android app性能测试小结(7个性能指标)

    1.性能测试的几个指标:       2.性能测试环境准备: 3.启动时间 3.1,监控值的获取方法 启动分为冷启动和热启动,冷启动:应用程序首次启动,进程首次创建并加载资源的过程:热启动:应用程序启 ...

  5. Android APP性能测试笔记(一)

    Android APP性能测试笔记(一) (1)工具使用   Android Studio  GT, root的真机 (2)记录apk大小(对比竞品)   使用Android Studio导入需要测试 ...

  6. 1、获取APP 冷/热启动时间

    最近在研究Android APP性能测试.所以发现一些有趣的东西,在这里进行分享.我们先讲第一个内容,如何获取APP冷/热启动时间?为什么要做这个测试,道理其实很简单,如果启动APP特别耗时的话,用户 ...

  7. 【转】Emmagee app性能测试工具使用教程

    简介 Emmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具,主要用于监控单个App的CPU,内存,流量,启动耗时,电量,电流等性能状态的变化,且用户可自定义配置监控 ...

  8. app性能测试指标

    性能测试在软件的质量保证中起着重要的作用,它包括的测试内容丰富多样.中国软件评测中心将性能测试概括为三个方面:应用在客户端性能的测试.应用在网络上性能的测试和应用在服务器端性能的测试.通常情况下,三方 ...

  9. Emmagee app性能测试工具使用教程

    Emmagee app性能测试工具使用教程 by:授客 QQ:1033553122 简介 Emmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具,主要用于监控单个Ap ...

  10. APP性能测试中的几个重要概念

    转载一篇文章,关于app性能测试的几个概念,对于想要接触app测试的朋友或许有些帮助. 我们在使用各种 App 的时候基本会关注到:这款软件挺耗流量的?运行起来设备掉电有点快嘛?切换页面的时候还会有卡 ...

随机推荐

  1. 在C#中Release与Debug的区别小案例

    我们都听说过C#写的代码 Release通常会比Debug性能要好一点跑得快一些. 先普及一些相关基础知识: (1)在CLR中将对sbyte.byte.short.ushort.int.uint.ch ...

  2. (0709) Linux-命令(scp,tar) zip

    (1) scp .bashrc root@192.168.1.6:vnc://cfy-hp-notebook-pc.local (2) tar -czvf a.tar.gz b            ...

  3. websphere+IHS+plugin集群搭建

    配置:wa1+was2 was1:Dmgr app01 oracle  ihs was2:Dmgr app02 原理:通过Dmgr管理下面两个agent,再通过agent去间接控制运行在节点上的ser ...

  4. yolov5的训练中断恢复

    Yolov5的恢复训练 方法一:使用自带参数-resume 1. train.py文件中找到函数parse_opt,修改参数–resume的默认参数为Ture 2. runs/train/exp*/w ...

  5. Java中如何判断两个对象是否相等

    参考:https://blog.csdn.net/u013063153/article/details/78808923 下面是自己开发过程中的实现 package com.***.***.entit ...

  6. 在线访问GET/POST及格式化json工具

    http://coolaf.com/在线访问及格式化json工具谷歌浏览器json插件不是很好实现.安装,替代方案

  7. flannel提供的3种后端实现

    UDP(flanneld封装和解封装UDP) 实现原理 缺点(性能最差) UDP模式,封装和解封装的对象是三层IP包,提供三层的Overlay网络,是Flannel最早支持的一种方式,也是性能最差的一 ...

  8. 从零搭建hadoop集群之安装虚拟机

    1.  打开 VMware 2. 点击编辑 ->  虚拟网络编辑器 点击VMnet8 选中NAT模式(于虚拟机共享主机的ip地址) 设置子网IP 点击NAT设置 3.   设置网关 :和子网IP ...

  9. Flutter 3.+更新记录

    Flutter3.3稳定版出来了,于是决定把之前Flutter工程的代码更新下其中里面有些涉及到组件的弃用 在此记录 ElevatedButton 代替了 RaisedButton 为带阴影的悬浮按钮 ...

  10. Python游戏开发常用库

    PyWeek:编程挑战,主要是Python游戏开发方面的 PyGame:PyGame在优秀的SDL库之上添加了更多功能.允许使用python语言创建功能齐全的游戏和多媒体程序.具有高度的可移植性,几乎 ...