JAVA利用enum结合testng做数据驱动示例
数据驱动是做自动化测试中很重要的一部分,数据源的方案也是百花八门了,比如利用外部文件,直接在@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做数据驱动示例的更多相关文章
- java分享第十八天( JAVA利用enum结合testng做数据驱动示例)
数据驱动是做自动化测试中很重要的一部分,数据源的方案也是百花八门了,比如利用外部文件,直接在@DataProvider中写死等等,我们今天介绍一下利用enum来做数据源,先来看一下enum的写法: p ...
- JAVA 利用MyEclipse结合TestNG测试框架进行单元测试
利用MyEclipse结合TestNG测试框架进行单元测试 by:授客 QQ:1033553122 测试环境 jdk1.8.0_121 myeclipse-10.0-offline-install ...
- java 接口测试,使用excel做数据驱动(二)
承接上篇. 改变我们的测试驱动方式,灵活设置测试用例. 数据驱动测试 数据驱动测试的核心是: 测试数据与测试脚本分离,实现测试脚本参数化, 提高测试脚本的可重用性.在自动化功能测试中如果灵活使用数据源 ...
- java利用注解及反射做通用的入参校验
一.原理: 1.做一个field注解,注解有两个参数:是否必填.toString之后的最大长度 2.对某个request类(或基类),使用注解标记某个字段的校验详情 3.通用的static方法,利用反 ...
- Excel作为数据源TesTNG做数据驱动完整代码
说明:EXCEL 支持xls 和xlsx 俩种格式 : 已经过测试 ! package main.java; import org.apache.poi.ss.usermodel.*; import ...
- java结合testng,利用XML做数据源的数据驱动示例
testng的功能很强大,利用@DataProvider可以做数据驱动,数据源文件可以是EXCEL,XML,YAML,甚至可以是TXT文本.在这以XML为例: 备注:@DataProvider的返回值 ...
- Testng之使用@DataProvider注解做数据驱动【转】
原文:http://www.jianshu.com/p/8e333a0ec42a 前两天学了一下@DataProvider,今天有时间总结一下.testng很强大,提供了很多注解,其中利用@DataP ...
- Selenium+java - 使用csv文件做数据驱动
前言 早期我们使用TestNG 来做数据驱动进行测试,测试数据是写在测试用例脚本中.这会使得测试脚本的维护工作量很大.因此我们可以将测试的数据和脚本分开. 而我们经常使用会使用csv文件来做为导出数据 ...
- Testng使用方法示例
TestNG TestNG是一个测试框架,灵感来自JUnit和NUnit.但引入了下面这些新的功能,使它更强大和更容易使用. 注解: 可在任意大的线程池运行您的测试(所有方法在它们自己的线程内,一个线 ...
随机推荐
- 水果项目第1集-想法>需求->功能->数据库设计->类设计
懒,懒人,我是个懒人. 懒人想做点事,总是拖拖拉拉,迟迟没有开始. 很久很久以前,就想做属于自己的产品,但是至今还没有一个属于自己的产品. 两年前,终于想好,要做一个网上卖水果的系统,手机上点点,水果 ...
- NSArray其中的方法--遍历,
1. ForLoop, For - in, enumerateObjects这个三个方法的区别: 遍历一个数组用For-in最快. 通过Value查询index的时候, 面对大量的数组推荐使用 enu ...
- UWP好文
如何将GridViewEX升级到UWP(Universal Windows Platform)平台 : http://blog.csdn.net/powertoolsteam/article/deta ...
- Android开源框架——Picasso
开篇——介绍Picasso (Picasso是什么?)Picasso:A Powerfull Image Downloading and Caching Library for Android,即An ...
- java web 资源地址写法
前提:假设web应用test(工程名) webapps下面有一资源文件test.html 规则:在获取资源时一般使用的是相对路径,以符号/开头,而 / 代表什么取决于这个地址给谁使用.服务器使用时,/ ...
- Titanium系列--利用js动态获取当前时间
动态获取时间: //显示时间 function getDateTime() { var now = new Date(); var year = now.getFullYear(); var mont ...
- vijos1144(小胖守皇宫)
也是ural1039 描述 huyichen世子事件后,xuzhenyi成了皇上特聘的御前一品侍卫. 皇宫以午门为起点,直到后宫嫔妃们的寝宫,呈一棵树的形状:某些宫殿间可以互相望见.大内保卫森严,三步 ...
- mvc-servlet---ServletConfig与ServletContext对象详解(转载)
ServletConfig与ServletContext对象详解 一.ServletConfig对象 在Servlet的配置文件中,可以使用一个或多个<init-param>标签为s ...
- SQL SERVER 2014 安装图解(含 SQL SERVER 2014 安装程序共享)
开篇介绍 2015年1月1日,新的一年开始之际,本来应该好好做点有意义的事情来跨个年的.结果,老习惯 - 睡觉之前一定要折腾一下电脑,说干就干,给新到的 DELL 电脑装虚机,下载 SQL SERVE ...
- C++ WIN32控制台异常关闭回调函数
/* This is an example of the SetConsoleCtrlHandler function that is used to install a control handle ...