安装耗时:

这里我们用pm命令安装app,来截取安装时间(不要使用adb install安装,因为那样多一个push app的耗时)。

示例代码:

import os,time,datetime

def setuptime(package_name):
'''单次安装耗时'''
os.popen('adb uninstall {}'.format(package_name)) #卸载app
time.sleep(3)
start_time=datetime.datetime.now()
os.popen("adb shell pm install /data/local/tmp/ghost-09081547.apk") #通过pm命令安装apk
end_time=datetime.datetime.now()
setup_time=(end_time-start_time).total_seconds() #计算单次安装耗时
return setup_time def installTime(package_name):
'''测试安装30次平均耗时并写入txt文本'''
try:
with open('F:/report/installtime.txt', 'wb+') as file:
su_time = []
for i in range(30):
setup_time = setuptime(package_name)
if setup_time==0:
continue
else:
su_time.append(setup_time)
print("第{}次安装耗时为: {}s".format(i + 1,setup_time))
file.write(("第{}次安装耗时为: {}s\n".format(i + 1,setup_time)).encode())
return su_time
except os.error as error:
print(error) def getDev():
'''获得设备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_setup(package_name):
'''计算平均耗时并写入txt文本'''
s = getDev()
print('设备:{},APP包名:{}\n安装测试开始...'.format(s,package_name))
time_list = installTime(package_name)
total_time = 0
for i in time_list:
total_time += i
avg_time = total_time / len(time_list)
print('安装平均耗时: {}s'.format(avg_time))
with open('F:/report/installtime.txt', 'ab+')as f:
f.write(('\n设备{}平均安装耗时:{}s'.format(s,avg_time)).encode()) if __name__ == '__main__':
os.popen("adb push F:\ghost\ghost-09081547.apk /data/local/tmp/") #通过adb命令将apk从pc本地拷贝到手机内存中,注意不要存入/sdcard/目录,部分手机限制访问
package_name = 'sg.partying.ghost.android' #app应用包名
main_setup(package_name)

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. 【转】Emmagee app性能测试工具使用教程

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

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

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

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

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

  7. App性能测试揭秘(Android篇)

    阿里云 云原生应用研发平台EMAS 李嘉华(千瞬) 简介: 性能测试在移动测试领域一直是一个大难题,它最直观的表现是用户在前台使用 App 时的主观体验,然而决定体验优劣的背后,涉及到了许许多多的技术 ...

  8. 当云遇见APP性能测试会怎样?

    一个测试人员应该明白,无论是在云内部或是外部,对一个应用程序而言,需要进行测试的地方都是一样的.最终用户只关注的是一个无缺陷的高性能的应用程序,而不关心应用程序位于哪里.在大多数的云服务协议里,都会提 ...

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

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

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

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

随机推荐

  1. 16.java八皇后问题

    问题描述:在 8×8 格的国际象棋上摆放八个皇后,使其不能互相攻击,即: 任意两个皇后都不能处于同一行 .同一列或同一斜线上,问有多少种摆法(92). 思路分析:1) 第一个皇后先放第一行第一列2) ...

  2. Pytorch实战学习(二):用Pytorch实现逻辑回归

    <PyTorch深度学习实践>完结合集_哔哩哔哩_bilibili 用Pytorch实现逻辑回归 Logistic Regression 从线性回归 →​ 逻辑回归 1.分类问题 计算属于 ...

  3. IaaS--云硬盘(何恺铎《深入浅出云计算》笔记整理)

    [概念] 云硬盘,又叫做"云盘"或者"云磁盘",就是云虚拟机上可以挂载和使用的硬盘.这里,它既包含了用于承载操作系统的系统盘,也包括了承载数据的数据盘.云厂商对 ...

  4. ts的接口和泛型的基本语法

    一.接口 1.接口定义 接口是一种规范的定义,它定义行为和规范,在程序设计中接口起到限制和规范的作用. 2.接口的声明与使用 //声明对象类型接口 interface Person {   name: ...

  5. 读后笔记 -- Java核心技术(第11版 卷 II) Chapter3 XML

    3.1 XML Introduction An XML document is made up of elements. An element can have attributes (key/val ...

  6. Scrapy之Request函数回调未执行 Filtered offsite request to 'XXX'

    在爬取免费代理ip室发现,第一页爬取之后后续的多页爬取没有被解析.在查看调试信息时发现显示 Filtered offsite request to 'www.kuaidaili.com',经网上查找先 ...

  7. 生成虚拟mac地址通过dhcp获取ip,耗尽dhco地址池

    平台:kali 软件:dhcpstarv 命令 dhcpstarv  -i 网卡名称 -e 本机IP 查看dhcp服务器已经分发的地址 cat /tmp/dhcp.leases

  8. TDengine上手笔记

    TDengine简介 TDengine 是一款开源.高性能.云原生的时序数据库,且针对物联网.车联网.工业互联网.金融.IT 运维等场景进行了优化.您可以像使用关系型数据库 MySQL 一样来使用它. ...

  9. nginx转发端口路由器再转发

    场景 nginx 转发端口 路由器二次转发了,端口不一样 (shiro 或者其他一些权限控制架构会自动跳转,导致的端口不对.) proxy_set_header Host $host:$proxy_p ...

  10. Oracle View的Force參數有什麼用途?

    1. 當建立View的SQL查詢語句因為各種問題還暫時無法執行時,可以使用Force參數先建立成功2. SQL的問題沒有修正之前,是無法正常使用View的 語法:  CREATE Force VIEW ...