接口设计和测试关注点

接口测试,主要是对接口文档、功能、可用性、安全等方面做验证。拿到一个接口验证的任务,我们需要从哪些方面来分析并开展测试呢,这里做个简要描述,实际测试时可以做个比对。

一、接口设计基础思考点:

类别描述
可读性restful和语义化
安全API签名认证、网络限制、加密传输、黑白名单等
健壮性尽量返回清晰的错误码列表(比如资源notfound错误码设计为404xx)
可用性设置限流、降级、超时等机制
性能集群部署,负载均衡、容器化
监控记录请求日志、打点上报、错误告警,便于定位问题
易用性接口选填必填项描述准确,提供文档、测试工具
兼容性不同版本号来区分新老接口,分清接口职责,当老接口参数过于复杂时,考虑提供新版本接口。

二、接口测试常用关注点:

大类小类描述
静态测试文档检查接口文档描述是否清晰(接口命名规则、入参描述及限制、返回字段及不同入参的返回描述、接口安全限制、接口性能描述、接口版本号信息等)、接口功能描述等
代码检查代码扫描、代码白盒阅读和分析
动态测试安全性验证签名验证、接口数据加密验证、大数据包请求破坏性、请求端白名单准入、sql注入等;
健壮性验证接口请求模拟各种能触发失败请求的数据,检查接口对应返回码有哪些,验证各种失败条件下,返回码是否正常、接口重入;各种异常请求数据,字段长度超长、超过边界值、请求端异常断开、请求重复提交(幂等测试)等
性能验证高并发验证,检查接口耗时、单一服务器及集群下的并发承载能力、高并发下的限流处理机制、异常下的降级处理、后端服务超时,导致接口处理超时等场景;
监控及报送正常、异常情况下日志记录,监控数据的采集和报送功能是否正常;
向前兼容接口改版,正常情况下,应该不影响原有调用方调用,做到向前兼容,需要验证向前兼容功能是否正常。
基本功能验证主要是接口提供基本功能,需要全流程走一遍,使用方法主要是边界值、逻辑判断、

三、接口测试工具:

Fiddler:Fiddler被称为抓包神器,它是一个http协议调试代理工具,它能够记录互联网之间的http协议通信,可以设置断点,查看所有“进出”Fiddler的数据(如cookie,html,js,css等文件)。Fiddler 要比其他的网络调试器要更加简单,操作便捷,格式显示清晰,这个工具也可以进行接口测试,但是不能写断言,只能用composer构造HTTP请求,需要人工确认返回结果的正确性。

Postman:是谷歌开发的一款接口测试软件,它使用简单,功能强大,能够发送任何类型的HTTP请求 (GET, HEAD, POST, PUT..),可以进行文件上传、响应验证、变量管理、环境参数管理,还可以批量管理和运行用例,并支持用例导出、导入,可以进行接口的自动化测试。缺点是自动化断言不够强大,不能和jenkins、代码管理库进行持续集成测试。

soapUI:是一个开源测试工具,通过soap/http来检查、调用,实现Web Service的接口和性能测试。该工具既可作为一个单独的测试软件使用,也可利用插件集成到Eclipse,maven2.X,Netbeans 和intellij中使用。soapUI pro是soapUI的商业非开源版本,实现的功能较开源的soapUI更多,国外公司使用较多。

Jmeter:是一款100%纯Java编写的免费开源工具,主要用来做性能测试,但也可以做接口测试,配合后置处理器与断言,可以满足大部分的接口测试场景,JMeter提供了BeanShell编程能力,可以写出比较灵活的测试脚本,通过jmeter+ant+jenkins可以实现接口和性能自动化测试。

代码实现接口测试:

java代码实现接口测试:java可以通过httpclient.jar包,利用JUnit或者TestNG这样的单元测试工具进行用例编写,结合jenkins实现接口持续集成测试。

python代码实现接口测试:python可以利用强大的第三方库Requests实现接口用例编写,结合unittest单元测试框架,生成测试报告,也可以和jenkins做持续集成测试。

推荐方式:初期,可以使用工具来做接口测试;后期,还是通过代码实现来做接口自动化测试,实现了接口测试框架后,后续接口测试可以非常自由 ,并且可以快速开展持续集成测试,更自由和灵活。

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值