maven 使用Selenium和TestNG进行并行跨浏览器测试,无需使用testng.xml

rjjhvcjd  于 2022-11-02  发布在  Maven
关注(0)|答案(3)|浏览(172)

我正在使用Maven Failsafe + TestNG来运行Selenium测试。我知道可以通过在pom.xml中定义系统属性来将参数传递给TestNG测试,如下所示:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <version>2.19.1</version>
    <configuration>
      <systemPropertyVariables>
        <browser>firefox</browser>
      </systemPropertyVariables>
    </configuration>
  </plugin>

我的TestNG测试引用此属性,如下所示:

@Parameters("browser")
public void setUpClass(@Optional("firefox") String browser)
{
   ...
}

然而,我想知道是否有可能在不需要指定testng.xml文件的情况下并行运行跨浏览器测试。我曾尝试过类似的方法,但没有成功。如果您能提供帮助,我将不胜感激。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <version>2.19.1</version>
    <configuration>
      <systemPropertyVariables>
        <browser>firefox, chrome</browser>
      </systemPropertyVariables>
      <parallel>tests</parallel>
    </configuration>
  </plugin>

仅仅通过pom.xml配置就可以实现这一点吗?由于我的项目具有多模块的特性,我不喜欢使用testng.xml文件。

jv4diomz

jv4diomz1#

您可以在 *.properties文件中填充所有属性,然后将其与Properties Maven Plugin一起使用QATools Properties将使它们在驱动程序配置过程中易于使用

tzxcd3kk

tzxcd3kk2#

你也可以用编程的方式运行任何TestNG测试。在这里检查TestNG以编程的方式运行,所以从maven你只需要用main方法调用你的类就可以用编程的方式运行testng,并且从任何源代码(csv,properties,xml,xlsx.,等等)读取你想要的任何属性。

rggaifut

rggaifut3#

这是一个简单的变通办法,以实现同样的目标。我正在做的,它帮助我保持一个干净的代码,而不是添加到许多变化和所有。
这是基于您使用Jenkins来触发测试的假设。
您可以在Jenkins服务器上创建2个Jenkins作业。然后使用不同的mvn命令执行它们。

mvn clean test -Dbrowser=firefoxmvn clean test -Dbrowser=chrome
希望这对你有帮助。

相关问题