我是一名临时负责使用JUnit 4和Selenium WebDriver帮助QA团队进行测试自动化的开发人员。我是测试和测试自动化的新手。
查看各种WebDriver示例,常见的模式是在@Before方法中实例化WebDriver的实现(如FirefoxWebDriver),使用@Test方法中的实例与@After中的浏览器和driver.quit()进行交互。
因此,如果有5个@Test方法,将打开浏览器,初始化测试应用程序并关闭浏览器5次。
我的问题是为什么每个测试用例都需要打开,初始化和关闭?我的猜测是防止一个测试用例失败对其他测试产生负面影响。它是否正确?还有其他原因吗?
答案 0 :(得分:4)
很棒的问题!
来自OTHER方面,我是QA自动化测试工程师,与Dev团队合作开展自动化......
正如@Prateek和我自己所指出的那样,有几个原因。
最明显的两个:
测试的主要目的是本地化错误。如果所有测试都在一次运行并且失败,那么您将无法分辨它失败的位置。 〜Prateek
多线程也是一个原因。想象您的公司需要运行数千个回归测试。将每个测试分开,使它们完全独立于其他测试,使您能够同时运行它们(假设您的应用程序可以处理它),...说每个测试需要1分钟才能运行,{{ 1}}分钟顺序运行每个测试,而不是在1分钟内完成所有测试!
所以你在这里的答案是正确的 -
我的猜测是防止一个测试用例失败对其他测试产生负面影响。这是对的吗?
但当然,除了那个原因之外还有更多的理由。
答案 1 :(得分:2)
还有一个原因,每次实例化WebDriver时,都会创建一个清除浏览器缓存的新配置文件。目前没有其他方法可以清除浏览器缓存..