基于数据驱动的接口测试框架设计

首先简要介绍一下我们的系统。我们整个系统中,可视化的应用(web,APP)都是基于后端的saasapi。我们的saasapi采用rest风格,采用http协议,以json作为数据载体。所以,对后端的api接口进行测试很有必要。

 

用到的技术包括:maven、junit4,json开发包、hudson、jdbc等等。

 

1.项目目录结构(采用maven)




 

 

2.用例组织和规则约束

用例组织

例如:trackSegListWithTime(轨迹分段)、segTrackData(轨迹点显示)接口属于我的车模块。那么就在src/test/java源文件夹下面建立一个我的车模块包com.cpsdna.saasapi.test.vehicle,然后新建测试接口的类:    TrackSegListWithTimeTest.java、 SegTrackDataTest.java

 

命名规则

测试类命名规则:接口名称+Test,例如SegTrackDataTest.java(轨迹点显示接口的测试类)

方法命名规则:test+方法意义,例如testSegTrackDataWithNoObjId(以没有objId参数方式测试segTrackData接口 )

 

3.测试方法步骤 

1.声明参数变量

2.从数据库读取该参数变量的值

3.组装发送的json报文,把参数变量加入其中

4.向服务器端发送json

5.接收从服务器端返回的信息(json或者其它)

6.通过json开发包(json-lib,gson)解析从服务器返回的json

7.添加断言(预期的结果和解析的实际结果是否一致)

 

下面给一个实例:



 

4.数据驱动

1.为什么要用数据驱动?

测试数据(参数变量)和测试行为(逻辑代码)分离。这些对于用例的健壮性,复用性都是至关重要的。

2.为什么存在数据库?

易于管理,存储方便。(后期我还建一个用例数据管理的web平台)

 

5.如何保证取到所想要的参数值?

类名+方法名+参数名,3个组合必须系统唯一,以此来保证调用正确的参数

SELECT PARAM_VALUE FROM params WHERE CLASS_NAME = '"+className+"' AND METHOD_NAME='"+methodName+"' AND PARAM_NAME='"+paramName+"' AND `STATUS` = '0'

 

6.测试数据管理

1.通过数据库软件直接操作(存在误操作风险)

2.通过开发的测试数据管理平台管理



 

 

7.持续集成

对于庞大的测试用例,一个个执行或者通过测试套件执行,很明显不方便。我们通过和hudson集成,把写好的代码提交到svn后,maven和hudson配合,对接口测试用例进行持续集成。这样也好得到测试报告。



 

 

上面就是我对于基于数据驱动的接口测试框架设计的一些实践。比较大概的写出来,具体还有很多很多的细节,以及在这开发之中遇到的困难,如果有机会再慢慢道来。平凡的技术做踏实的事情。

 

供大家参考。转载请注明出处,谢谢。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值