如何理解TestNG参数化
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,本篇内容介绍了"如何理解TestNG参数化"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一组参数化数
千家信息网最后更新 2025年01月19日如何理解TestNG参数化
本篇内容介绍了"如何理解TestNG参数化"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
一组参数化数据
定义参数化数据,代码如下:
@DataProvider public Object[][] dp1() { return new Object[][] { new Object[] { 1, 1,0 }, new Object[] { 2, 1,1 }, new Object[] { 2, 1,2 }, }; }
用例中使用参数化数据(dp1定义的),代码如下:
@Test(dataProvider = "dp1") public void f1(Integer n1, Integer n2, Integer n3) { Integer result=n2+n3; assertEquals(n1,result); }
多组参数化数据
在一个测试类中,可以定义多组参数化数据(参数化数据个数不同,dp1三个,dp2二个),代码如下:
@DataProvider public Object[][] dp2() { return new Object[][] { new Object[] { 1, 1}, new Object[] { 2, 1}, new Object[] { 2, 1}, }; }
用例中使用参数化数据(dp2定义的),代码如下:
@Test(dataProvider = "dp2") public void f2(Integer n1, Integer n2) { assertEquals(n1,n2); }
测试方法通过DataProvider引用
我们可以自定义一些方法,对外部文件进行读取,然后把读取的数据作为参数在TestNG中引用,具体方法如下:
写一个读取各类文件的方法(txt、excel、db)具体代码就不给出了,但是一定注意方法的返回值必须是Object[][](关于操控excel的知识会在后面的文章中介绍)
public Object[][] readfile(String p_file){ return new Object[][] {{ 1, 1},{ 1, 2}}; }
在@DataProvider修饰的方法中调用该方法(也可以直接实现)
@DataProvider(name = "dp_func") public Object[][] testData(Method testMethod) { return readfile(""); }
用例中使用参数化数据(dp_func),代码如下:
@Test(dataProvider = "dp_func") public void f3(Integer n1, Integer n2) { assertEquals(n1,n2); }
完整代码
import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import static org.testng.Assert.assertEquals; import java.lang.reflect.Method; public class NewTest { @DataProvider public Object[][] dp1() { return new Object[][] { new Object[] { 1, 1,0 }, new Object[] { 2, 1,1 }, new Object[] { 2, 1,2 }, }; } @DataProvider public Object[][] dp2() { return new Object[][] { new Object[] { 1, 1}, new Object[] { 2, 1}, new Object[] { 2, 1}, }; } @DataProvider(name = "dp_func") public Object[][] testData(Method testMethod) { return readfile(""); } //读取各类文件,返回值是Object[][] public Object[][] readfile(String p_file){ return new Object[][] {{ 1, 1},{ 1, 2}}; } @Test(dataProvider = "dp1") public void f1(Integer n1, Integer n2, Integer n3) { Integer result=n2+n3; assertEquals(n1,result); } @Test(dataProvider = "dp2") public void f2(Integer n1, Integer n2) { assertEquals(n1,n2); } @Test(dataProvider = "dp_func") public void f3(Integer n1, Integer n2) { assertEquals(n1,n2); } }
运行测试用例,可以看到用例成功地进行了参数化,f1执行了3次,f2执行了3次,f3执行了2次,如下图所示:
"如何理解TestNG参数化"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
参数
数据
代码
方法
文件
知识
测试
内容
文章
更多
不同
实用
成功
学有所成
接下来
三个
个数
困境
实际
对外部
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
单位的网不能访问服务器
自学的网络技术
聊城安卓软件开发
qq飞车服务器爆满是怎么回事
sql2000数据库文件
淘宝双十一配备多少服务器
关于网络安全宣传活动的作文
微信登陆显示服务器繁忙
精美又简单的网络安全手抄报
360网络安全ai
浪潮服务器故障
网络安全知识回家多选
数据库第二版上机答案
存时间序列的数据库
站群服务器为什么这么便宜
北京常见软件开发价目表
网络安全的监督管理 适用
兰石爱特工业互联网科技分公司
服务器错误无法下载app
德宏软件开发学费
软件开发工具的使用规范
出租服务器有什么用
钦州计算机网络技术大学
上海用什么打车软件开发
伟通讯联网络技术有限公司
网络安全的教育目的
教育系统网络安全保障总结
中经网软件开发公司是国企吗
保护网络安全培养专业人才
c excel数据库建立