接口测试总结

一:get和post区别

  • 作用:get 获取资源 post 创建资源
  • 请求主体: get 无请求主体 post 有请求主体
  • 幂等性:get 幂等 post 非幂等
  • 缓存: get可以缓存 post 一般不缓存
  • 历史记录和书签: get 可存放 post 不可
  • 安全性 get 低 post 高

二:http状态码

2XX,表示请求被正确处理
200:请求被正确处理
204:请求被受理但无资源返回
206:客户端只请求资源的一部分

  • 3XX,表示需要进一步操作(重定向)
    301:永久性重定向
    302:临时重定向
    303:与302类似,只希望客户端在请求一个URI时,能通过GET方法重定向到另一个URI上
    304:发送附带条件的请求时,条件不满足时返回,与重定向无关
    307:临时重定向,与302类似,只是强制要求使用POST方法
  • 4XX,一般都是客户端相关问题
    400:请求报文语法有误,服务器无法识别
    401:请求需要认证
    403:请求的对应资源禁止访问
    404:服务器找不到对应资源
  • 5XX,一般是服务器端相关问题
    500:服务器内部错误
    503:服务器正忙

三:怎么设计接口测试用例

主要从三方面切入:入参,返回值,业务逻辑
正常验证:
输入有效的入参,检查接口返回的响应结果,和接口文档是否一致,还要考虑一下,数据库的增删改查是否正确
异常验证:
输入无效的入参,检查接口返回错误的结果或错误提示信息
比如:入参的长度,类型,必填,空值,边界值等
业务场景
以用户场景为基础,验证接口间的参数传递和业务流程是否能够正常流转,比如合规部用户登录-》新建保司-》商务部用户登录-》确定是否与该保司合作,使得业务流程形成闭环
这个阶段的用例复杂度比较高,需要非常熟悉业务与接口之间的关系,同时也是接口测试的核心且最有价值的部分
其他方面测试:
1容错能力:大容量数据、频繁请求、重复请求(订单)
2.性能:对接口模拟并发测试,逐步加压,分析瓶颈点
3.安全性:构造恶意的字符请求,如sql注入,敏感信息、业务逻辑

四:如何做接口测试?

1.从开发人员获取接口文档,检查接口文档的格式内容等是否完备,包括:URL、请求方法、Header、入参、返回值、示例Demo等。
2.根据接口文档设计并编写接口用例,尽可能覆盖多种功能场景
3.选择接口测试工具,我们公司是用的postman
4.在测试过程中,验证接口的输入参数和返回值是否符合预期,例如状态码,提示信息,关键字等是否正确
5.深入了解接口的实现逻辑,并进行全面测试,包括正常情况下和异常情况下的测试,以确保接口在各种情况下都能正常工作
6.梳理接口上下游调用链,一个接口可能会调用其他接口,也有可能被其他接口调用,接口与接口之间,具有千丝万缕的依赖关,要确保接口之间能顺利调用
7.关注接口的安全性和性能,例如对于访问量较大的接口通过压力测试来检查接口的响应时间和稳定性
8.开始做接口自动化,用于回归、冒烟测试等场景。
9.如果发现接口有问题,及时提交给开发人员,并跟踪问题的解决情况,同时编写测试报告,总结测试结果和经验教训
10.也可以阅读开发的源码,对业务逻辑实现了解更加深入,推荐两个工具:
java覆盖率工具 jacoco,这里可以用来统计代码覆盖率
代码静态扫描 sonar,主要是用来检测代码编写是否规范

五:为什么要做接口测试

现在的项目一般都是前后端分离的,前端主要负责展示页面给用户看结果或输入,而后端则是处理具体的业务逻辑,所以我们需要通过接口测试来验证后端的功能是否正常,特别是在调用其他公司的接口时,更需要从接口层面进行验证;接口测试也可以更早介入到测试中,发现底层的问题,从而降低修复成本;另外,安全性也是一个重要的考虑因素,因为前端页面容易被工具绕过登录限制,所以后端要做一些限制来保障安全性,接口测试可以验证这些限制是否有效

你可能感兴趣的:(功能测试)