testNG @DataProvider参数化

testNG @DataProvider参数化是用java 代码写个用@DataProvider标记专门为测试方法提供参数的方法。该方法上用@DataProvider(name = "data")标记,需要被执行的测试用例方法需要用@Test()标识且在@Test中添加dataProvider 参数,如@Test(dataProvider = "data")  。

注意事项:@DataProvider中的name参数的值 必须和@Test中的dataProvider  参数的值一致。如果不一致 则无法调用到@DataProvider(name = "data")参数化方法中的参数。

@DataProvider参数化不止可以直接用于单个测试用例上,也可以用过方法名运用于多个测试用例上。

java代码如下

 2
 3 import org.testng.annotations.DataProvider;
 4 import org.testng.annotations.Test;
 5
 6 import java.lang.reflect.Method;
 7
 8 public class DataProviderTest {
 9     /**
10      * 直接运行在测试用例上的参数化
11      *
12      * @param name
13      * @param age
14      */
15     @Test(dataProvider = "data")
16     public void testDataProvider(String name, int age) {
17         System.out.println("name=" + name + "  age=" + age);
18     }
19
20     @DataProvider(name = "data")
21     public Object[][] ProviderData() {
22         Object[][] o = new Object[][]{
23                 {"zhangshan", 10},
24                 {"lisi", 20}
25
26         };
27         return o;
28     }
29
30
31     @Test(dataProvider = "methodData")
32     public void test1(String name, int age) {
33         System.out.println("test11111方法" + "name=" + name + "  age=" + age);
34
35     }
36
37     @Test(dataProvider = "methodData")
38     public void test2(String name, int age) {
39         System.out.println("test22222方法" + "name=" + name + "  age=" + age);
40
41     }
42
43     /**
44      * DataProvider 运用在方法上,根据方法名进行参数化
45      *
46      * @param method
47      * @return
48      */
49     @DataProvider(name = "methodData")
50     public Object[][] methodDataTest(Method method) {
51         Object[][] result = null;
52         if (method.getName().equals("test1")) {
53             result = new Object[][]{
54                     {"zhangshan", 10},
55                     {"lisi", 20}
56             };
57         } else if (method.getName().equals("test2")) {
58             result = new Object[][]{
59                     {"wangwu", 10},
60                     {"molin", 20}
61             };
62         }
63         return result;
64     }
65 }

运行结果如下

  C:\Users\Administrator\.IntelliJIdea2019.3\system\temp-testng-customsuite.xml

test11111方法name=zhangshan  age=10

test11111方法name=lisi  age=20

test22222方法name=wangwu  age=10

test22222方法name=molin  age=20

name=zhangshan  age=10

name=lisi  age=20

===============================================
Default Suite
Total tests run: 6, Failures: 0, Skips: 0
===============================================

Process finished with exit code 0

原文地址:https://www.cnblogs.com/linxinmeng/p/12593512.html

时间: 2024-08-07 02:50:03

testNG @DataProvider参数化的相关文章

TestNG的参数化测试、共享线程池配置、参数默认值配置

在使用TestNG进行测试时,经常会使用到一些参数化配置,比如数据库.连接池.线程池数, 使用TestNG的参数@Parameter注解进行自动化读取 使用多线程的方式运行测试代码配置: 在'<suite>'标签中配置data-provider-thread-count="20" Java代码: /** * * <p> * Title: TestngParameters * </p> * * <p> * 参考配置文件testng-para

testNG中dataprovider使用的两种方式

testNG的参数化测试有两种方式:xml和dataprovider.个人更喜欢dataprovider,因为我喜欢把测试数据放在数据库里. 一.返回类型是Iterator<Object[]>,不用管有多少组测试数据,可以抽取出来以map的id为参数作为公用的提取数据方法. @DataProvider(name="loginData") private Iterator<Object[]> LoginDataProvider() throws IOExcepti

JUnit 4 与 TestNG 对比

原文出处: 付学良的网志 原文出处2: http://www.importnew.com/16270.html -------------------------------------------- Junit 4 和 TestNG 都是 Java 方面非常流行的单元测试框架.在功能上两个框架都非常类似.到底哪个比较好?在Java项目中我们应该选择哪个框架? 下图将会对Junit 4 和 TestNG 做个功能特征的对比. 注解支持 Junit 4 和 TestNG 在注解方面的实现非常相似.

TestNG单元测试

1 . 简介 1.1 TestNG是什么? 1) TestNG是一个测试框架,其灵感来自JUnit和NUnit的,但引入了一些新的功能,使其功能更强大,使用更方便. 2) TestNG是一个开源自动化测试框架;TestNG表示下一代. TestNG是类似于JUnit(特别是JUnit 4),但它不是一个JUnit扩展.它的灵感来源于JUnit.它的目的是优于JUnit的,尤其是当测试集成的类. 3) TestNG的创造者是Cedric Beust(塞德里克·博伊斯特) 4) TestNG消除了大

JUnit 4 Vs TestNG比较

JUnit 4和TestNG都是Java中非常受欢迎的单元测试框架.两种框架在功能上看起来非常相似. 哪一个更好? 在Java项目中应该使用哪个单元测试框架? 下面表中概括了JUnit 4和TestNG之间的功能比较.如下图所示 - 1. 注释支持 注释/注解支持在JUnit 4和TestNG中是非常类似的. 特点 JUnit 4 TestNG 测试注释 @Test @Test 在套件中的所有测试运行之前运行 - @BeforeSuite 在套件中的所有测试运行之后运行 - @AfterSuit

TestNg注解使用

1.TestNG常用注解 @Test 标记一个类或方法作为测试的一部分 @BeforeMethod 注解的方法将在每个测试方法运行之前运行 @AfterMethod 注解的方法将在每个测试方法运行之后运行 @BeforeClass 注解的方法将只运行一次,在当前类中所有方法运行之前调用 @AfterClass 注解的方法将只运行一次,在当前类中所有方法运行之后调用 @BeforeSuite 标记的方法:在某个测试套件(suite)开始之前运行 @AfterSuite标记的方法:在某个测试套件(s

TestNG单元测试与使用详解

TestNG的基本注解与执行顺序 在类里编辑程序时,在@Test后面,摁 alt+回车,选择对应的插件,可以把目前用到的插件自动添加到 pom.xml 文件中,如下面的testng,每摁一次,就多添加一次 当使用的类里,用到的方法没有导入类包时,可以在 类的大括号 后面,摁 alt+回车 ,可以自动导入目前的类中,需要用到的类包,如 import org.testng.annotations.Test; 1.注解实战BeforeMethod和AfterMethod @BeforeMethod,在

testng使用详解

一.testng 介绍 TestNG 是一个测试框架,其灵感来自 JUnit 和 NUnit,但同时引入了一些新的功能,使其功能更强大,使用更方便. TestNG 设计涵盖所有类型的测试:单元,功能,端到端,集成等,它需要 JDK5 或更高的 JDK 版本. 详细使用说明请参考官方链接:https://testng.org/doc/index.html 在 maven 中引入依赖: <dependency> <groupId>org.testng</groupId> &

TestNG官方文档中文版(2)-annotation(转)

1. 介绍    TestNG是一个设计用来简化广泛的测试需求的测试框架,从单元测试(隔离测试一个类)到集成测试(测试由有多个类多个包甚至多个外部框架组成的整个系统,例如运用服务器). 编写一个测试的过程有三个典型步骤: * 编写测试的 业务逻辑并在代码中插入TestNG annotation    * 将测试信息添加到testng.xml文件或者build.xml中    * 运行TestNG 在欢迎页面上可以找到快速入门示例. 下面是这篇文档使用的概念: * suite由xml文件描述.它包