3

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

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

所以如果有 5 个 @Test 方法,浏览器将被打开,测试应用程序初始化,浏览器关闭 5 次。

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

4

2 回答 2

5

好问题!

来自 OTHER 方面,我是一名 QA 自动化测试工程师,与 Dev 团队一起致力于自动化......

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

最明显的两个:

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

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

所以你在这里的假设是正确的 -

我的猜测是防止一个测试用例失败对其他测试产生负面影响。这个对吗?

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

于 2013-10-11T17:17:52.123 回答
2

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

于 2013-10-12T03:48:20.853 回答