TestNG实战自动化测试框架——参数化测试

本文介绍如何使用TestNG进行参数化测试,包括通过XML配置文件和@DataProvider注解使用数组传递参数的方法。展示了如何为不同测试方法提供动态数据集。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过xml文件或数组给接口赋参数,看接口的运行情况。

一、通过xml来赋值

新建ParameterTest类

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

public class ParameterTest {
	@Test
	@Parameters({"name","age"})
	public void parameterTest1(String name,int age) {
		System.out.println("name = "+name +";"+"age ="+age);
	}
}

新建xml配置文件配置参数(这里classes里要按格式class、parameter标签来配置)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="parameter">
	<test name="param">
		<classes>
			<class name="com.course.testng.ParameterTest"/>
			<parameter name="name" value="zhangsan" />
			<parameter name="age" value="10"/>
		</classes>
	</test>
</suite>

TestNG运行结果

在这里插入图片描述

二、添加@DataProvider注解使用数组传参

package com.course.testng;
//这里的反射方法是为了下文运行时获得方法名比较赋不同的参数
//思想类似单例懒汉式
import java.lang.reflect.Method;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

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("test111方法的name="+name+";age="+age);
	}
	
	@Test(dataProvider="methodData")
	public void test2(String name,int age) {
		System.out.println("test222方法的name="+name+";age="+age);
	}
	
	@DataProvider(name="methodData")
	public Object[][] methodDataTest(Method method){
		Object[][]result=null;
		
		//这里比较方法名传不同的参数
		if(method.getName().contentEquals("test1")) {
			result= new Object[][] {
				{"zhangsan",20},
				{"lisi",25}
			};
		}
		else if(method.getName().contentEquals("test2")) {
			result= new Object[][] {
				{"wangwu",50},
				{"zhaoliu",60}
			};
		}
		return result;
	}
}

运行方法test1

在这里插入图片描述

运行方法test2

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值