当前位置: 首页 > 知识库问答 >
问题:

在BrowserStack中的不同浏览器上运行JUnit套件的配置文件

穆承运
2023-03-14
@RunWith(Suite.class)
@Suite.SuiteClasses({className1.class, clasName2.class})
public class TestSuite
{
  public static TestSuite suite()
  {
      TestSuite suite = new TestSuite();
      suite.addTest(new JUnit4TestAdapter(className1.class));
      suite.addTest(new JUnit4TestAdapter(className2.class));

      return suite;
   }
}

每个类都包含@Test方法,并扩展了设置@BeForeClass参数(通过DesiredCapabilities)以在BrowserStack机器上运行套件的BaseClass:

public class MyTestBase{
    static protected WebDriver driver;
private boolean acceptNextAlert = true;
protected static StringBuffer verificationErrors = new StringBuffer();

    @BeforeClass
    public static void setUp() throws Exception {
            DesiredCapabilities capability = DesiredCapabilities.firefox();
    capability.setPlatform(Platform.WINDOWS);
    capability.setCapability("build", "JUnit - Sample");
    capability.setCapability("acceptSslCerts", "true");
    capability.setCapability("browserstack.debug", "true");
    driver = new RemoteWebDriver(
        new URL("http://username:accesskey@hub.browserstack.com/wd/hub"),
        capability);
        driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS);
    }
    /* other code */
}

所以,你能帮我做下一件事吗:1)我需要创建配置文件,并使用它的参数在BrowserStack中的不同浏览器上运行我的TestSuite。任何。xml文件的示例都将受到欢迎。2)以及如何修改TestSuite.class以使用。xml文件参数。3)我的TestSuite.class由许多。class组成,每个。class中都有@test方法。每个类都扩展了myTestBase.class,注释@BeForeClass和@AfterClass位于其中,但是当我运行TestSuite时,TestSuite中的每个类都启动了新的浏览器,这对我来说是一个非常大的问题。如何在TestSuite中的所有类中运行浏览器一次性@Test方法。我知道@BeForeClass适用于一个类中的所有@Test方法,但是如果有可能存在类,该怎么办呢?在TestNG中,有@beforeSuite解决了这个问题。
抱歉,问了这么多问题,但是我尝试了很多,都没有成功:(非常感谢!

共有1个答案

邴英毅
2023-03-14

你问了很多关于不同主题的问题。我会设法把事情解决的。

只有在实例化WebDriver一次并在所有测试中使用该对象时,才能实现这一点。因此,不要在测试的@beforeClass方法中实例化浏览器。

在测试套件的第一个测试类中。这可能是一个专门用于打开浏览器的测试。或者您可以在所有测试中包含此功能,并必须检查浏览器是否已经初始化。

 类似资料:
  • 我已经用Maven设置了Eclipse,并创建了一个添加Selenium和TestNG依赖项的项目。我现在试着在Chrome上运行我的测试,我知道我可以设置

  • 我用Java创建了一个简单的Cumber测试。基本上,当您运行功能文件时,它会转到一个网站,选择一个按钮并将您带到该页面。我想做的是通过BrowserStack运行这个测试。不仅如此,还可以在Browserstack中的多个浏览器/设备上并行运行此单一功能文件。e、 g在五个不同的浏览器/设备上运行相同的测试。

  • 我正尝试在不同的浏览器驱动中运行Fluentlenium。我想我需要从Fluentlenium配置getDefaultDriver(),但是我不确定该怎么做。任何示例代码将是伟大的。这是我的代码,但它不起作用。我在Eclipse中得到的消息是: “java.lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver.chrome.driver系统属性设置

  • 我有相同的图像和相同大小的画布,但是输出是不同的。我想要同样的输出,该怎么做呢?

  • 问题内容: 我找不到有关如何进行设置的任何信息,但这似乎是一个非常基本的概念,所以我敢肯定有一个答案。 我知道如何通过在配置中设置对象的属性来在不同的浏览器上运行量角器。而且效果很好。我可以将其设置为or 或我需要的任何值,并且它可以按预期运行。但是,对多个浏览器运行单个测试套件的唯一方法(据我所知)是创建单独的配置文件,每个配置文件具有不同的配置文件,然后使用各自的配置运行每个浏览器。这行得通,

  • 我正在尝试我的第一个XSLT转换。我编写了一个简单的XML文件和一个简单的XSL文件,其中列出了表中的元素。我使用eclipse IDE创建了文件,并且转换完成为XML。即我得到了一个正确包含相应html代码的out.xml文件。如何在服务器上运行此文件以在浏览器上查看html文件的输出? 是否有方法指定要在浏览器中打开的XSL文件?也许在href部分,我将XML与XSL链接在一起? 我试过这个: