allure.attach
时间: 2024-09-24 10:17:24 浏览: 43
Allure.attach 是 Allure 测试报告框架中的一个功能,它用于将额外的信息附加到测试结果中。当你想在测试报告中包含一些非标准的日志文件、屏幕截图、文件或者其他二进制数据时,可以使用 `attach` 方法。这个方法通常与 `getReport()` 结合使用,在测试结束后将附件添加到当前的测试案例中。
例如,在Python中,你可以这样做:
```python
import allure
from allure_commons.types import AttachmentType
with allure.step("Save a screenshot"):
# 拍摄屏幕截图
screenshot = capture_screenshot()
allure.attach(screenshot, name="screenshot.png", attachment_type=AttachmentType.PNG)
```
在这里,`screenshot` 是捕获的屏幕截图,`name` 是附件的名称,`attachment_type` 则指定附件的类型,如图片 (`PNG`) 或其他。通过这种方式,Allure 报告会包含这个屏幕截图,并附带相应的描述。
相关问题
allure.attach(body=caseinfo["request"]["url"],name="请求地址:",attachment_type=allure.attachment_type.TEXT) allure.attach(body=caseinfo["request"]["method"], name="请求方式:",attachment_type=allure.attachment_type.TEXT) data = caseinfo["request"]["data"] allure.attach(body=json.dumps(data), name="请求数据:",attachment_type=allure.attachment_type.TEXT) rep = requests.get(url=caseinfo["request"]["url"],params=data) allure.attach(body=rep.text, name="响应数据:", attachment_type=allure.attachment_type.TEXT) 解释每行代码
这段代码是使用Python语言编写的,其作用是在使用Allure框架进行接口自动化测试时,将请求地址、请求方式、请求数据、响应数据等信息记录在测试报告中。
具体解释如下:
1. `allure.attach(body=caseinfo["request"]["url"], name="请求地址:", attachment_type=allure.attachment_type.TEXT)`:使用Allure框架的`attach`方法,将请求地址记录在测试报告中,`name`参数表示该信息的名称,`attachment_type`参数表示该信息的类型,这里是文本类型。
2. `allure.attach(body=caseinfo["request"]["method"], name="请求方式:", attachment_type=allure.attachment_type.TEXT)`:同上,将请求方式记录在测试报告中。
3. `data = caseinfo["request"]["data"]`:获取请求数据,并将其赋值给变量`data`。
4. `allure.attach(body=json.dumps(data), name="请求数据:", attachment_type=allure.attachment_type.TEXT)`:将请求数据转换成JSON格式,并将其记录在测试报告中。
5. `rep = requests.get(url=caseinfo["request"]["url"], params=data)`:使用`requests`库发送GET请求,并将响应结果赋值给变量`rep`。
6. `allure.attach(body=rep.text, name="响应数据:", attachment_type=allure.attachment_type.TEXT)`:将响应结果的文本内容记录在测试报告中。
@pytest.hookimpl(hookwrapper=True) def pytest_runtest_makereport(self): # 获取到用例执行之后的result对象 out = yield """ setup: call:测试执行中 teardown: wasxfail:标记失败用例 """ report = out.get_result() # 判断call阶段 if report.when == 'call': xfail = hasattr(report, 'wasxfail') # report.skipped:用例跳过 # report.failed:用例失败 if (report.skipped and xfail) or (report.failed and not xfail): with allure.step("添加失败截图... ...."): allure.attach(self.driver.get_screenshot_as_png(), "失败截图", allure.attachment_type.PNG) 这段代码用例失败不截图
这段代码是使用pytest框架的一个钩子函数,用于在测试用例执行完成后生成测试报告。其中,通过判断测试用例的执行阶段和执行结果来决定是否需要添加失败截图。
具体来说,当测试用例执行阶段为'call'时,即测试用例执行完毕后,会获取到用例执行结果的report对象。然后判断如果测试用例被跳过且被标记为失败(xfail),或者测试用例执行失败且未被标记为xfail,则会添加一个名为"失败截图"的附件到测试报告中。
这段代码可以在测试用例执行完成后捕获失败情况,并将失败截图作为附件添加到测试报告中,便于后续分析和定位问题。
如果你想要在用例失败时不添加截图,可以将以下代码注释或删除:
```
if (report.skipped and xfail) or (report.failed and not xfail):
with allure.step("添加失败截图... ...."):
allure.attach(self.driver.get_screenshot_as_png(), "失败截图", allure.attachment_type.PNG)
```
这样,无论用例是否失败,都不会添加失败截图到测试报告中。请注意,在修改代码前最好备份一下原始代码,以防止修改后出现意外情况。
阅读全文