且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Selenium Webdriver:如何在同一窗口中一个接一个地运行多个测试?

更新时间:2023-02-01 20:47:50

如果测试是依赖的,则可以使用在method2上定义的dependsOnMethod = {method1}将它们放在同一类中,从而保证顺序.如果在不同的类之间,则可以考虑从LoginScript类扩展您的AddNormalEE类.

If your tests are dependent, you can put them in the same class with dependsOnMethod={method1} defined on method2 so that the order is gauranteed. If it is between different classes, you might consider extending your AddNormalEE class from the LoginScript class.

要在同一浏览器中运行测试,您的驱动程序实例需要在您的类之间共享,或者在所有@Tests中必须相同.使其为静态,或考虑使用threadlocal webdriver变量,以防您计划有一天并行运行.在上述情况下,您还可以在loginScript中使用方法getDriver(),以便在需要避免静态操作的情况下将驱动程序对象返回给AddNormalEE类.

To run tests in the same browser, your driver instance needs to be shared between your classes or it has to be the same in all your @Tests. Either make it static or consider having a threadlocal webdriver variable in case you plan to run parallely some day. In the above case, you can also have a method getDriver() in your loginScript which returns the driver object to the AddNormalEE class if static needs to be avoided.

通常,进行独立测试是件好事.您可以利用并行运行来克服独立测试的时间问题.将登录作为一种方法而不是一种测试,因为我们没有根据您上面的代码声明任何行为.如果我正在测试登录,则将有单独的测试仅测试登录功能.

As a general practice, it is good to have independent tests. You can make use of parallel runs to overcome the time issue with independent tests. Making login as a method and not a test since we are not asserting any behavior as per your code above. If I am testing login, I would have separate tests that test login functionality only.