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

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


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

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

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

    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博客

                目录
                相关文章
                |
                1月前
                |
                弹性计算 监控 测试技术
                弹性计算的测试流程
                弹性计算的测试流程
                18 0
                |
                2月前
                |
                安全 测试技术 持续交付
                接口自动化测试的基本流程
                接口自动化测试的基本流程
                |
                3月前
                |
                存储 缓存 监控
                Web 应用程序性能测试核心步骤
                Web 应用程序性能测试核心步骤
                |
                1月前
                |
                存储 安全 测试技术
                软件测试:确保代码质量与用户满意度的关键步骤
                软件测试:确保代码质量与用户满意度的关键步骤
                |
                2月前
                |
                测试技术
                接口测试测试用例编写注意事项
                接口测试测试用例编写注意事项
                |
                4天前
                |
                API 开发者
                免费邮箱API发送邮件测试调试的方法和步骤
                本文介绍了使用免费邮箱API如aoksend、Mailgun、SMTP2GO发送邮件的测试调试步骤:选择合适的API,获取访问密钥,配置邮件参数,编写测试代码,调试和测试,查看发送日志,以及优化改进邮件发送功能,确保其稳定运行。
                |
                1月前
                |
                安全 测试技术
                【软件设计师备考 专题 】软件测试的原则与方法:确保软件质量的关键步骤
                【软件设计师备考 专题 】软件测试的原则与方法:确保软件质量的关键步骤
                41 0
                |
                1月前
                |
                安全 测试技术 API
                |
                1月前
                |
                敏捷开发 Devops 测试技术
                深入理解与应用单元测试:提升软件质量的关键步骤
                【2月更文挑战第19天】 本文将深入探讨单元测试在软件开发周期中的作用,分析其对提升软件质量的重要性,并介绍如何有效地实施单元测试。通过阐述单元测试的基本原理、关键实践和常见问题解决策略,旨在为软件开发者提供一套系统的单元测试方法论,以支持更健壮、可靠和可维护的软件产品的构建。
                |
                2月前
                |
                人工智能 安全
                外汇MT5/MT4交易所平台系统开发测试版/案例设计/策略步骤/功能需求/源码程序
                When developing the MT5/MT4 foreign exchange documentary trading system, the following functions and intelligence can also be considered:

                热门文章

                最新文章