经伟

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1. 通过parameter传参

java代码部分:

import org.testng.annotations.Parameters;
import org.testng.annotations.Test;

public class ParameterizedTest1 {
    @Test
    @Parameters("myName")  //这里可以带多个参数,且参数名要和xml文件里的一致;但不必与parameterTest()方法里的参数名一致,需要与其参数顺序一致。
    public void parameterTest(String myName) {
        System.out.println("Parameterized value is : " + myName);
    }
}

XML数据文件部分:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">
    <test name="test1">
	<parameter name="myName" value="manisha"/> 
	<classes>
	    <class name="ParameterizedTest1" />
	    </classes>
    </test>
</suite>

 

2. 通过dataprovider传参

2.1 默认使用方法名作为dataprovider标识

public class DataProviderTest {
     
    @DataProvider
    public Object[][] providerMethod(Method method){
        Object[][] result = null;
        if(method.getName().equals("testmethod1")){
            result = {{,1}};
        }else if(method.getName().equals("testmethod2")){
            result = {{,2}};
        }return result;
    }
     
    @Test(dataProvider="providerMethod")
    public void testmethod1(int param){
        System.out.println("method1 received:"+param);
    }
     
    @Test(dataProvider="providerMethod")
    public void testmethod2(int param){
        System.out.println("method2 received:"+param);
    }
}

 

2.2 通过dataprovider制定name标识传参

public class DataProviderTest {
     
    @DataProvider(name="test"public Object[][] providerMethod(Method method){
        Object[][] result = null;
        if(method.getName().equals("testmethod1")){
            result = new Object[][]{new Object[]{1}};
        }else if(method.getName().equals("testmethod2")){
            result = new Object[][]{new Object[]{2}};
        }else{
            result = new Object[][]{new Object[]{3}};
        }
        return result;
    }
     
    @Test(dataProvider="test")
    public void testmethod1(int param){
        System.out.println("method1 received:"+param);
    }
     
    @Test(dataProvider="test")
    public void testmethod2(int param){
        System.out.println("method2 received:"+param);
    }
     
}

 

posted on 2015-09-09 11:59  经伟  阅读(1096)  评论(0编辑  收藏  举报