什么是接口测试?接口测试的流程步骤

简介: 什么是接口测试?接口测试的流程和步骤。什么是接口测试&怎么测?接口测试的好处;怎么做好接口测试;接口测试的原理;接口测试流程&用例设计;接口测试数据&脚本;接口测试常用测试工具;接口测试报告


一、什么是接口测试&怎么测

一般像系统内的组件接口数据交互测试、不同系统与系统之间的接口数据交互测试等,我们都可以称之为接口测试 。

那么我们应该怎么来测试接口呢?

    1. 接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性、性能方面的要求
    2. 测试的重点是要检查数据的交换,传递和控制管理过程,及系统间的相互逻辑依赖关系
    3. 简单的说:“接口测试是就是在没有前端页面或者前端还没完成的情况下,代替前端页面或者第三方使用者,来验证后端的接口实现是否符合接口规范。”

    二、接口测试的好处

    可以测试出接口的稳定和正确性, 可以抛开前端的影响,迅速定位到后端的缺陷,提升测试的效率

      1. 可以发现很多在页面上操作发现不了的bug
      2. 检查系统的异常处理能力
      3. 检查系统的安全性、稳定性
      4. 前端随便变,接口测好了,后端不用变
      5. 可以为项目带来高效的缺陷监测和管理能力,可以提高软件的整体质量
      6. 项目越复杂,系统越庞大,接口测试使用的越频繁,效果越明显

      三、怎么做好接口测试

      官方套话:

        1. 接口正确性是多方保障,都要进行测试
        2. 根据接口类型,合理进行测试分析,注意测试重点
        3. 注重业务逻辑分析,包括正向反向操作
        4. 注重数据文件检查

        实质需要关注的点:

          1. 测试接口的功能实现,检查不同参数的数据请求时,接口返回的数据与预期结果,也就是接口文档的规范的一致性
          2. 测试接口的健壮性(容错性), 比如说传递的数据类型是错误或者传递空数据,特殊字符等与接口规范不符的,能否正常处理
          3. 测试接口参数的边界值,比如说传递的数据超出了接口规范规定的范围,或者数据足够大或者为负数时能否正常处理
          4. 测试接口的性能,接口处理和响应数据的时间,并发性等等,当然这牵扯到代码实现的优化,需要与开发人员沟通
          5. 测试接口的安全性,比如登录的用户名密码等敏感数据是否明文显示,需要权限的接口是否暴露在外面

          image.gif编辑

          四、接口测试的原理

          通过模拟客户端 or Web浏览器向服务器发送请求,服务器接收请求后对接收到的数据做处理,同时向客户端返回应答,我们模拟的客户端,接收到返回的数据后再对数据进行判断 ,如何判断呢?

          1、判断请求: 是否正确, 系统默认的请求成功,会返回200状态码, 假如请求错误返回400, 404, 500等状态码

          2、判断数据: 返回数据的正确性与完整性

          3、判断安全性: 接口一般不会随意暴露在网上被其他人任意调用,一般我们会对接口做出一些限制,比如请求次数、请求频率限制等

          简单来说:找个能联网的工具根据接口文档,向接口服务器发送请求,获取响应,检查响应是否符合接口文档的规范

          image.gif编辑

          五、接口测试流程&用例设计

          5.1.接口文档分析

          分析测试需求、接口api文档,熟悉接口业务,接口地址,鉴权方式,入参, 出参,错误码等。。。

          接口文档分析4要素:

            1. 接口地址URL
            2. 请求方式:get、post、delete、put、option。。。;
            3. 请求参数:URL后追加的参数、请求body参数、请求头header参数;
            4. 响应结果:判定接口测试是否通过的一个标准

            5.1.1.接口构成图解

            image.gif编辑

            5.2.制定接口测试计划

            测试计划就是功能测试计划基本一样就是知名的5w1h

              1. why—为什么要进行接口测试;
              2. what—测试接口包括哪些;
              3. when—测试接口不同阶段的起止时间;
              4. where—相应接口文档,接口缺陷的存放位置,测试环境等;
              5. who—项目有关人员组成,哪些接口分配给哪些人;
              6. how—使用哪些测试工具以及测试方法进行测试。

              5.3.编写接口测试用例&评审

              接口用例思路:

              1.正例:输入正常入参,接口能够成功返回数据,一般考虑下面几个方面

                     所有必填参数

                     全部参数(必填参数+选填参数)

                     参数组合(必填参数+某些选填参数)

              2.反例:

                    鉴权反例:鉴权码为空,鉴权码错误,鉴权码过期 ......

                     参数反例:参数为空、null,少参,多参,参数类型异常,参数长度异常(边界值)

                     错误码覆盖:根据业务而定的

                     其他错误场景:接口黑名单,接口调用次数限制,分页场景                                  

              5.3.1.接口测试用例参考模板

              image.gif编辑

              5.4.接口测试数据&脚本

              参考文档主要以目前整理出来的Postman工具相关的介绍文档,后续会不断更新其他工具相关的

              5.4.1.公共数据维护

              1.接口用例编写中有很多重复的数据定义,每个接口都需要写服务器地址,不同的环境下服务器地址不一样,引用【环境变量】减少服务器地址改变,对接口的修改;

              2.不同的接口之间,会有参数传递的现象,也就是下一个接口要使用上一个接口某个字段的返回值,此时,则可以引用【全局变量】来解决

              1-2 参考文档:

              Postman的环境变量和全局变量_沫沫18S的博客-CSDN博客

              3.某些接口,某些字段每次均需生成新的值,可使用前置脚本设置【自定义的全局变量】供接口调用时引用

              3 参考文档:

              Postman内置动态参数和自定义的动态参数以及断言方式_沫沫18S的博客-CSDN博客_postman内置参数

              5.4.2.多组数据测试

              某些接口测试时,需要正/反向同时执行多组测试数据,创建一个CSV或JSON文件,将相关测试数据均添加进去,读取该文件,这就是著名的数据驱动测试DDT

              参考文档:

              Postman之CSV或JOSN文件实现数据驱动_沫沫18S的博客-CSDN博客

              5.4.3.接口依赖处理

              参考文档:

              Postman接口关联使用正则表达式提取_沫沫18S的博客-CSDN博客

              Postman的环境变量和全局变量_沫沫18S的博客-CSDN博客

              5.4.4.接口结构判断:断言

              参考文档:

              Postman常用断言功能解析_沫沫18S的博客-CSDN博客

              5.5.接口测试执行

              使用接口测试工具执行接口测试

              常用测试工具列表

                • Postman:post/get接口实战、接口自动化
                • JMeter:post/get接口实战、接口性能、接口自动化
                • Pytest+Request+Allure+即时报警:接口自动化
                • Fiddler/Charles:接口抓包工具
                • Loadrunner:接口性能
                • Wireshark:可抓各种协议的包进行分析
                • Soapui:既可以做接口测试也可以做自动化测试
                • Apifox、poster、Httprequester。。。

                5.6.接口测试报告

                Postman+Newman+Jenkins或Jmeter+Jenkins实现持续集成,输出测试报告并且发送邮件

                参考文档:

                Postman之Newman命令行运行脚本生成HTML报告_沫沫18S的博客-CSDN博客

                Postman批量运行_沫沫18S的博客-CSDN博客

                目录
                相关文章
                |
                16天前
                |
                监控 JavaScript 测试技术
                postman接口测试工具详解
                Postman是一个功能强大且易于使用的API测试工具。通过详细的介绍和实际示例,本文展示了Postman在API测试中的各种应用。无论是简单的请求发送,还是复杂的自动化测试和持续集成,Postman都提供了丰富的功能来满足用户的需求。希望本文能帮助您更好地理解和使用Postman,提高API测试的效率和质量。
                66 11
                |
                2月前
                |
                JavaScript 安全 编译器
                TypeScript 与 Jest 测试框架的结合使用,从 TypeScript 的测试需求出发,介绍了 Jest 的特点及其与 TypeScript 结合的优势,详细讲解了基本测试步骤、常见测试场景及异步操作测试方法
                本文深入探讨了 TypeScript 与 Jest 测试框架的结合使用,从 TypeScript 的测试需求出发,介绍了 Jest 的特点及其与 TypeScript 结合的优势,详细讲解了基本测试步骤、常见测试场景及异步操作测试方法,并通过实际案例展示了其在项目中的应用效果,旨在提升代码质量和开发效率。
                52 6
                |
                2月前
                |
                敏捷开发 安全 测试技术
                掌握单元测试:确保代码质量的关键步骤
                单元测试是确保代码质量、提升可维护性和可靠性的重要手段。本文介绍了单元测试的基本概念、重要性及最佳实践,包括测试驱动开发(TDD)、保持测试独立性、使用断言库和模拟依赖等,旨在帮助开发者掌握单元测试技巧,提高开发效率。
                |
                2月前
                |
                JSON Java 测试技术
                SpringCloud2023实战之接口服务测试工具SpringBootTest
                SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
                69 3
                |
                3月前
                |
                机器学习/深度学习 监控 计算机视觉
                目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
                本文介绍了如何使用YOLOv7进行目标检测,包括环境搭建、数据集准备、模型训练、验证、测试以及常见错误的解决方法。YOLOv7以其高效性能和准确率在目标检测领域受到关注,适用于自动驾驶、安防监控等场景。文中提供了源码和论文链接,以及详细的步骤说明,适合深度学习实践者参考。
                666 0
                目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
                |
                3月前
                |
                JSON 算法 数据可视化
                测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
                这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
                82 0
                测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
                |
                3月前
                |
                机器学习/深度学习 并行计算 数据可视化
                目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
                这篇文章介绍了如何使用PaddleClas框架完成多标签分类任务,包括数据准备、环境搭建、模型训练、预测、评估等完整流程。
                189 0
                |
                3月前
                |
                机器学习/深度学习 数据采集 算法
                目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
                这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
                72 0
                目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
                |
                3月前
                |
                机器学习/深度学习 XML 并行计算
                目标检测实战(七): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
                这篇文章介绍了如何使用YOLOX完成图像目标检测任务的完整流程,包括数据准备、模型训练、验证和测试。
                269 0
                目标检测实战(七): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
                |
                3月前
                |
                监控 测试技术 数据安全/隐私保护
                新产品测试流程如何?
                新产品测试流程如何?【10月更文挑战第10天】
                135 0