前言
之前的文章呢,我们做了一列的 分析,我们对于用例执行中增加等待做了追加,在之前的Appium系列(三十六)在用例中增加获取性能数据文章中呢,给大家解决了 在测试报告中带入性能数据,那么,本次呢,我们分享如何在获取的测试用例中,将测试用例的数据进行存储。
正文
我们来看下,如何存储这些数据呢,存储的目的是为了后续的展示,现在我们先存储起来,我们先做简单的 ,存储到 文件中去,为了方便我们后续的读取结合我们有测试用例的名称,我的方案的是把这些数据存储到yaml文件中去,方便后续的读取。那么如何存储到yaml文件呢,
安装依赖库
pip install PyYaml
接下来我们就去封装两个方法,一个是数据的存储,一个是数据的读取。我们封装在了common中pytoolsFoYaml.py
import yaml
def save(data:dict,file:str):
file = open(file, 'a+', encoding='utf-8')
yaml.dump(data, file)
file.close()
def read(file:str)->dict:
with open(file, "r") as file:
parameter = yaml.load(file.read(), Loader=yaml.Loader)
return parameter
接下来,我们就是是在测试用例中使用。
在测试框架的config.py中配置
import os
BASH_DIR=os.path.join(os.getcwd(),"report")
perdata='data.yaml'
然后我们在实际写入的时候 文件是固定的。记得创建report文件夹
然后我们在测试用例文件中引入
from config import BASH_DIR,perdata
from common.pytoolsFoYaml import *
#在初始化中初始化这个文件
self.datafile=os.path.join(BASH_DIR,perdata)
#然后我们在实际用到的地方引用
#用例启动前
cpu = caijicpu(packagename=self.parme['appPackage'], devices=self.parme['deviceName'])
memory = getnencun(packagename=self.parme['appPackage'], devices=self.parme['deviceName'])
ataper={}
dataper[casename+"_start"]={'cpu':cpu,'mem':memory}
save(file=self.datafile,data=dataper)
#用例执行后
cpuend = caijicpu(packagename=self.parme['appPackage'], devices=self.parme['deviceName'])
memoryend = getnencun(packagename=self.parme['appPackage'], devices=self.parme['deviceName'])
dataper = {}
dataper[casename + "_end"] = {'cpu': cpuend, 'mem': memoryend}
save(file=self.datafile, data=dataper)
这样我们去执行用例就会记录我们的数据,执行完毕结果如下
数字上面 都带了引号,我们需要去掉,这时候不能是整数,只能是小数。修改后如下
cpu = caijicpu(packagename=self.parme['appPackage'], devices=self.parme['deviceName'])
memory = getnencun(packagename=self.parme['appPackage'], devices=self.parme['deviceName'])
dataper={}
dataper[casename+"_start"]={'cpu':float(cpu),'mem':float(memory)}
save(file=self.datafile,data=dataper)
#case执行完毕如下
cpuend = caijicpu(packagename=self.parme['appPackage'], devices=self.parme['deviceName'])
memoryend = getnencun(packagename=self.parme['appPackage'], devices=self.parme['deviceName'])
dataper = {}
dataper[casename + "_end"] = {'cpu': float(cpuend), 'mem': float(memoryend)}
save(file=self.datafile, data=dataper)
我们再次执行
这样我们就完成了测试过程中性能数据的收集,后续文章回分析如何在测试报告中展示。
最新代码已经提交
https://gitee.com/liwanlei/appiumdemo
后记
发现问题,解决问题。遇到问题,慢慢解决问题即可。
欢迎关注雷子说测试开发,后续将会持续为大家分享更多的技术知识