Pytest接口自动化-Allure报告中添加环境变量

一、背景:

目前在做接口自动化生成测试报告的过程中,比较火的就是结合Allure生成报告,大多数过程中生成的Allure报告当中-环境变量栏目都是为空的,本篇主要介绍如何在Allure报告当中添加环境变量描述

二、准备工作:

2.1、添加环境变量思路:

能够在Allure报告当中看到环境变量参数,那就必须在生成的xml文件当中(也就是生成的自动化测试数据)当中添加环境变量参数的,properties文件,从而达到显示的目的
在这里插入图片描述
所以我们可以先生成一份.properties文件后直接copy到测试数据当中去(这里不理解的可以看下我之前分享的main函数),从而达到我们的目的

2.2、复制文件到指定目录

import shutil

def mycopyfile(srcfile, dstpath):  # 复制函数
    """
    将源文件srcfile,复制并粘贴到执行路径下dstpath
    """
    if not os.path.isfile(srcfile):
        print("%s not exist!" % (srcfile))
    else:
        fpath, fname = os.path.split(srcfile)  # 分离文件名和路径
        if not os.path.exists(dstpath):
            os.makedirs(dstpath)  # 创建路径
        shutil.copy(srcfile, dstpath + fname)  # 复制文件
        print("copy %s -> %s" % (srcfile, dstpath + fname))

2.2.1、调用方法

if __name__ == "__main__":
   mycopyfile(f"{BASE_DIR}/test_datas/data_type/properties/windows/environment.properties",
                            f"{BASE_DIR}/test_datas/data_type/properties/linux/")

解决完复制移动文件后,需要解决对.properties文件的解析了

2.3、.properties文件解析

class Properties(object):
    """
    .properties文件读取&写入操作
    """

    def __init__(self, filename, encoding='utf-8'):
        # filename,详细的.properties文件路径
        self.filename = filename
        self.fp_read = open(self.filename, 'r', encoding=encoding)
        self.data = self.fp_read.readlines()
        self.fp_read.close()
        self.properties = {}
        for i in self.data:
            if '#' in i:
                continue
            sp = i.split('=')
            key = sp[0].replace(' ', '')
            value = sp[-1].replace('\n', '').replace(' ', '')
            # .properties文件值存储为键值对形式,存在相同的key值则update更新
            self.properties.update({key: value})

    def get(self, key):
        # 输入键值对key值,获取对应value值
        return self.properties[key]

    def set(self, key, value):
        """
        输入键值对:key-value,相同则覆盖更新,不通则写入
        """
        self.fp_write = open(self.filename, 'w', encoding='utf-8')
        try:
            self.properties[key] = value
        except:
            pass
        data = ""
        for k, v in self.properties.items():
            data += k + " = " + v + "\n"

        self.fp_write.writelines(data[:-1])
        self.fp_write.close()

2.3.1、调用方法:

if __name__ == '__main__':
    p = Properties(f"{BASE_DIR}/test_datas/data_type/properties/windows/environment.properties", "utf-8")
    p.get('systemVersion')
    p.set('env', 'sit3')

三、报告当中添加环境变量

3.1、思路:

准备文件A,待生成pytest用例数据后再copy文件A

3.2、执行:

pytest.main(
                ['-s', '-v',
                 '--alluredir', f'{BASE_DIR}/report/xml/' + new_dir_name])  # 生成xml
            pro_path = f'{BASE_DIR}/report/xml/' + new_dir_name + '/'
            dir_path = f"{BASE_DIR}/test_datas/data_type/properties/windows/environment.properties"
            p = Properties(dir_path, "utf-8")
            p.set('environmentVersion', read_environment('env'))
            mycopyfile(dir_path, pro_path)
             command_word = f'allure generate {BASE_DIR}/report/xml/{new_dir_name} -o {BASE_DIR}/report/html/{new_dir_name} --clean'
            os.system(command_word)  # 执行cmd命令,生成html

有接不上的同学可以看下我之前的文章

3.3、效果展示:

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勒布朗-孟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值