adb测试内存

# coding:utf-8
import subprocess
import time
import datetime

# 每隔一段时间获取指定app的meninfo
'''
adb shell dumpsys meminfo | find "com.android.settings"
'''

# 设置结果保存路径
csv_path = 'd:/autoTest/meminfo.csv'
# 需要测试的包
packageName = 'com.tcl.eshow'
# 测试次数
times = 100000000
# 测试时间间隔,单位秒
interval = 1
# 执行的命令
cmd = 'adb shell dumpsys meminfo |find "' + packageName + '"'
for i in range(times):
	proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
	# 以换行分割成list
	result = proc.communicate()[0].split('\n')
	# print(result)
	# 统计所有进程内存大小,格式[进程1的内存,进程2的内存,进程3的内存,......]
	sizes = []
	# 统计单个进程占用内存大小
	size = ''
	# 统计某个应用实际内存大小(一个应用包含多一个或者一个以上进程的总和)
	memsize = 0
	# 去掉重复的内容
	result_copy = []
	# 去掉重复的内容
	for mem in result:
		# 去掉空格
		mem = mem.replace(' ', '')
		# 如果men不在result_copy里面,且men不等于''
		if not mem in result_copy and not mem == '':
			result_copy.append(mem)
	# print(result_copy)
	for mem in result_copy:
		# 一个一个读取字符
		for char in mem:
			# 如果是数字就拼接起来
			if char.isdigit():
				size = size + char
			else:
				# 不是数字,拼接完毕,把size加入到sizes,初始化size
				sizes.append(size)
				size = ''
				break
	if sizes == []:
		print(u'没有获取到内存信息')
	else:
		# 每个size相加
		for size in sizes:
			memsize = memsize + int(size)
	# 获取当前时间
	ltime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
	# ltime=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
	with open(csv_path, 'a') as csvf:
		# csv文件加逗号,可以换列输出
		csvf.write(ltime + ',' + str(memsize))
		csvf.write('\n')
	print(ltime)
	print(ltime + u' 第' + str(i + 1) + u'次:' + str(memsize))
	# 间隔10秒
	time.sleep(interval)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值