数据驱动是做自动化测试中很重要的一部分,数据源的方案也是百花八门了,比如利用外部文件,直接在@DataProvider中写死等等,我们今天介绍一下利用enum来做数据源,先来看一下enum的写法:

public enum TestEnum {

	OK(200,"success"),
FAIL(300,"fail"); private int retCode; private String msg; private TestEnum(int retCode, String msg) {
this.retCode = retCode;
this.msg = msg;
} public int getRetCode() {
return retCode;
} public void setRetCode(int retCode) {
this.retCode = retCode;
} public String getMsg() {
return msg;
} public void setMsg(String msg) {
this.msg = msg;
} @Override
public String toString() {
return retCode+" "+msg;
} public static void main(String[] args) {
TestEnum[] vs = TestEnum.values();
System.out.println(vs[0].getMsg());
System.out.println(TestEnum.OK.getRetCode());
System.out.println(TestEnum.OK.getMsg());
System.out.println(TestEnum.valueOf("OK").getMsg());
} }

上述代码复制后,可直接运行!

上述代码可理解为有两组数据,每一组里面有两个数据,一个是retCode,一个是msg。现在把enum给加载到@DataProvider中去:

public class TestDataDemo {

	@DataProvider
public Object[][] dataProvider(){
TestEnum[] vs = TestEnum.values();
Object[][] obj = new Object[vs.length][];
for (int i = 0; i < vs.length; i++) {
obj[i] = new Object[]{vs[i]};
}
return obj;
} @Test(dataProvider="dataProvider")
public void testDemo(TestEnum te){
System.out.println(te.getRetCode());
System.out.println(te.getMsg());
} }

上述的代码也是可以直接运行的,运行完后,结果如下:

aaarticlea/png;base64,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" alt="" />

利用上述方式最大的好处是把数据本身与持久化的对象放在一个地方了,且调用时,也很方便。

其实,利用外部文件的话,也可以数据对象持久化,只是原来的示例中我放在了一个Map中,同样可以把Map改为一个pojo对象,调用时也会很方便。

至于哪种方式好,大家自行的去体验,自行的去实现吧!

JAVA利用enum结合testng做数据驱动示例的更多相关文章

  1. java分享第十八天( JAVA利用enum结合testng做数据驱动示例)

    数据驱动是做自动化测试中很重要的一部分,数据源的方案也是百花八门了,比如利用外部文件,直接在@DataProvider中写死等等,我们今天介绍一下利用enum来做数据源,先来看一下enum的写法: p ...

  2. JAVA 利用MyEclipse结合TestNG测试框架进行单元测试

    利用MyEclipse结合TestNG测试框架进行单元测试   by:授客 QQ:1033553122 测试环境 jdk1.8.0_121 myeclipse-10.0-offline-install ...

  3. java 接口测试,使用excel做数据驱动(二)

    承接上篇. 改变我们的测试驱动方式,灵活设置测试用例. 数据驱动测试 数据驱动测试的核心是: 测试数据与测试脚本分离,实现测试脚本参数化, 提高测试脚本的可重用性.在自动化功能测试中如果灵活使用数据源 ...

  4. java利用注解及反射做通用的入参校验

    一.原理: 1.做一个field注解,注解有两个参数:是否必填.toString之后的最大长度 2.对某个request类(或基类),使用注解标记某个字段的校验详情 3.通用的static方法,利用反 ...

  5. Excel作为数据源TesTNG做数据驱动完整代码

    说明:EXCEL 支持xls 和xlsx 俩种格式 : 已经过测试 ! package main.java; import org.apache.poi.ss.usermodel.*; import ...

  6. java结合testng,利用XML做数据源的数据驱动示例

    testng的功能很强大,利用@DataProvider可以做数据驱动,数据源文件可以是EXCEL,XML,YAML,甚至可以是TXT文本.在这以XML为例: 备注:@DataProvider的返回值 ...

  7. Testng之使用@DataProvider注解做数据驱动【转】

    原文:http://www.jianshu.com/p/8e333a0ec42a 前两天学了一下@DataProvider,今天有时间总结一下.testng很强大,提供了很多注解,其中利用@DataP ...

  8. Selenium+java - 使用csv文件做数据驱动

    前言 早期我们使用TestNG 来做数据驱动进行测试,测试数据是写在测试用例脚本中.这会使得测试脚本的维护工作量很大.因此我们可以将测试的数据和脚本分开. 而我们经常使用会使用csv文件来做为导出数据 ...

  9. Testng使用方法示例

    TestNG TestNG是一个测试框架,灵感来自JUnit和NUnit.但引入了下面这些新的功能,使它更强大和更容易使用. 注解: 可在任意大的线程池运行您的测试(所有方法在它们自己的线程内,一个线 ...

随机推荐

  1. Til the Cows Come Home

    Description Bessie is out in the field and wants to get back to the barn to get as much sleep as pos ...

  2. 传值 属性 block 单例 协议

    界面传值 四种传值的方式 1.属性传值(从前往后) 步骤: 1.属性传值用于第一个界面向第二个界面传值 2.明确二者联系的桥梁,也就是触发跳转的地方 3.明确传输的值,类型是什么 4.在第二个视图控制 ...

  3. 关于CSS3的代码总结(部分)

    1. 构造样式表:selector{ Property:value; Property:value; } Selector是需要更改样式的元素,property为css属性的名称,value应用的哪种 ...

  4. Apache+PHP配置运行环境(getenv的使用)

    在开发与上线等多个环境下,常量的配置一般不同,例如开发环境和生产环境的一些域名肯定不一样,为了保证代码上线就能运行,要求在代码运行开始的时候对不同的环境区分这些常规变量. 找到Apache目录下虚拟主 ...

  5. oracle添加和查看注释

    1.给表加注释 COMMENT ON TABLE TABLENAME IS '用户表'; 2.查看表的COMMENT SELECT * FROM USER_TAB_COMMENTS WHERE TAB ...

  6. Troubleshoot Refused VNC Connection in CentOS 7

    Troubleshoot Refused VNC Connection in CentOS 7 Posted on March 15, 2015 by Istvan Szarka — 2 Commen ...

  7. RaisingStudio.SessionFactory 发布 0.1版

    功能描述: 1. 支持Orchard中方便使用自定义数据库连接. 2. 连接信息可配置. 用法: 1. 构造函数中添加IRepositoryFactory引用 private readonly IRe ...

  8. python chardet简单应用

    python的字符串编码识别模块(第三方库): 官方地址: http://pypi.python.org/pypi/chardet   import chardet import urllib   # ...

  9. VS下的Resharper插件报错“Can not resolve symbol”的解决办法

    今天准备写代码的时候,发现代码中大片的红色,就像下面的图片一样.但是编译一下,也可以重新生成,运行也没有问题.于是就看了下svn上是不是有人改了哪里,发现也没有问题.于是又清理了下解决方案,再次生成, ...

  10. jboss7(01)服务器开启和关闭命令

    1.简单开启服务器的命令:进入到 bin 目录下,输入 ./standalone.sh 命令. 这种开启服务器的方式有个缺点,当你的命令窗口关闭后,服务自动down了 2.让服务器开启后在后台运行:进 ...