Httprunner v3.x生成Allure格式HTML报告

本文档记录初次使用Allure生成报告的过程和踩坑。

先安装allure,下载并配置环境。
参考文档:

https://www.cnblogs.com/wsy1103/p/10530397.html

安装好后步骤开始:

步骤一:用allure生成report报告用数据,生成的报告数据包含2个文件:1个json文件、1个txt文件。

切换到D:\Python\test>下执行:

hrun test_post_api.json --alluredir=report

步骤二:用allure创建刚才生成的report报告用数据,生成report2文件夹,-o 表示指定生成报告的文件夹,-c 表示在生成报告之前先清理之前的报告目录。

allure generate D:\Python\test\report -o D:\Python\test\report2 -c

然后使用默认浏览器打开allure报告,即可查看。

allure open D:\Python\test\report2

结束。生成成功的效果:
在这里插入图片描述
在这里插入图片描述


【常见问题】

1、若是报错提示 OSError: [WinError 6] 句柄无效,请参考如下解决:
在这里插入图片描述

步骤:
①将一些代码添加到D:\Python\Lib\site-packages\httprunner路径下的runner.py文件
②在文件开头import colorama,sys
③找到test_start方法,并加入如下代码:
在这里插入图片描述
以下代码供复制:

#句柄错误解决方法
        def setup_ansi_colors(suppress_colors):
            convert_ansi_codes_to_win32_calls = False
            if os.name == 'nt':
                # Only need to init colorama with 'convert=True' when app is called
                # from 'cmd.exe', 'powershell' or 'git-bash via VS Code'
                convert_ansi_codes_to_win32_calls = 'TERM' not in os.environ or \
                                                    os.environ.get('TERM_PROGRAM', None) == 'vscode'
            if 'CONVERT_ANSI_CODES_TO_WIN32_CALLS' in os.environ:
                # explicit option is useful for cases when automatic guess fails (e.g. for Eclipse IDE)
                convert_ansi_codes_to_win32_calls = os.environ.get('CONVERT_ANSI_CODES_TO_WIN32_CALLS').lower() in (
                'true', '1')
            colorama.init(strip=suppress_colors, convert=convert_ansi_codes_to_win32_calls)

2、若是发现返回体body中的中文编码失败了,请参考如下解决:https://blog.csdn.net/zjxht62/article/details/116305944
在这里插入图片描述

原因是json.dumps序列化时对中文默认使用的ascii编码.想输出真正的中文需要指定ensure_ascii=False

步骤:
①将一些代码添加到D:\Python\Lib\site-packages\httprunner路径下的client.py文件
②找到log_print方法,并修改如下代码:

以下代码供复制:

#修改了第37行(client.py文件中的第37行)代码
    def log_print(req_or_resp, r_type):
        msg = f"\n================== {r_type} details ==================\n"
        for key, value in req_or_resp.dict().items():
            if isinstance(value, dict):
                value = json.dumps(value, indent=4,ensure_ascii=False)

【allure语法】

$ hrun --alluredir allure-results --clean-alluredir # 当用例格式为py文件时,可以用“pytest”替换“hrun”,作用相同
–alluredir:生成allure报告的原始数据
allure-results:原始数据的保存位置
–clean-alluredir:清除allure-results历史数据

$ allure generate allure-results -o allure-report
-o 指定生成报告的文件夹
-c 在生成报告之前先清理之前的报告目录

allure open allure-report:启动默认浏览器打开Allure测试报告

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值