TestNg 参数化测试-DataProvider参数化

发表于:2018-9-05 10:53

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:裴敏儿    来源:博客园

#
TestNG
分享:
  首先利用@DataProvider(name = "XXX")的属性,将name的值XXX 传递给 @Test(dataProvider = "XXX")
  看以下一段代码:
  package com.course.testng.parameter;
  import org.testng.annotations.DataProvider;
  import org.testng.annotations.Test;
  import java.lang.reflect.Method;
  public class DataProviderTest {
  @Test(dataProvider = "data")
  public void testDataProvider(String name,int age){
  System.out.println("name = " + name + ",age = " + age);
  }
  @DataProvider(name = "data")
  public Object[][] providerData(){
  Object[][] o = new Object[][]{
  {"zhangsan",10},
  {"lisi",20},
  {"wangwu",30}
  };
  return o;
  }
  @Test(dataProvider = "methodData")
  public void test1(String name,int age){
  System.out.println("test1:  name = " + name + ",age = " + age);
  }
  @Test(dataProvider = "methodData")
  public void test2(String name,int age){
  System.out.println("test2:  name = " + name + ",age = " + age);
  }
  @DataProvider(name = "methodData")
  public Object[][] methodDataTest(Method method){
  Object[][] result = null;
  //method.getName().equals("方法名字,和方法名字匹配传值")
  if (method.getName().equals("test1")){
  result = new Object[][]{
  {"zhangsan",20},
  {"lisi",25}};
  }else if(method.getName().equals("test2")){
  result = new Object[][]{
  {"wangwu",50},
  {"zhaoliu",60}
  };
  }
  return result;
  }
  }

  结果:
  test1: name = zhangsan,age = 20
  test1: name = lisi,age = 25
  test2: name = wangwu,age = 50
  test2: name = zhaoliu,age = 60
  name = zhangsan,age = 10
  name = lisi,age = 20
  name = wangwu,age = 30
  ===============================================
  Default Suite
  Total tests run: 7, Failures: 0, Skips: 0
  ===============================================
  Process finished with exit code 0

   上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • lixz1
    2018-9-20 10:07:05

    如果传递的是个json格式的参数怎么办?参数中还有好几个参数

  • lixz1
    2018-9-20 10:04:51

    如果参数是json格式的串,里面还有好几个参数怎么办?比如{"zhangsan",10},zhangsan如果不是具体的值是个json怎么处理?

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号