什么是接口测试?为什么要做接口测试?

article/2025/11/9 15:58:47

 

1. 什么是接口测试?为什么要做接口测试?

  接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

由于如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,所以就要做接口测试。同时,接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。现在很多系统前后端架构是分离的,从安全层面来说,只依赖前端进行限制已经完全不能满足系统的安全要求(绕过前面实在太容易), 需要后端同样进行控制,在这种情况下就需要从接口层面进行验证。前后端传输、日志打印等信息是否加密传输也是需要验证的,特别是涉及到用户的隐私信息,如身份证,银行卡等。

2. 后端接口测试测什么?

  从下面这张图可以看出后端接口测试主要测了些什么:

3. 怎么做接口测试?

  一般情况下,由于我们项目前后调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送和接收。所以我们下面整理了一下使用Jmeter工具进行http接口测试。

  3.1 开发接口测试案例的整体方案

    第一步: 分析出测试需求,并拿到开发提供的接口说明文档;

      第二步: 从接口说明文档中整理出接口测试案例,里面要包括详细的入参和出参数据以及明确的格式和检查点;

      第三步: 和开发一起对接口测试案例进行评审;

      第四步: 结合开发库,准备接口测试案例中的入参和出参数据,并整理成csv格式的文件;

      第五步: 结合接口测试案例文档和csv格式的数据文档,做接口测试案例的自动化案例开发。

  3.2 接口自动化适用场景

    目前设计的自动化接口测试案例有两个运行场景:

    (1)测试前置、开发自测:一个新的自动化接口测试案例开发完成后,直接发给接口对应的开发,安排在开发本地环境执行,一旦开发确认完成接口开发,就开始执行接口测试案例,基本上可以实时拿到测试结果,方便开发快速做出判断。(开发本地运行的方式就是打开JMeter工具,导入JMX文件,开始执行可。)

    (2)回归测试:开发本地测试通过后,或整个需求手工测试通过后,把自动化的接口测试案例做分类整理,挑选出需要纳入到回归测试中的案例,在持续集成环境重新准备测试数据,并把案例纳入到持续集成的job中来,这些用于回归的接口测试案例需要配置到持续集成平台自动运行。

  3.3 接口测试环境准备

    Jdk1.6或以上:http://www.oracle.com/technetwork/java/javase/downloads/index.html

    Jmeter, 下载地址:http://jmeter.apache.org/download_jmeter.cgi

    插件的下载安装地址: http://www.jmeter-plugins.org/

  3.4 创建工程

    1.打开Jmeter:下载好Jmeter后,双击bin目录下的jmeter.bat文件:

    

    2.添加线程组:在“测试计划”上点击鼠标右键-->添加-->threads(Users)-->线程组,添加测试场景设置组件,接口测试中一般设置为1个“线程数”,根据测试数据的个数设定“循环次数”。

    

    3.添加“HTTP Cookie管理器”:

    

    4.添加“Http请求默认值”组件,当被测系统有唯一的访问域名和端口时,这个组件很好用:

    

    5.在“HTTP 请求默认值”组件配置页面,填写被测系统的域名和端口,http请求的实现包版本以及具体协议类型,线程组里的所有“HTTP Sampler”可默认使用此设置。

    

    6.在“线程组”里添加“HTTP 请求”的Sampler

    

    7.在HTTP请求设置页面,录入被测接口的详细信息,包括请求路径,对应的请求方法,以及随请求一起发送的参数列表:

    

    8.设置检查点:在被测接口对应的“HTTP 请求”上,添加“响应断言”:

    

    9.在设置页面上添加对相应结果的正则表达式存在性判断即可:

    

    10.添加监听器:方便查看运行后的结果

    

    运行结果:

    

  上述步骤完成了一个简单测试案例的创建,复杂测试案例均在此基础上扩展完成。使用Jmeter工具开发的接口测试案例,一个子系统建议放在同一个 “测试计划”中,流程测试可以通过“线程组”来区分,这样也便于设定不同的测试数据个数。比较独立的接口,可以统一放在一个线程组内,顺序完成测试。

  流程性接口的测试:如果要测试的接口可以组成一个流程,只需要顺序添加多个“HTTP 请求”的Sampler,各请求之间可以提取需要在上下文传递的数据作为参数,以保证流程中数据的一致性。

 

4. 接口测试持续集成

      对接口测试而言,持续集成自动化是核心内容,通过持自动化的手段我们才能做到低成本高收益。目前我们已经实现了接口自动化,主要应用于回归阶段,后续还需要加强自动化的程度,包括但不限于下面的内容:

  a) 流程方面:在回归阶段加强接口异常场景的覆盖度,并逐步向系统测试,冒烟测试阶段延伸,最终达到全流程自动化。

  b) 结果展示:更加丰富的结果展示、趋势分析,质量统计和分析等

  c) 问题定位:报错信息、日志更精准,方便问题复现与定位。

  d) 结果校验:加强自动化校验能力,如数据库信息校验。

  e) 代码覆盖率:不断尝试由目前的黑盒向白盒下探,提高代码覆盖率。

  f) 性能需求:完善性能测试体系,通过自动化的手段监控接口性能指标是否正常。

5. 接口测试质量评估标准

  a) 业务功能覆盖是否完整

  b) 业务规则覆盖是否完整

  c) 参数验证是否达到要求(边界、业务规则)

  d) 接口异常场景覆盖是否完整

  e) 接口覆盖率是否达到要求

  f)  代码覆盖率是否达到要求

  g) 性能指标是否满足要求

  h) 安全指标是否满足要求


http://chatgpt.dhexx.cn/article/JkflhERB.shtml

相关文章

接口测试怎么测?

通过性验证:首先肯定要保证这个接口功能是好使的,也就是正常的通过性测试,按照接口文档上的参数,正常传入,是否可以返回正确的结果。 参数组合:现在有一个操作商品的接口,有个字段type&#xf…

接口测试—详细

目录 1.为什么要做接口测试 2.最简单的接口长什么样 3.入门级接口测试工具:postman的安装 4.Json简介 5.3A原则 6.unittest框架 7.requests库 8.第一个用例 9.什么是mock server 10.使用flask实现mock server 总结 1.为什么要做接口测试 很多同学反馈现在面试的时候…

什么是接口测试?测试人员为什么要做接口测试?

前言 我们都知道学习软件测试需要学习很多的东西,那么今天呢笔者想详细的和大家来唠唠接口自动化测试,当然了这篇文章笔者主要讲的是接口测试的理论基础,这都是笔者个人的一些观点整理,要是有什么 不对的地方欢迎大家留言指正哈。…

什么是接口测试?怎样做接口测试?

扫盲内容: 1.什么是接口? 2.接口都有哪些类型? 3.接口的本质是什么? 4.什么是接口测试? 5.问什么要做接口测试? 6.怎样做接口测试? 7.接口测测试点是什么? 8.接口测试都要掌…

如何进行接口测试(一篇学会)

1、接口概念: 在计算机中,接口是计算机系统中两个独立的部件进行信息交换的共享边界。这种交换可以发生在计算机软、硬件,外部设备或进行操作的人之间,也可以是它们的结合。 2、接口测试的作用: 主要用于检测外部系…

「全网最细」接口测试怎么测?接口测试的流程和步骤

一、什么是接口测试 我们要想知道接口测试怎么做,首先要明白接口测试是什么?一般像系统内的组件接口数据交互测试、不同系统与系统之间的接口数据交互测试等,我们都可以称之为接口测试 ! 那么接口测试是怎么来测试接口的呢? 接口测试就是通过接口的不…

[全网最细]接口测试一般怎么测?接口测试的流程和详细步骤

一、什么是接口测试 我们要想知道接口测试怎么做,首先要明白接口测试是什么?一般像系统内的组件接口数据交互测试、不同系统与系统之间的接口数据交互测试等,我们都可以称之为接口测试 ! 那么接口测试是怎么来测试接口的呢? 接口测试就是通过接口的不…

接口测试一般怎么测?接口测试的流程和步骤

一、什么是接口测试 我们要想知道接口测试怎么做,首先要明白接口测试是什么?一般像系统内的组件接口数据交互测试、不同系统与系统之间的接口数据交互测试等,我们都可以称之为接口测试 ! 那么接口测试是怎么来测试接口的呢? 接口测试就是通过接口的不…

接口测试一般怎么测?接口测试的流程和步骤~

一、什么是接口测试 我们要想知道接口测试怎么做,首先要明白接口测试是什么?一般像系统内的组件接口数据交互测试、不同系统与系统之间的接口数据交互测试等,我们都可以称之为接口测试 ! 那么接口测试是怎么来测试接口的呢? 接口测试就是通过接口的…

接口测试定义以及接口测试常用的工具集合

首先,什么是接口呢? 接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。 系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你…

接口测试怎么进行,如何做好接口测试

一、什么是接口? 接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些特殊的规则也就是协议,来进行数据之间的交互。 二、 常用接口采用方式&#x…

接口测试(十一)接口测试的时间和投资回报

单元测试--接口测试--UI测试- 由此可以看到接口测试的时间是在于单元测试之后,UI测试之前 接口测试可以用比单元测试更少的成本去做测试,且效率上比单元测试更高 对于UI测试,UI测试能发现问题的覆盖度更低些,所以在投资回报率上…

接口测试流程是怎样的?

接口测试流程是怎样的?总所周知,接口测试流程是怎样的?总所周知接口测试在软件测试中是一个非常重要的一部分,其主要目的是测试应用程序的接口是否能够按照规范要求与其他系统或组件进行交互,以及在不同负载条件下接口…

CSS消除ul和li的间隔

最近用到<ul>和<li>标签&#xff0c;但是在做样式调整得时候发现列表项总是和前面保持一段距离&#xff0c;怎么调整都不行&#xff0c;如下图所示&#xff1a; 后来搞清楚原来即使设置了隐藏列表默认的序列号样式&#xff0c;但它还是会有占位。所以我们需要给ul设…

html去掉无序列表前面的符号,css基础 去除ul,li无序列表前面的符号

镇场诗&#xff1a; 清心感悟智慧语&#xff0c;不着世间名与利。学水处下纳百川&#xff0c;舍尽贡高我慢意。 学有小成返哺根&#xff0c;愿铸一良心博客。诚心于此写经验&#xff0c;愿见文者得启发。 ——————————————————————————————————…

如何去除ul小圆点的html,html里面ul那个点怎么消

取消html里面ul那个点的方法&#xff1a;首先创建一个HTML示例文件&#xff1b;然后在body标签内编写一段“ul、li”的标签&#xff1b;最后在ul标签内加入“style“list-style:none;””的样式代码即可。 本文操作环境&#xff1a;windows7系统、HTML5&&CSS3&&…

CSS 去除ul的li标签前面小点 list-style: none;

在开发html的页面中&#xff0c;经常需要使用ul无序列表来写菜单栏目&#xff0c;但是由于前面的小点是不美观的&#xff0c;而且不同的浏览器也是不兼容的。所以我们需要去掉他 问题界面如下图&#xff1a; 解决方法&#xff1a; 在CSS样式中的进行去除 list-style: none; 问…

HTML5ul如何去掉圆点,css ul怎么去掉点

在css中可以使用“list-style-type: none;”去掉ul li标签前默认存在的一个小点&#xff0c;其“list-style-type”用于设置列表项标记的类型。 本文操作环境&#xff1a;windows7系统、HTML5&&CSS3版、Dell G3电脑。 css去掉 ul li标签的前的点 开发中ul li标签前默认…

嵌入式入门必读

找到一个非常好的书籍 而且不用购买的 而且是高清版本的 原来是放在我的知识星球里面的 看到大家下载的也很多 现在拿出来分享给大家 从单片机到嵌入式 这个不是一个简单的过程&#xff0c;其中从单进程到多进程&#xff0c;一个CPU如何做到多进程&#xff0c;怎么跑系统&#…

《嵌入式入门学习第一阶段——C语言》

嵌入式学习第一阶段&#xff08;今日总结&#xff09;2021/9/7 1、C语言的基础框架 #include<stdio.h> //预编译int main() //入口函数 {return 0; //函数返回值} 2、echo命令小应用 3、变量基础概念 先定义再使用 变量说明&#xff1a;1、变…