测试人社区

allure + pytest + seleniumPO模式下断言失败自动截图保存allure中

想设计一个方法,就是再PO模式下对pytest做一个封装,对执UI自动化的时候对断言失败的测试用例自动保存截图并应用到Allure的测试报告中,有没有什么好的思路或者方式?

可以封装一个截图的方法,断言失败的时候调用下这个方法,并把图片放入报告内

这个有很多成熟的封装方法,引擎搜一下就好了。

参考这篇文章https://www.cnblogs.com/yoyoketang/p/13537355.html

有什么可以参考的code嘛?

参考一下这个:

@allure.testcase("http://www.github.com")
@allure.feature("百度搜索")
@pytest.mark.parametrize('test_data1', yaml.safe_load(open("data.yml")))
def test_steps_demo(test_data1):
    with allure.step("打开百度网页"):
        driver = webdriver.Chrome(executable_path='chromedriver.exe')
        driver.get("http://www.baidu.com")
        driver.maximize_window()
    with allure.step(f'输入搜索词:{test_data1}'):
        driver.find_element_by_id("kw").send_keys(test_data1)
        time.sleep(2)
        driver.find_element_by_id("su").click()
        time.sleep(2)
    with allure.step("保存图片"):
        driver.save_screenshot("./result/b.png")
        allure.attach.file("./result/b.png", attachment_type=allure.attachment_type.PNG)
    with allure.step("关闭浏览器"):
        driver.quit()