gpt4 book ai didi

java - 为什么要为每个 @Test 方法实例化 WebDriver?

转载 作者:行者123 更新时间:2023-12-02 07:30:12 24 4
gpt4 key购买 nike

我是一名开发人员,暂时负责帮助 QA 团队使用 JUnit 4 和 Selenium WebDriver 进行测试自动化。我是测试和测试自动化的新手。

查看各种 WebDriver 示例,常见的模式是在 @Before 方法中实例化 WebDriver(如 FirefoxWebDriver)的实现,在 @Test 方法中使用实例与浏览器交互,并在 @After 中使用 driver.quit() 。

因此,如果有 5 个 @Test 方法,则会打开浏览器、初始化测试应用程序并关闭浏览器 5 次。

我的问题是为什么每个测试用例都需要打开、初始化和关闭?我的猜测是为了防止一个测试用例失败对其他测试产生负面影响。它是否正确?还有其他原因吗?

最佳答案

好问题!

来自另一方,我是一名 QA 自动化测试工程师,与开发团队一起进行自动化工作...

正如 @Prateek 和我自己所指出的,有几个原因。

两个最明显的:

  1. 测试的主要目的是定位错误。如果所有测试一次性运行并且失败,您将无法判断哪里失败了。 ~普拉泰克

  2. 多线程也是一个原因。想象一下您的公司有数千个需要运行的回归测试。将每个测试隔离,使其完全独立于其他测试,使您能够同时运行所有测试(假设您的应用程序可以处理它),也就是说每个测试需要 1 分钟才能运行,1x1000=1000 分钟按顺序运行每个测试,而不是在短短 1 分钟内完成所有测试!

所以你的假设是正确的 -

My guess is to prevent one test case failure from having a negative side effect on other tests. Is this correct?

但是当然,还有更多原因。

关于java - 为什么要为每个 @Test 方法实例化 WebDriver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19323231/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com