热启动耗时:

即当启动应用时,后台已有该应用的进程(我们模拟按下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. Python 使用mysql.connector、pymysql和 MYSQLdb(MysqlClient)操作MySQL数据库

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一.本文主要介绍安装mysql.connector,. ...

  2. 【PS】PS如何扩展画布?

    [PS]PS如何扩展画布? 选择裁剪,拉伸图片 选择上方工具栏的勾 即可扩展图片

  3. go-使用 vscore 调试 go 语言

    { // 使用 IntelliSense 了解相关属性. // 悬停以查看现有属性的描述. // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linki ...

  4. 正确处理iOS从下方滑出滚动视图

    本文提供 Demo下载 在iOS 11开始,从最早的地图应用到最近的捷径,陆续有系统应用使用从下方滑出列表的形式,这种系统提供的圆角风格视图用手势划出和隐藏时非常自然流畅.国内的一些应用也跟进了这种交 ...

  5. C#消息泵探索(二)

    ​ 引言: 上篇文章里简单的解释了C#的消息泵原理,这里我们以winform为例详细地了解一下实现代码. 底层实现 [DllImport(ExternDll.User32, ExactSpelling ...

  6. jenkins 2.282+Publish over ssh 1.22版本发布日志不能实时显示

    问题解决了.作个记录,最新的 [Publish Over SSH]插件1.22版本,jenkins 282版本.1. ssh server 的Verbose output in console要开启2 ...

  7. Unity 动态加载图片出现红色问号

    因为图片必须是RGB格式的才可以 ,Cao!!!

  8. 华为交换机,改vlan的方法

    telnet 登录1.1.1.111, 如果登录再到其他交换机,需要在用户状态,telnet其他的ip.不能在系统用户状态下跳转登录. sys改为系统用户  状态符由尖括号,改为方括号 display ...

  9. WPF窗体图标设置

    WPF程序在编写结束后,界面没有图标,影响美观性.今天在添加图标的时候,一直报错,然后通过查找资料,将这个问题解决,现在将主要步骤记录如下; 准备好图标文件,注意文件格式应该为ico格式文件.有一个在 ...

  10. Xilinx-英文缩写

    BEL: Basic Element of Logic, BEL是最底层的基本元素,也可以叫atomic unit(原子单位),BEL是FPGA中最小.不可分割的组件. ACP:Accelerator ...