接口测试之数据环境参数准备

原创 2013年12月05日 23:44:35

本文主要讨论接口测试中数据准备我的一些感悟。

1. 接口测试的背景

目前我们的用例通过CSV脚本进行维护的,因此我们测试基类里编写了一个DataProvider。具体定义如下:

@DataProvider(name = "CsvDataProvider")
public Iterator<?> getDataProvider(Method method) {}

测试类继承测试基类,测试类示例如下

 @Test(dataProvider = "CsvDataProvider", description = "InsertWhiteListItem正常场景测试")
 public void insertWhiteListItem(final String caseid, final String description,
                                    final String type, final String content, final String riskType,
                                    ) {
	WhiteListItem white =JsonHelper.jsonToObject(whiteItem, WhiteListItem.class);
	boolean result = whiteListService.insertWhiteListItem(white);
}

此类对应的CSV文件如下所示:

caseid	description	type	content	  	riskType
001	插入不存在记录	MAC	00247E036940	ACCOUNT_RISK
002	插入已存在的记录	MAC	00247E036941	ACCOUNT_RISK
003	插入无效记录	MAC	00247E036942	ACCOUNT_RISK
004	插入过期记录	MAC	00247E036943	ACCOUNT_RISK

在真正的测试执行时,每次会读取一条CSV记录,每个字段做为一个参数(String类型)传给@Test下面的测试方法insertWhiteListItem。

2.参数构造方法
a. 简单对象直接传入
接口定义如下:

WhiteListItem queryWhiteItem(String type, String content, String riskType);

测试代码:

WhiteListItem white = whiteListService.queryWhiteItem(type, content, riskType);

适用范围:内置类型或java.lang下相关的类。
b. 复杂对象使用Json 类型转化
接口定义如下:

boolean insertWhiteListItem(WhiteListItem whiteListItem)
转换代码:
WhiteListItem white =JsonHelper.jsonToObject(whiteItem, WhiteListItem.class);
适用方法:构造JSON串比较麻烦,要先通过JsonHelper.objectToString拿到一个复杂对象的基本对象信息,再根据这个基本对象信息改为我们需要的类。适用于复杂查询对象。
c. 复杂对象使用Factory方法构造
接口定义如下:
boolean insertWhiteListItem(WhiteListItem whiteListItem)
测试脚本:
WhiteListItem white = WhiteListHelper.factory(type, content, riskType);

适用范围:如果一个对象大部分属性都可以是相同的,只有部分属性起关键作用,建议使用这个方法。

d.通过反射构建对象。

3.数据准备

a. 关系型存储的准备,包括DB及MILE。

对于单一表的数据,目前能够做到只需要指定一个CSV文件(通常是DB查询结果导出为CSV文件),实现自动导入功能。

对于多表关联的数据,可以做到多个指到的CSV文件自动导入。

根据数据类型区分,

配置类数据,我们不能直接删除,否则会影响系统运行,建立直接采用DB中的数据,可以插入新记录。

业务类数据,我们可以采用先删除后插入的操作,保证数据的正确性。

b. K-V型的存储,包括Tair及Hbase。

目前也是通过CSV来构造所需要的Key及Value,然后存储入对应的存储中。

c.多份存储的准备。

一份数据既存储在DB中,又存储在Hbase中,此时需要同时调用上面讲到的两种数据准备方案。

d. 关于事务控制

一直对此块有个幻想,就是支持事务控制,比如说在用例执行前设置一个SavePoint,然后执行数据准备,测试执行,结果校验过程,测试完成后执行下CallBack,数据库中的数据自动清除,实现到框架当中。接口测试就做到了悄悄的走,不带走一片云彩的状态。这就是极致的追求。

4. 环境准备

a. 缓存数据的推送。

b. DRM开关的设置。



























                    

TestNg参数化测试之读取csv文件

1、新建csv文档,准备好测试数据在当前工程的resources目录下,新建文件名为add的csv文档打开csv文件,构造n1、n2、r1三个参数数据 2、新建一个CSVData类用来获取csv文件...
  • testdeveloper
  • testdeveloper
  • 2016年07月06日 20:35
  • 2077

TestNg的工厂测试引用@DataProvider数据源----灵活使用工厂测试

@Factory的高级用法 @Factory和@DataProvider相结合的方式
  • wanghantong
  • wanghantong
  • 2014年10月23日 11:09
  • 10436

数据驱动测试二:使用TestNG和CSV文件进行数据驱动

1、使用@DataProvider注解定义当前方法中的返回对象CSV文件(存放测试数据)作为测试脚本的测试数据集进行数据驱动。 2、使用带缓冲区的字符输入流BufferedReader读取文件内容 3...
  • heart_1014
  • heart_1014
  • 2016年07月24日 11:32
  • 2212

Selenium学习12--数据驱动csv

@DataProvider(name="testData") public static Object[][] words() throws Exception{ return get...
  • slowsnowscar
  • slowsnowscar
  • 2016年09月20日 23:36
  • 770

接口测试到底是什么?如何制造接口数据

接口测试其实很难界定,我之前理解接口测试虽然算不上白盒测试,但也至于黑河测试.后来跟我们一开发聊天,他说接口测试其实就是白盒的一部分. 后来又跟一阿里的大数据聊,他说接口测试属于(黑盒测试)功能测试...
  • Loadrunn
  • Loadrunn
  • 2017年03月08日 17:23
  • 1408

接口测试之数据建模

提到接口测试,用例其实就是围绕一堆测试数据来的,这样测试数据的设计就显得尤为重要,这也是考验测试工程师设计测试数据的能力,你是如何来规划你的测试数据?有没有进行建模后再执行?你的跑的那么多数据是否有意...
  • songer_xing
  • songer_xing
  • 2016年12月30日 17:11
  • 763

接口测试总结

本文主要分为两个部分:   第一部分:主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结两者之前的区别与联系。但该部分只交代了怎么做和如何做?并没有解释为什么要做?   第二部分...
  • jiary5201314
  • jiary5201314
  • 2016年05月16日 22:46
  • 40408

数据驱动测试二:使用TestNG和CSV文件进行数据驱动

1、使用@DataProvider注解定义当前方法中的返回对象CSV文件(存放测试数据)作为测试脚本的测试数据集进行数据驱动。 2、使用带缓冲区的字符输入流BufferedReader读取文件内容 3...
  • heart_1014
  • heart_1014
  • 2016年07月24日 11:32
  • 2212

TestNg参数化测试之读取csv文件

1、新建csv文档,准备好测试数据在当前工程的resources目录下,新建文件名为add的csv文档打开csv文件,构造n1、n2、r1三个参数数据 2、新建一个CSVData类用来获取csv文件...
  • testdeveloper
  • testdeveloper
  • 2016年07月06日 20:35
  • 2077

接口测试设置参数的方式-接口的参数是一个json长串

1.接口的参数是一个json长串 数据源的写法: @DataProvider(name = "data")  public static Object[][] dataObjects() thro...
  • xkhgnc_6666
  • xkhgnc_6666
  • 2015年11月11日 12:56
  • 1277
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:接口测试之数据环境参数准备
举报原因:
原因补充:

(最多只允许输入30个字)