Selenium_testng_Java_passing数据到@beforetest和@test

时间:2016-11-17 14:50:01

标签: java selenium testng-dataprovider

我的TesTng类有3个测试(A,B,C),这个类扩展了基类,它有@beforemethod和@ aftermethod

现在我想在方法之前将浏览器传递给@并将电子邮件发送到方法A

以下是我的示例数据。enter image description here

电子邮件每次都必须是唯一的。

2 个答案:

答案 0 :(得分:0)

其中一种方法是使用@Parameters注释。

@BeforeMethod的代码是 -

@BeforeMethod
@Parameters("browser")
public void testMethod1(String browser) {
     //do your task here
}

方法A的代码 -

@Test
@Parameters("email")
public void A(String email) {
     //implement your test logic here
}

示例TestNG示例 -

<suite name="Suite1" verbose="1" >

<test name="Test1">
  <parameter name="browser" value="firefox"/> 
  <parameter name="email" value="an-email-id"/> 
  <classes>
    <class name="packagename.ClassName"/>
  </classes>
</test>

</suite>

答案 1 :(得分:0)

我找到了解决我问题的方法请告诉我是否有更有效的方法..我有userd @参数(thanx optimist_creeper)和在testng.xml中我创建了不同的测试

<?xml version="1.0" encoding="UTF-8"?>

            <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
            <suite name="Suite">
            <test name="Chrome_test">
            <parameter name="Browser" value="chrome"></parameter>
            <parameter name="email" value="a"></parameter>
            <classes>
                <class name="selenium.mail.gmail.BabyTest">
                    <methods>
                        <include name="A" />
                        <include name="B" />
                        <exclude name="C" />
                    </methods>
        </class>
    </classes>
</test> <!-- Test -->

<test name="FF_test">
    <parameter name="Browser" value="Firefox"></parameter>
    <parameter name="email" value="b"></parameter>
    <classes>
        <class name="selenium.mail.gmail.BabyTest">
            <methods>
                <exclude name="C" />
            </methods>
        </class>
    </classes>
</test>


<test name="IE_test">
    <parameter name="Browser" value="IE"></parameter>
    <parameter name="email" value="c"></parameter>
    <classes>
        <class name="selenium.mail.gmail.BabyTest">
            <methods>
                <include name="A" />
            </methods>
        </class>
    </classes>
</test>

抱歉错误的缩进,正确缩进的代码未正确显示。