如何理解TestNG参数化
发表于:2024-10-10 作者:千家信息网编辑
千家信息网最后更新 2024年10月10日,本篇内容介绍了"如何理解TestNG参数化"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一组参数化数
千家信息网最后更新 2024年10月10日如何理解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安全错误
数据库的锁怎样保障安全
智优库存管理软件开发工具
网络安全审查技术认证
服务器售后工程师
把聊天记录保存到数据库中
设计一个网络安全协议
sql数据库将二列合一列
软件开发技术线路如何写
示范区网络安全宣传
网络安全工程牛人上班视频
mysql数据库只读
java高效操作数据库
北京拉卡拉网络技术有
怎么看手机服务器的id
万方数据库怎么找教案
软件开发项目考核责任书
手机出现服务器升级
数据库修改初始空间语句
湖南居家智慧养老软件开发
魅来网络技术服务
数据库备份怎么被
鹤舞云天服务器人多吗
黑色沙漠都有哪些服务器
苏州软件开发工资待遇
域服务器 改ip
怎么清除表格里面的数据库
零基础学电脑网络安全
洛阳网络软件开发
工会网络安全宣传单
服务器防止暴力破解
苏州阿里云服务器首页