小编Zis*_*ska的帖子

TestNG:哪种方法更好?登录一次并运行所有测试 (@BeforeSuite) 或在每次测试之前登录 (@BeforeTest)

方法#1:每次测试前登录:

优点:

  1. 每个测试都是一个不同的会话,如果一个测试导致浏览器崩溃,则只有该测试失败,不会影响其他测试。
  2. 可以进行并行测试。

缺点:

  1. 如果登录失败(因为 AUT 已关闭或登录功能有错误),我们仍然在每次测试之前调用它。但这是一个小问题,因为这可以通过创建一个测试登录功能的测试来解决,并且如果失败则可以中止整个套件。

APRROACH#2:登录一次并运行所有测试:

优点:

  1. 您不必处理如此多的浏览器窗口,因为您只需要打开一个

缺点:

  1. 如果测试导致浏览器崩溃,我们可以在下一次测试开始之前恢复吗?
  2. 我们可以并行运行 1 个以上的测试吗?

尽管这两种方法各有利弊,但我仍然不确定哪种方法是最好的。在每次测试之前作为单独的会话登录真的很浪费资源吗?不涉及数据库连接。我发现 APPROACH#1 的唯一潜在问题是,由于每个测试都是 Java 进程,因此有可能因过多的并发 Java 进程而导致系统过载。

testng selenium-webdriver

5
推荐指数
1
解决办法
2497
查看次数

org.openqa.selenium.InvalidElementStateException:无法执行本机交互:无法加载本机事件组件

在将FF9更新为FF10之后,使用Java绑定在Windows 7中使用版本2.15.0和Firefox9时,我遇到了此错误.我尝试在网上建议禁用本机事件,但没有运气.在线搜索了更多解决方案后,我将WebDriver更新到2.17.0版.问题已得到解决,我有时也没有遇到同样的问题.我再次升级到最新版本的WebDriver,2.19.0,问题解决了.现在我在将FF10更新到11之后面临同样的问题.我升级到2.20,但问题占了上风.我禁用了原生事件如下,但我仍然得到错误.

使用Java:

FirefoxProfile profile = new FirefoxProfile(); 
profile.setPreference("webdriver_enable_native_events", false); 
driver = new FirefoxDriver(profile); 
Run Code Online (Sandbox Code Playgroud)

Stacktrace(当我尝试移动鼠标悬停在元素上时):

org.openqa.selenium.InvalidElementStateException: Cannot perform native interaction: Could not load native events component. 
Command duration or timeout: 30.07 seconds
Build info: version: '2.20.0', revision: '16008', time: '2012-02-28 15:00:40'
System info: os.name: 'Windows 7', os.arch: 'x86', os.version: '6.1', java.version: '1.6.0_31' 
Driver info: driver.version: RemoteWebDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) 
at java.lang.reflect.Constructor.newInstance(Unknown Source) 
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java: 170) 
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.­java: 123) 
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java: 438) 
at org.openqa.selenium.remote.ExecuteMethod.execute(ExecuteMethod.java: 47) …
Run Code Online (Sandbox Code Playgroud)

java selenium webdriver selenium-firefoxdriver

3
推荐指数
1
解决办法
4685
查看次数