Allure相信大家都比较熟悉了,一种流行的测试结果可视化工具,已经成为许多测试人员的首选, 它通过丰富的图表和清晰的报告格式,帮助快速理解测试结果。
然而,日志作为寻找问题重要的一部分,记录了程序运行的详细信息,如果将日志集成到测试报告中,可以更快速全面的理解测试结果。
这篇文章就探讨如何将日志输出集成到Allure报告中。
未集成日志
我们先看看默认的allure报告,这里做一个简单演示,看一个简单case:
class TestDictController:
@allure.title("获取曲谱类型")
def test_dict(self):
response = requests.get("http://127.0.0.1:8080/pangxiaolu/dict/all?type=score_type")
assert response.status_code == 200
然后执行如下命令:
pytest --alluredir=./allure_report
allure serve allure_report
这样就可以看到详细报告,如下图所示
可以看到用例执行成功了,但是没有任何信息,从日志中无法知道请求的具体信息,接下来我们就进行改造。
利用requests的hook机制
可能有些同学还不知道requests的hook机制,这里简要说一下:
-
requests 提供了钩子机制,允许你在请求的不同阶段插入自定义行为。钩子函数在请求的处理流程中被调用,如请求发送后、响应接收后等。
-
hooks参数: 在 requests 的函数调用中,你可以通过 hooks 参数传递钩子函数。钩子参数是字典,键是钩子的名称,值是钩子函数。
-
钩子函数定义: 钩子函数接收响应对象和其他参数。可以在钩子函数中访问请