Selenium webdriver 如何在testng.xml文件中使用变量

Selenium webdriver 如何在testng.xml文件中使用变量,selenium-webdriver,testng,Selenium Webdriver,Testng,我有以下xml文件,我想在其中创建变量并在所有测试标记中使用它们。 在下面的xml文件中,属性标记是我试图创建的一个不起作用的变量。 我想在这个testng.xml中创建两个变量env和browser,并在同一个testng.xml中使用它们。 下面是我的代码 <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="VW SRSTN-1152 suite"> <prope

我有以下xml文件,我想在其中创建变量并在所有测试标记中使用它们。 在下面的xml文件中,属性标记是我试图创建的一个不起作用的变量。 我想在这个testng.xml中创建两个变量env和browser,并在同一个testng.xml中使用它们。 下面是我的代码

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="VW SRSTN-1152 suite">
    <property name = "env" value = "qa">qa</property>
    <property name = "browser" value = "firefox">firefox</property>
    <listeners>
           <listener
                class-name="com.utility.CustomTestNGReporter" />
     </listeners>
    <test name="Test-1">
    <parameter name = "environment" value="${env}"/>
    <parameter name = "browser" value="${browser}"/>
        <classes>
         <class name="com.TC1"/> 
         <class name="com.TC2"/>
        </classes>
   </test> <!-- Test1 -->
   <test name="Test-2">
    <parameter name = "environment" value="${env}"/>
    <parameter name = "browser" value="${browser}"/>
        <classes>
         <class name="com.TC1"/> 
         <class name="com.TC2"/> 
        </classes>
  </test> <!-- Test2 -->
</suite> <!-- Suite -->```



质量保证
火狐
```
见此

<suite name="Parameter test Suite" verbose="1">
<!-- This parameter will be passed to every test in this suite -->
<parameter name="suite-param" value="suite level parameter" />

<test name="Parameter Test one">
    <classes>
        <class name="com.myclass1Here"/>
    </classes>
</test>

<test name="Parameter Test two">
    <!-- This parameter will be passed this test only -->
    <parameter name="test-two-param" value="Test two parameter" />
    <classes>
        <class name="com.myclass2Here"/>
    </classes>
</test>
<test name="Parameter Test three">
    <!-- Overriding suite level parameter -->
    <parameter name="suite-param" value="overiding suite parameter" />
    <!-- Test specific parameter -->
    <parameter name="test-three-param" value="test three parameter" />
    <classes>
        <class name="com.myClass3Here"/>
    </classes>
</test>


取决于您的要求,您可以使用套件级别的PAR或测试级别PAR。您可以在测试中覆盖套件水平PAR,也可以忽略

谢谢您的回答。实际上,在我的例子中,我需要将参数从套件传递到所有测试,从测试传递到所有类。因此,最终我将在套件级别修改参数,并仅使用这些参数运行所有类。然后仅在套件级别给出。所有测试都将采用这些参数。那么为什么需要在测试级别指定呢?在类中像这样使用@Test@Parameters(“myName”)public void parameterTest(String myName){System.out.println(“参数化值为:“+myName”);}是的。我删除了测试级别的参数,它正在按预期工作。再次感谢你的帮助。