appium---Android app资源监控
我们在做app测试的过程中,都会对app内存,cpu这些做一个简单的测试,今天简单的写下如何通过python监控app这些资源变化
实现原理
1、通过adb命令查看app资源内存
2、通过python脚本调用adb命令
3、持续监控写入txt文件或者csv文件中
监控资源过程
我们以淘宝app为例完成本次监控
adb监控内存命令
# adb监控内存变化 adb shell dumpsys meminfo com.taobao.taobao
进行数据分析
通过观察,我们只需要提取出来结果的 Native Heap 和 Dalvik Heap,还有内存总和 TOTAL,接下来我们通过python把想要的数据提取出来
# coding:utf-8 import os # 获取淘宝内存命令 adb = 'adb shell dumpsys meminfo com.taobao.taobao' # 执行adb命令 result = os.popen(adb).read() # 以','进行分割 temp = ','.join(result.split()) # 获取native值 native = temp.split('Native,Heap')[1].split(',')[1] # 获取dalvik值 dalvik = temp.split('Dalvik,Heap')[1].split(',')[1] # 获取total值 total = temp.split('TOTAL')[1].split(',')[1]
这样的话就把我们想要的数据提取出来了,可以中间加个等待时间,每几秒提取一次数据,接下来我们呢进行对这些数据写入csv文件或者txt文件中
首先我们创建一个列表,把每次提取出来的数据放入到列表中,写入csv文件中
# coding:utf-8 import os import time import csv alldata = [("native", "dalvik","TOTAL")] # 设置循环次数 count = 10 while count > 0: lines = os.popen("adb shell dumpsys meminfo com.taobao.taobao") # adb 查看app内存 result = lines.read() temp = ','.join(result.split()) native_heap = temp.split('Native,Heap')[1].split(',')[1] print ("native_heap:" + str(native_heap)) dalvik_heap = temp.split('Dalvik,Heap')[1].split(',')[1] print ("dalvik_heap:" + str(dalvik_heap)) total = temp.split('TOTAL')[1].split(',')[1] print ("total:" + str(total)) alldata.append([native_heap, dalvik_heap,total]) count -= 1 print('还剩余:%s次'%count) time.sleep(1) # 等待时间 csvfile = open('test02.csv', 'w',encoding='utf8',newline='') writer = csv.writer(csvfile) writer.writerows(alldata) csvfile.close()
当我们在跑自动化的过程中,我们再次执行这个监控内存脚本,就可以完成对app内存资源的监控了;
剩下的CPU,耗电量大家试着完成下,要记住耗电量不能通过USB的方式连接哈,要不然就会一直处于充电状态