快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

五大典型场景中的API自动化测试实践-创新互联

一、API 测试的基本步骤

通常来讲,API 测试的基本步骤主要包括以下三大步骤:

专业的建站公司,专做排名好的好网站,排在同行前面,为您带来客户和效益!创新互联为您提供品质好成都网站建设,五站合一网站设计制作,服务好的网站设计公司,负责任的成都网站制作公司!

1、准备测试数据;

2、通过通用的或自己开发的API测试工具发起对被测API的request;

3、验证返回结果的response。

常用的API测试工具有命令行工具cURL、图形界面工具Postman或SoapUI,支持API性能测试的JMeter等。

二、API复杂场景举例

通过使用基础的测试工具,可以做简单场景的API测试;而项目进行过程中,为了解决实际的一些问题,我们会设计更加复杂的测试场景,下面列举几个实际项目中的典型场景。

场景一:API串联调用

以协议支付为例,我们知道,三方公司接入网联后,用协议支付取代代扣,而协议支付的流程中需要用户输入银行返回的验证码完成绑卡。从接口层面上看,顺序是先调用协议签约API,返回状态成功且获取到短信验证码后,再使用此短信验证码作为输入参数调用代扣API。协议签约和代扣两个API是顺序调用,而且在两次调用中间有获取手机上的短信验证码,这些过程都需要通过程序自动化实现以提高效率。

场景二:API接口加密

为保证API接口安全,系统间和系统内模块间互相访问需要进行加密处理,常用的加密方式有DES、AES、RSA、MD5等,各系统的加密方式并不一样(接口调用方和接口提供方约定好即可),意味着API测试需要支持多种自动化加密方式程。某些系统还会返回加密的响应报文,也需要识别并解密。

场景三:异步API测试

异步API指请求发出后后收到一个同步响应,但并不是最终处理结果,最终结果通过回调或者主动查询获得。对于这样的API,同步响应的验证只是第一步,后续还得继续验证DB中的值、MQ中的值、以及异步回调是否成功等。对于异步回调,我们可以模拟回调地址来验证成功与否;而对于主动查询,我们就得通过查看DB中的状态值来验证了,但是查询到结果的时间点不确定,几分钟到几小时都有可能,这就得有一个定时DB查询任务去验证。

场景四:API测试中的外部依赖

APIA调用APIB且B不可用,此时如何测试APIA需要考虑。比如支付系统对三方支付通道、对银行的依赖,并不是所有的三方都支持测试环境,解决此问题的核心思路是搭建MockServer,而且尽量做到通用性,我们开发了一套Mock系统 -aMock,通过页面录入接口信息,保存在数据库内,通过Nginx访问配置好的Mock接口,后台统一处理请求信息,然后通过URL和报文特性去匹配特定的响应信息。

三、API测试平台

我们的API测试平台是要基于业务场景的,即要支持各业务的共性需求,又要针对不同业务的个性特点加以开发来丰富API测试能力;而且,对用例也要有很好的规划,结果有清楚的展示,测试平台架构如下图:

五大典型场景中的API自动化测试实践

BIT:业务接口测试(BusinessInterfaceTest)

SUT:被测系统(SystemUnderTest)

TestCaseManagement:测试用例管理,包括从测试用例到测试用例集,再到测试任务的数据关系的建立和维护。测试用例是最小单位,测试用例集是从某一维度对用例进行的归集,测试任务即测试执行,可立即触发也可定时执行,只能执行测试用例集。

Util:工具类封装,主要提供数据加解密,数据类型转换,配置文件读写,数据字典的缓存服务等。

Validator:接口响应字段和数据库字段的验证封装。

RiskManagement:风控处理,因为会涉及支付真实资金,需要内置风控规则来保证资金安全,风险可控。

Timer:定时任务服务,包括

  • 串联API用例中,前置用例的状态判断;

  • 异步API的数据库校验;

  • 超时API用例的失效状态判断;

  • 定时执行的任务计划。

MockServer:用例依赖的外部系统Mock服务。

Portal:API测试平台门户网站,包括测试用例的录入,维护,测试任务的执行,结果查看,导出等都通过门户进行操作。

DB:存储测试用例数据以及相应的测试任务、测试报告数据,还有项目配置等。

目前API测试平台上各项目维护用例总结1200多条,以回归用例为主,且还在不断增加中,随着用例的不断添加,平台也历经了一系列优化,下面就谈谈这个过程中的一些思考。

四、测试数据准备

对于大量API用例的执行,需要数据驱动测试,也就是说可以将测试数据和测试代码分离解耦,这样便于测试数据的维护同时也保证了数据的准确性,用例设计格式是这样

${accountName}
${accountNo}
${identNo}

分享文章:五大典型场景中的API自动化测试实践-创新互联
网址分享:http://6mz.cn/article/dgpsgo.html

其他资讯