接口测试在我们的项目实施过程中有着重要的意义,快速实施接口测试能够让项目组更早地发现问题,降低修复成本,缩短产品周期。为了提高系统接口测试的效率,我们提早介入项目开发周期开展接口测试实践,并探索适合异步模式系统交易的接口自动化测试方案。
所谓的异步交易模式,即从接收交易到返回应答存在一定等待时间,且返回应答时另立连接至对手方。要实现该模式下接口测试自动化必须实现非实时报文的自动化匹配与结果核验。按照自动化设计思路,我们把“大象放进冰箱”需要三步操作,报文自动化拼装、解析回执和报文匹配、应答报文结果验证。
下面从这三个步骤介绍我们的接口自动化工具。
一、报文自动化拼装
首先对常规案例表并进行扩展,在案例表中增加了需要修改的接口字段要素作为数据列,对不需要修改的要素封装写入配置文件中,减少数据显示的冗余感。测试执行时,只需在案例后的数据列填写相应要素取值,程序即逐条将测试数据写入报文模板,发送至MQ消息队列。
二、解析回执和报文匹配
基于异步交易处理模式,我们通过程序主服务从MQ消息队列中获取返回报文并保存在json文件中,测试人员通过程序客户端向主服务发送获取请求后,主服务将相应交易的回执报文下发,客户端对收到的回执报文进行解析,依据配文件中的交易匹配信息,将回执报文与发送报文进行关联。
三、应答报文结果验证
通过配置文件中的消息匹配规则,已经完成了请求报文和应答报文的对应。最后程序将应答报文中的交易结果与案例表中的预期结果进行核对,并写入案例表中的结果列,完成案例结果自动化验证。需要说明的是,该步骤对预期结果验证基准是返回报文中的结果码,因而编写案例过程中需要在预期结果填写预期返回结果码。
总结
通过该接口自动化工具,我们实现了异步模式交易的接口自动化测试,后续经过一定修改也可应用于同步交易的接口自动化。最后该工具还其备接口扩展、口报文积累等方面的功能。
一是基于不同接口交易使用配置文件。为了实现工具的可扩展性,支持差异化的接口交易模式,我们将不同接口报文的可修改要素、不同接口回执文与发送报文匹配字段、不同接口结果字段等信写入配置文件,方便后续要素调整和消息匹配机制调整。
二是将测试案例、测试数据与测试结果直接关联。依托于功能测试案例表,我们在案例中加入需要发送的接口数据,并实现回执报文的结果与预期结果自动核对,增加案例执行结果直观性的同时减少了人工匹配的工作量。
作者:农行研发中心 周茂林