Testng数据驱动之DataProvider的使用方式

这篇具有很好参考价值的文章主要介绍了Testng数据驱动之DataProvider的使用方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

DataProvider

@DataProvider 注解帮助我们编写数据驱动的测试用例。@DataProvider 注解使我们能够通过传递不同的数据集多次运行测试方法。

以下是@DataProvider 注解支持的属性列表:

属性 描述
name 此数据提供者的名称。如果未提供,则此数据提供程序的名称将自动设置为方法的名称。带注解的方法必须返回一个 Object[][],其中每个 Object[] 都可以分配测试方法的参数列表。
parallel 如果设置为true,则使用此数据提供程序生成的测试将并行运行。默认值为false

dataProvider作为数据提供者只能返回Object[][]和Iterator<Object[]>类型的数据。

Iterator<Object[]>类型
package com.testng.example.testngdemoone;

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


public class TestngDemoOneApplicationTest {

    @DataProvider(name="dataProvider-testcase")
    public Iterator<Object[]> dataProvider() {
        List<Object> testCasePaths = new ArrayList<Object>();
        testCasePaths.add("test1");
        testCasePaths.add("test2");
        testCasePaths.add("test3");
        testCasePaths.add("test4");
        List<Object[]> path = new ArrayList<>();
        for(Object obj:testCasePaths){
            path.add(new Object[]{obj});
        }
        return path.iterator();
    }

    @Test(dataProvider = "dataProvider-testcase")
    public void testDataProviderIterator(String path) {
        System.out.println(path);
    }
}

测试执行结果

test1
test2
test3
test4

===============================================文章来源地址https://www.toymoban.com/news/detail-775957.html

Default Suite

Total tests run: 4, Passes: 4, Failures: 0, Skips: 0

===============================================

Object[][]类型
package com.testng.example.testngdemoone;

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


public class TestngDemoOneApplicationTest {
    @Test
    void contextLoads() {
        System.out.println("this is the first surccess test");
    }

    @Test
    void errorTests() {
        System.out.println("this is the first error test");
        assert false;
    }
    @DataProvider(name="dataProvider-testcase")
    public Iterator<Object[]> dataProvider() {
        List<Object> testCasePaths = new ArrayList<Object>();
        testCasePaths.add("test1");
        testCasePaths.add("test2");
        testCasePaths.add("test3");
        testCasePaths.add("test4");
        List<Object[]> path = new ArrayList<>();
        for(Object obj:testCasePaths){
            path.add(new Object[]{obj});
        }
        return path.iterator();
    }

    @Test(dataProvider = "dataProvider-testcase")
    public void testDataProviderIterator(String path) {
        System.out.println(path);
    }

    @Test(dataProvider = "data")
    public void dataProviderTest(String name, int age, String hobby) {
        System.out.println(name + " " + age + " " + hobby);
    }

    @DataProvider(name = "data")
    Object[][] getData(){
        return new Object[][] {
                {"June", 22, "Sing"},
                {"Jack", 22, "Football"},
                {"Duke", 22, "Chess"}
        };
    }
}
package com.testng.example.testngdemoone;

import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


public class TestngDemoOneApplicationTest {

    @Test(dataProvider = "data")
    public void dataProviderTest(String name, int age, String hobby) {
        System.out.println(name + " " + age + " " + hobby);
    }

    @DataProvider(name = "data")
    Object[][] getData(){
        return new Object[][] {
                {"June", 22, "Sing"},
                {"Jack", 22, "Football"},
                {"Duke", 22, "Chess"}
        };
    }
}

June 22 Sing
Jack 22 Football
Duke 22 Chess

===============================================
Default Suite

Total tests run: 3, Passes: 3, Failures: 0, Skips: 0

===============================================

到了这里,关于Testng数据驱动之DataProvider的使用方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何使用jenkins、ant、selenium、testng搭建自动化测试框架

    如果在你的理解中自动化测试就是在eclipse里面讲webdriver的包引入,然后写一些测试脚本,这就是你所说的自动化测试,其实这个还不能算是真正的自动化测试,你见过每次需要运行的时候还需要打开eclipse然后去选择运行文件吗?没有吧!应为那样真的是很low的!下面说一下

    2024年04月16日
    浏览(30)
  • TestNG中的@BeforeSuite注释

    目录 什么是@BeforeSuite注解? @BeforeSuite带注释的方法何时执行? @BeforeSuite annotation有什么用? 所以,是时候集思广益了 我们可以在一个类中使用多个@BeforeSuite注释方法吗? @BeforeSuite放在超类上时如何工作? TestNG是Java生态系统中许多人使用的流行测试框架。它提供了各种注释

    2024年01月24日
    浏览(39)
  • testNG-@Factory详解+demo

    @Factory注解从字面意思上来讲就是采用工厂的方法来创建测试数据并配合完成测试,其主要应对的场景是:对于某一个测试用例或方法,我们需要输入多个测试数据进行测试,并且这些测试数据可以是有一定关系(可以通过代码控制),此时,我们就可以把自动化或者手动测试时

    2024年02月10日
    浏览(23)
  • 如何在TestNG中忽略测试用例

    在这篇文章中,我们将讨论如何在TestNG中忽略测试用例。TestNG帮助我们忽略使用@Test注释的情况,我们可以在不同的级别上忽略这些情况。 首先,只忽略一个测试方法或测试用例。 第二,忽略一个类及其子类中的所有情况。 第三个是,忽略包及其子包中的所有情况。 下面我

    2024年04月27日
    浏览(17)
  • 如何从命令行运行testng.xml?

    目录 创建一个新的java项目并从命令行运行testng.xml 使用命令行运行XML文件 从命令行运行现有maven项目的XML文件 在这篇文章中,我们将使用命令行运行testng.xml。有多种场景需要使用命令行工具运行testng.xml。也许您已经创建了一个maven项目,现在想使用命令行运行testng.xml文件,

    2024年01月17日
    浏览(21)
  • IDEA+Java+selenium+Testng安装配置

    http://chromedriver.storage.googleapis.com/index.html 引入jar包: maven仓库地址:https://mvnrepository.com/ 搜索selenium-java、testng pom.xml加入: Test.java:

    2024年02月01日
    浏览(24)
  • TestNG和Junit5测试框架梳理

    1. testNG优势 2. testNG常用注解 3. testNG中@Test有哪些参数 举例: 4.  在 TestNG 中实现参数化测试 以Yaml文件为例 创建一个Yaml文件testdata.yaml 获取测试数据及使用 5. 执行顺序 6. testNG断言 7. 失败重试 1. junit5的优势 2. 常用注解 3. TestFactory使用示例 TestFactory其实就是参数化执行同一条

    2024年02月13日
    浏览(26)
  • 从零开发短视频电商 单元测试(TestNG)

    官网 : https://testng.org/doc/index.html TestNG是一个基于 Java 的开源测试框架。该框架受到 JUnit 和 NUnit 的启发,但引入了一些新功能,使其更强大且更易于使用。您可以在测试实施期间创建 HTML 报告。它具有分组测试、注释、参数化等功能,有助于更快地创建测试。 TestNG的核心特

    2024年02月15日
    浏览(22)
  • Java的单元测试Testng和mock

    目录 单元测试重要性 TestNG TestNG官网介绍 TestNG教程 TestNG注解: 

    2024年02月07日
    浏览(29)
  • Appium Android ——利用 TestNG 并行执行用例

    目录 前言: 一、测试类  二、连接两个 Android 设备或启动两个虚拟机 三、项目路径下新建两个 testng.xml 四、开启两个 appium server 

    2024年02月16日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包