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

原创 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开关的设置。




























            
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

接口测试总结

关于接口测试的总结   1.       接口测试:是测试系统组件间接口的一种测试。主要用于检测外部系统于系统之间以及系统内部各个子系统之间的交互点。重点测试的时数据的交换,传递和控制管理过程,以...

接口测试之数据建模

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

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

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

接口测试的两种方法

其实无论用那种测试方法,接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程。   方法...

java JDK 环境参数设置

  • 2012-05-08 11:02
  • 32KB
  • 下载

JVM环境参数配置

java -Xmx3550m -Xms3550m -Xmn2g -Xss128k  -Xmx3550m:设置JVM最大可用内存为3550M。  -Xms3550m:设置JVM促使内存为35...

SDK安装环境参数更改

  • 2013-12-29 21:09
  • 677B
  • 下载

Maven多环境参数管理

通常一个Maven工程在整个软件过程中,需要运行在多个不同的环境下,在本地、测试、验证、生产等环境上都需要配置不同的数据库链接或者其他资源。如何方便的管理我们的多环境配置,并应用于持续交付环境中呢?在...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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