【问题标题】:Running test with different drivers java eclipse使用不同的驱动程序 java eclipse 运行测试
【发布时间】:2015-01-27 13:21:09
【问题描述】:

我有班级登录。

public class Login
{
private WebDriver driver;

@Beforetest
public void SetUp()
{
doingsmth();
//How to do this?
driver = FirefoxDriver or Chromedriver depending on smth.
}

@test
public void loginFirefox_a(){}
@test
public void loginFirefox_b(){}
@test
public void loginFirefox_c(){}
@test
public void loginFirefox_d(){}
@test
public void loginChrome_a(){}
@test
public void loginChrome_b(){}
@test
public void loginChrome_c(){}
@test
public void loginChrome_d(){}
}

我知道我可以以某种方式使用参数化,但不知道如何使用它(例如测试如何识别参数名称?)任何帮助将不胜感激。

【问题讨论】:

  • 返回什么doingsmth();
  • 将浏览器名称作为参数传递给 testng 或 maven,即 setProperty。并在 setUp 检查属性的值并赋值。
  • 做什么();回归? - 没有什么是无关紧要的。对此感到抱歉。

标签: java eclipse parameters selenium-webdriver automated-tests


【解决方案1】:

基本上,您可以在运行 junit 类时将 FirefoxDriver 或 Chromedriver 作为运行时自定义参数传递。例如:-Ddriverclass="FirefoxDriver"。在实践中,您可以通过 System.getProperty("driverclass") 获取驱动程序值。

How to pass the -D System properties while testing on Eclipse?

Pass command line arguments to JUnit test case being run programmatically

【讨论】:

  • 不是在这种情况下,前 4 个测试的 cos 值必须与接下来的 4 个不同,例如 driver=firefoxDriver();运行前 4 个测试;驱动程序=ChromeDriver;运行接下来的 4 个测试。
【解决方案2】:

其中之一:

您可以使用参数化运行器,更多信息请点击此处https://github.com/junit-team/junit/wiki/Parameterized-tests

如果你熟悉 Guice,我会使用 Jukito 和 @All,更多 https://github.com/ArcBees/Jukito/wiki/@All

【讨论】:

  • 我认为你的问题是为了测试所有可能性,就像在 Chrome 和 Firefox 中一样,这是你想要的吗?
  • 我想制作两个测试集合,并为每个测试分配单独的 setUp 方法。因此,对于 Chrome 测试我需要 driver=ChromeDriver() 而对于 Firefox 我需要 driver = FirefoxDriver()
  • 关于你的链接,你能写一个使用参数化跑步者分配不同驱动程序的例子吗?链接中的示例使用方表来表示斐波那契,它对我来说完全不可读。我比传递一个布尔变量或一个字符串变量更简单。
  • 他们的例子非常简单。它与斐波那契特别无关。使用@Parameters 注释的静态函数在传递给FibonacciTest 的构造参数上返回Iterable。所以在这种情况下,框架将创建 8 个实例,首先传递 0、0 然后 1、1 下一个 2、1 等等。然后它将在每个创建的实例上调用所有带有@Test 注释的方法。
猜你喜欢
  • 1970-01-01
  • 2018-03-18
  • 2016-04-21
  • 1970-01-01
  • 2017-03-09
  • 2021-11-10
  • 1970-01-01
  • 1970-01-01
  • 2018-04-19
相关资源
最近更新 更多