如何在selenium python中仅重新运行失败的测试用例,并获取已通过和失败脚本的单个报告

2024-09-27 00:14:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我的测试套件中有25个测试脚本。当我执行所有脚本时,每次都会有2或3个脚本失败。如果我只是重新运行那些失败的脚本,它就会通过

我正在寻找一种方法来执行所有25个测试脚本,如果有两个脚本在第一次执行时失败,那么只有这两个脚本需要再次执行(执行2或3次),然后将其判定为失败

如果这两个失败的脚本在第二次通过,那么我需要生成一个html报告,说明所有25个脚本都通过了。 是否有插件可以实现这一点,或者有人曾经遇到过这个问题并成功地实现了这一点

我正在使用pytest框架和htmlrunner插件生成报告


Tags: 方法脚本插件框架套件pytesthtml报告
2条回答

你试过了吗?它可以用于整个模块或测试套件的一个特定案例

对于一个特定的测试,您可以添加下一个装饰器:

@pytest.mark.flaky(reruns=5)
def test_example():
    import random
    assert random.choice([True, False])

对于“为整个模块指定重新运行”,您可以添加:

# test_some.py
pytestmark = [
    pytest.mark.flaky(reruns=5)
]

如果需要为整个测试会话指定重新运行:

pytest reruns 5

我想做的是整个模块的水平。 请告诉我如何将re reun dectorator添加到我的测试套件中? 请正确更新此代码以包括重新公平分配者

这是我的配置文件

from pytest import fixture
from selenium import webdriver

@fixture(params=[webdriver.Chrome,webdriver.Firefox,webdriver.Edge])
def browser(request):
    driver=request.param
    drvr=driver()
    drvr.maximize_window()
    yield drvr
    drvr.quit()

这是我的测试脚本

  @mark.parametrize('env', ['test'])
    def test_home(browser, env):

   browser.get(f"https://{env}.abc.com/home")

相关问题 更多 >

    热门问题