数据驱动是做自动化测试中很重要的一部分,数据源的方案也是百花八门了,比如利用外部文件,直接在@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. Oracle DB 存储增强

    • 设置Automatic Storage Management (ASM)  快速镜像 再同步 • 使用ASM 首选镜像读取 • 了解可伸缩性和性能增强 • 设置ASM 磁盘组属性 • 使用SYSA ...

  2. JS实现隔行变色,鼠标移入高亮

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 31.0px Consolas; color: #2b7ec3 } p.p2 { margin: 0.0px ...

  3. 【洛谷 P1352】没有上司的舞会

    树形dp #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ; ...

  4. lua 入门学习

    -- 1.Hello world print( "--------------1--------------") print("Hello world"); - ...

  5. nodejs: C++扩展

    Nodejs的C++扩展首先保证nodejs和v8都正确安装 下载NodeJS源码,我的放在D盘. NodeJS的C++扩展要用VS2010开发,新建一个空的Win32控制台项目,右键——属性,在常规 ...

  6. Apache禁止目录访问的方法

    在学习ThinkPHP(3.2.3)的时候,公共文件夹.应用目录文件夹等都自带或者自动生成index.html的安全文件.但是ThinkPHP文件夹(核心包)却没有这样的设置.那么ThinkPHP核心 ...

  7. git以及git flow 的使用

    转载:http://selfcontroller.iteye.com/blog/996494 在这里主要讲一下我在项目中用到的关于gitflow的用法.   公司的项目中,专门有一台用来存放版本库的服 ...

  8. 第一个Struts1步骤

    一.前端 :登陆页面 index.jsp <%@ page language="java" import="java.util.*" pageEncodi ...

  9. 我的Linux随笔目录

    现在整理博客的时间少了,大多是在用为知笔记收藏和整理,一次集中发点Linux相关随笔整理和一个目录,是按时间顺序来的.每一篇都是自己用过之后整理的,应用场景已经尽可能的说明了,不明白的可以Q我,上班时 ...

  10. Ember.js系列文章

    JS前端框架之Ember.js系列文章 本文为文章索引,主要是罗列Ember.js的相关文章便于阅读. 相关演示代码:github for free. 基础篇 1. EmberJs之What|Why| ...