在业务系统常用测试方案中,有以下说明:

  (1. 单测在不同的团队和模块有不同的作法,如果QA太多的介入,则对QA coding能力要求较高,case的传承性也受到挑战

  (2. 业务模块接口测试主要关注接口请求参数与返回数据的正确性,以参数覆盖为测试等价类

  (3. 系统级case对web业务模块来说都是基于浏览器用户行为的,目前有selenium自动化,大部分是手工测试。

  从分层测试的特征,业务系统的结构出发,我们认为,接口测试的必要性包括:

  (1. 迭代开发模式中,接口测试可先于系统级测试提前进行,属于测试前置

  (2. 相比于基于浏览器客户端的系统级测试,接口测试更专注接口数据正确性,稳定性与可靠性的性价比高

  1.3.2 接口可测性

  接口在业务模块中的类型为典型的HTTP接口(Ajax,Dwr,Action…),也有Java类型的一些接口(RPC,RMI,SOAP),在可测性上具有一些共通特征:

  (1. 可自动化率高:接口总能通过相应的client来发送请求

  (2. 脱离RD代码依赖,只针对接口:属于黑盒测试范畴,难度较白盒低

  (3. 执行速度介于系统级与单测之间:对于业务模块来讲,脱离浏览器后的接口测试稳定性与效率都是大幅提升

  (4. 容易实现数据分离与数据驱动,容易抽取公共的框架性内容,降低case编写维护人员对coding的依赖

  2 轻量级测试框架itest

  itest是interface test接口测试框架的简称:支持基于网络通信的WEB UI接口自动化测试,支持HTTP,SOAP,RPC等几种常见协议,支持多种验证结果的模式,支持数据分离,主要的特征还是通过数据文件驱动测试执行,不需要编码实现测试用例。

  2.1 架构设计

  itest功能组成与基本处理流程如下图,以主要协议HTTP为例:

  2.3 结果验证

  结果验证按照业务系统的特征,现在支持以下几种:对接口返回的内容直接做对比验证;对数据库update后的内容做验证;将接口返回的json做处理后做验证。