前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Appium系列(三十八)记录测试用例执行过程中的性能数据

Appium系列(三十八)记录测试用例执行过程中的性能数据

作者头像
雷子
发布2021-07-29 14:54:54
5030
发布2021-07-29 14:54:54
举报

前言

之前的文章呢,我们做了一列的 分析,我们对于用例执行中增加等待做了追加,在之前的Appium系列(三十六)在用例中增加获取性能数据文章中呢,给大家解决了 在测试报告中带入性能数据,那么,本次呢,我们分享如何在获取的测试用例中,将测试用例的数据进行存储。

正文

我们来看下,如何存储这些数据呢,存储的目的是为了后续的展示,现在我们先存储起来,我们先做简单的 ,存储到 文件中去,为了方便我们后续的读取结合我们有测试用例的名称,我的方案的是把这些数据存储到yaml文件中去,方便后续的读取。那么如何存储到yaml文件呢,

安装依赖库

代码语言:javascript
复制
pip install PyYaml

接下来我们就去封装两个方法,一个是数据的存储,一个是数据的读取。我们封装在了common中pytoolsFoYaml.py

代码语言:javascript
复制
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中配置

代码语言:javascript
复制
import os
BASH_DIR=os.path.join(os.getcwd(),"report")
perdata='data.yaml'

然后我们在实际写入的时候 文件是固定的。记得创建report文件夹

然后我们在测试用例文件中引入

代码语言:javascript
复制
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)
        

这样我们去执行用例就会记录我们的数据,执行完毕结果如下

数字上面 都带了引号,我们需要去掉,这时候不能是整数,只能是小数。修改后如下

代码语言:javascript
复制
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)

我们再次执行

这样我们就完成了测试过程中性能数据的收集,后续文章回分析如何在测试报告中展示。

代码语言:javascript
复制

最新代码已经提交
https://gitee.com/liwanlei/appiumdemo

后记

发现问题,解决问题。遇到问题,慢慢解决问题即可。

欢迎关注雷子说测试开发,后续将会持续为大家分享更多的技术知识

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 雷子说测试开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档