我为每个功能文件中的所有场景使用一个EventFiringWebDriver弹簧bean创建了一个黄瓜弹簧项目。我的测试工作正常,并且每种情况下不打开新驱动程序会减少总测试时间。这是可以接受的做法吗?感谢您的帮助!
答案 0 :(得分:1)
作为标准做法,您应将驱动程序管理与测试代码分开,后者应根据在单个或多个浏览器/平台上并行或顺序运行的运行时配置来提供和管理驱动程序会话。
在我们的情况下,我们使用qaf with gherkin,而qaf负责提供线程安全的驱动程序会话,以在一个或多个浏览器中并行或顺序运行方案。我们在xml配置文件中指定该文件,它是标准的test-ng配置文件。例如,以下配置文件在两个浏览器(两个浏览器均并行)中并行运行方案:
<suite name="AUT Test Automation" verbose="0" parallel="tests" thread-count="10">
<test name="Tests on ff" parallel="methods">
<parameter name="driver.name" value="firefoxDriver" />
<classes>
<class name="com.qmetry.qaf.automation.step.client.gherkin.GherkinScenarioFactory" />
</classes>
</test>
<test name="Tests on chrome" parallel="methods">
<parameter name="driver.name" value="chromeDriver" />
<classes>
<class name="com.qmetry.qaf.automation.step.client.gherkin.GherkinScenarioFactory" />
</classes>
</test>
</suite>
可以根据需要进行配置。
答案 1 :(得分:-1)
最佳做法是每个浏览器进行一次测试。这样可以更好地将问题隔离在一次运行中,因此,如果一个脚本横向运行,则不太可能影响其他脚本。
如果还没有,请研究并行执行。这是使事情进展更快的最佳选择。如果您仅添加一个浏览器,则将整体执行时间减少一半左右。更多的浏览器将使其更快。