Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么要为每个@Test方法实例化WebDriver?_Java_Selenium_Selenium Webdriver_Junit4_Functional Testing - Fatal编程技术网

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

Java 为什么要为每个@Test方法实例化WebDriver?,java,selenium,selenium-webdriver,junit4,functional-testing,Java,Selenium,Selenium Webdriver,Junit4,Functional Testing,我是一名开发人员,临时负责帮助QA团队使用JUnit4和SeleniumWebDriver实现测试自动化。我是测试和测试自动化的新手 查看各种WebDriver示例,一种常见的模式是在@Before方法中实例化WebDriver的实现(如FirefoxWebDriver),在@Test方法中使用实例与@After中的浏览器和driver.quit()接口 因此,如果有5个@Test方法,浏览器将打开,测试应用程序初始化,浏览器关闭5次 我的问题是为什么每个测试用例都需要打开、初始化和关闭?我的猜

我是一名开发人员,临时负责帮助QA团队使用JUnit4和SeleniumWebDriver实现测试自动化。我是测试和测试自动化的新手

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

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

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

好问题

来自另一边,我是一名QA自动化测试工程师,与开发团队在自动化方面合作

正如@Prateek和我所指出的,原因有两个

最明显的两个问题是:

  • 测试的主要目的是定位误差。如果所有的测试都一次性运行,并且失败了,那么您将无法知道失败的地方~普拉蒂克

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

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

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


    当然,原因不止这些。

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

    我想你差不多做到了。测试的主要目的是定位误差。如果所有的测试都一次性运行,并且失败了,那么您就无法确定是哪个部分导致了失败。还有-多线程。如果你有一个完整的回归套件,如果可能的话,你需要并行运行这1000个测试