APP性能测试——安装耗时测试
安装耗时:
这里我们用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性能测试——安装耗时测试的更多相关文章
- 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). ...
- 【转】Emmagee app性能测试工具使用教程
简介 Emmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具,主要用于监控单个App的CPU,内存,流量,启动耗时,电量,电流等性能状态的变化,且用户可自定义配置监控 ...
- Emmagee app性能测试工具使用教程
Emmagee app性能测试工具使用教程 by:授客 QQ:1033553122 简介 Emmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具,主要用于监控单个Ap ...
- APP性能测试中的几个重要概念
转载一篇文章,关于app性能测试的几个概念,对于想要接触app测试的朋友或许有些帮助. 我们在使用各种 App 的时候基本会关注到:这款软件挺耗流量的?运行起来设备掉电有点快嘛?切换页面的时候还会有卡 ...
- App性能测试揭秘(Android篇)
阿里云 云原生应用研发平台EMAS 李嘉华(千瞬) 简介: 性能测试在移动测试领域一直是一个大难题,它最直观的表现是用户在前台使用 App 时的主观体验,然而决定体验优劣的背后,涉及到了许许多多的技术 ...
- 当云遇见APP性能测试会怎样?
一个测试人员应该明白,无论是在云内部或是外部,对一个应用程序而言,需要进行测试的地方都是一样的.最终用户只关注的是一个无缺陷的高性能的应用程序,而不关心应用程序位于哪里.在大多数的云服务协议里,都会提 ...
- Android app性能测试小结(7个性能指标)
1.性能测试的几个指标: 2.性能测试环境准备: 3.启动时间 3.1,监控值的获取方法 启动分为冷启动和热启动,冷启动:应用程序首次启动,进程首次创建并加载资源的过程:热启动:应用程序启 ...
- Android APP性能测试笔记(一)
Android APP性能测试笔记(一) (1)工具使用 Android Studio GT, root的真机 (2)记录apk大小(对比竞品) 使用Android Studio导入需要测试 ...
随机推荐
- 关于idea2021.1版本的左边不显示bpmn Editor的问题
我这里是自定义主题风格出现的问题 idea左上角File→选择setting→找到Color Scheme菜单,将主题颜色改为IntelliJ Light.在重启idea就好
- 常见的Native Crash类型,bug解决记录
APP调用Native的jar包接口出现闪退,仅仅settings应用,其他应用调用该包接口正常使用. 猜测1. jar包为64为,settings程序为32位,版本兼容性问题.(经验证,原因确实如此 ...
- ctfshow web入门 命令执行 37-39
37-39 基于 GET 传参的 include() 38.39 是 37 的变种 分析 伪协议常用于文件包含漏洞中 文件包含函数有:include.include_once.require.requ ...
- linux 上使用pm2启动nodejs服务
1.安装pm2: npm install -g pm2 2.在启动文件夹内新建文件processes.json: { "apps": [ { "n ...
- 403 forbidden 与 413Too Large
http://www.ccschy.com/shuma/12846.html https://blog.51cto.com/u_15127556/4543159 查的有关资料如下,最后的原因是服务器网 ...
- 雪花算法生成ID重复问题
转载自: https://www.jianshu.com/p/71286e89e0c5
- 使用shell定时执行脚本
yum install crontabs //安装 #检查安装crontab -V #服务操作service crond start //启动服务service crond stop //关闭服务se ...
- pip3 install
python3 -m venv tutorial-env source tutorial-env/bin/activatepip3 install *deactivate
- c++游戏编程(1)开发环境与工具函数
c++游戏编程(1)开发环境与工具函数 文章目录 c++游戏编程(1)开发环境与工具函数 前言 1.开发工具 2.工具函数 2.1 windows.h 2.1.1 _mkdir() 2.1.2 _rm ...
- Entity Framework生成的SQL语句
var Query= database.Table1.Find(cond, f => f.Table2, f => f.Table3, f => f.Table4, f => ...