testNG参数化

听说testNG比junit更好用,记录下

环境:springboot2.0+testNG6.8+maven+myeclipse

一 安装

(1)m'yeclipse安装testNg包,下载testNg包,拷贝到myeclpse目录下

(2)pom.xml导入testNg的依赖包

二,基本功能

(1)一些标注@BeforeClass,BeforeSuite,BeforeMethod,@Test(enabled=false)的执行顺序和junit基本一致的原理

(2)通过配置文件suite.xml执行suite,这里有个groups分组,包括类分组和方法分组,来灵活制定运行哪些测试case,也和原本预计的没啥区别

三,参数化

比较感兴趣额是参数化,2中常用的传参方式

1)suite.xml配置文件配置parameters,直接执行suite.xml

注意:这种方法必须执行xml文件,而不是java文件,否则报错

Parameter 'username' is required by @Test on method pamameterUse1 but has not been marked @Optional or defined

java代码

    @Parameters({ "username","password" })
    @Test
    public void pamameterUse1(String username,String password){
        System.out.println(username+password);
    }

suite.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<suite name="Suite">
      <test name="myparam">
            <parameter name="username" value="mili"/>
            <parameter name="password" value="123455"/>
            <classes>              
                <class name="com.summit.suite.Parameter"></class>
            </classes>
      </test>
</suite>

执行suite.xml结果

mili123455

===============================================
(2)@DaraProvider注解实现传参,可直接执行java文件

    @DataProvider(name="milidata")
    public Object[][] providerData(){
        return new Object[][]{{"wangli","33333"},{"lixiao","44444"}};
        
    }
    @Test(dataProvider = "milidata")
    public void testDataProvider(String name,String pwd){
        System.out.println(name+pwd);
    }

wangli33333
lixiao44444
PASSED: testDataProvider("wangli", "33333")
PASSED: testDataProvider("lixiao", "44444")

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

(3)日常中需要把参数和脚本分离开,testNg怎么做呢?

原文地址:https://www.cnblogs.com/xueli/p/10694205.html