首页 文章

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

提问于
浏览
1

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

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

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

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

2 回答

  • 3

    好问题!

    来自OTHER方面,我是QA自动化测试工程师,与自动化开发团队合作......

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

    最明显的两个:

    • 测试的主要目的是本地化错误 . 如果所有测试都在一次运行并且失败,那么您将无法分辨它失败的位置 . 〜Prateek

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

    所以你在这里的答案是正确的 -

    我的猜测是防止一个测试用例失败对其他测试产生负面影响 . 它是否正确?

    但当然,还有比单独更多的理由 .

  • 1

    还有一个原因,每次实例化WebDriver时,都会创建一个清除浏览器缓存的新配置文件 . 目前没有其他方法可以清除浏览器缓存 .

相关问题