在 Apifox 中开展 API 性能测试的全面指南

2024-04-02 04:20

本文主要是介绍在 Apifox 中开展 API 性能测试的全面指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在构建和维护 API 时,性能和稳定性是至关重要的考量因素,API 的性能直接影响着用户体验和系统的可用性,因此对其进行全面的性能测试是不可或缺的一环。

针对 API 的性能测试,一般通过模拟实际用户行为、压力测试和负载测试等方式来评估系统的稳定性和性能指标。在进行性能测试之前,建议先对 API 实施功能测试,确保所有接口按预期正确运行。功能测试帮助识别和修正功能性问题,而性能测试专注于评估 API 在高负荷下的表现。只有功能正常的 API,其性能测试结果才具有实际意义,进而可以为进一步的性能优化提供可靠依据。

那么,如何利用 Apifox 的「性能测试」功能来检验你的 API 性能是否达标呢?以下是操作步骤的详细讲解。

步骤 1

编排性能测试场景

在启动性能测试前,首先需要编写测试用例,可以从接口或接口用例导入,也可以自定义请求。当测试步骤准备完毕,建议先执行功能测试以确保接口按预期工作,然后再进行性能测试。

图片

步骤 2

设置性能测试运行配置

接下来,在「自动化测试」功能界面,你会找到一个专为「性能测试」设计的模块。在这个模块里,你可以根据需要设置各种配置项,为即将执行的性能测试做好准备。

图片

运行环境

指定「性能测试」运行期间请求的后台服务环境,默认自动采用当前项目设定的环境配置

图片

测试数据(可选)

测试数据指的是性能测试过程中用来发起请求的数据集,通过使用测试数据,让每个并发用户能够使用不同的参数进行请求,用以更好的模拟现实世界的流量。

图片

如果你要使用测试数据,你可以在界面上点击「测试数据」标签,然后新建一个测试数据。

图片

接着在相应的环境中配置数据集,你可以手动添加,也可以通过 JSON 或 CSV 格式导入,编辑完毕后保存即可。

图片

最后,在测试步骤详情页中通过变量与测试数据关联。

图片

若你在性能测试中选择关联测试数据,那么并发用户将使用测试数据中定义的变量进行请求,你可以选择「随机匹配」或者「顺序匹配」这两种模式进行测试

图片

  • 「随机匹配」模式:在此模式下,每个并发用户将从测试数据中随机选择一行数据进行操作。这确保了每个并发用户都能获取到一条测试数据,从而保证性能测试的广覆盖性。

  • 「顺序匹配」模式:此模式下,每个并发用户将按照测试数据的顺序选取下一行数据进行操作。需要注意的是,如果执行测试的并发用户数超过了提供的测试数据行数,那么超出部分的并发用户将无法参与测试。因此,在使用此模式时,请确保你有足够多的测试数据以支持所有并发用户的测试需求

并发用户数(虚拟用户数)

目前性能测试最多支持同时模拟 100 名并发用户,这些并发用户会在你指定的测试时间内,并行地模拟真实在线用户行为,以重复执行测试场景。通过这种方式,你可以有效地模拟高并发场景,以评估 API 在面对大量用户请求时的性能和稳定性。

运行时间

运行时间定义了性能测试的总时长,即在此设定时间内,每个并发用户将持续不断地循环执行测试场景中定义的所有接口请求。当前,性能测试支持的最长测试时长为 60 分钟。

爬坡时间

在一些情况下,大量用户并非瞬时访问服务,而是随着时间推移,请求越来越多。

爬坡时间就是用于模拟用户访问量随时间增长的情况,即在测试的初期并不是立即使用所有并发用户,而是在设定的 X 分钟内(X 为你设定的时间),用户数量会线性增加直到达到所设定的并发用户总数。如果将 X 值设置为 0,意味着测试一开始就会启用全部并发用户进行压力测试。

以上的「可配置项」配置完成后,保存设置,然后点击「运行」按钮,即可开始执行性能测试。

步骤 3

运行性能测试

性能测点击「运行」后,性能测试就会启动。Apifox 的性能测试是从用户电脑(而不是 Apifox 服务器)发起的,会使用当前电脑的硬件资源来执行你已经配置好的测试步骤、测试数据和并发请求。

需要注意,Apifox 的性能测试能够测到的性能上限会受到当前电脑硬件性能和网络连接状况的限制。比如,假设你当前的电脑的配置只能支撑 50 个并发请求,此时即使你把 Apifox 的并发用户数调到 100 ,Apifox 实际上能发起的并发请求数也最多只能达到 50。因此,你需要结合自己电脑的性能和其他接口的表现来判断,到底性能问题出在你要测试的接口,还是你发起测试的电脑。如果你发现无论哪个服务器的哪个接口,实际发起的请求数都上不去,那可能你需要换一台性能更强的电脑来发起性能测试。

启动性能测试后,Apifox 将会提供一个直观的可视化面板,用以实时监测,并展现关键性能指标,包括各个接口的总请求数、每秒接口请求数、平均响应时间、最大/最小响应时间,以及请求的失败率等信息。

图片

在性能测试的运行页面上,可视化面板呈现了整个测试场景的综合数据。

图片

以下表列出了可视化面板中整个测试场景的综合数据指标,这些指标反映了覆盖所有接口的整体性能情况:

图片

整个测试场景的综合数据指标解读:

  • 总请求次数:该指标反映了测试期间接口处理的请求总量,要注意,较高的总请求次数在大规模用户使用场景下是合理的,但也应保证接口能有效处理这些请求。

  • 每秒接口请求数:如果每秒的请求数量高,这意味着接口能在短时间内处理大量请求,通常表示出色的性能。如果这个数字较低,可能暗示接口在处理请求时存在性能瓶颈。

  • 平均响应时间:较低的平均响应时间通常表示用户能够迅速获得反馈,反映接口性能优异。较高的响应时间则表明响应过慢,可能会影响用户体验。

  • 请求失败率:理想情况下,失败率应接近于零。较高的失败率说明接口在某些情况下无法正常处理请求,需要进一步进行错误分析和优化。

  • 并发用户数:合理设置并发用户数可以帮助模拟真实世界的用户负载。然而,如果并发用户数设置过高,系统可能会因无法处理如此高的负载而导致性能下降。

在可视化面板下方,列出了测试场景中各个接口的具体数据指标,便于你根据需要进行查看和分析。

图片

以下表格展示了单个接口的性能测试指标,这些指标专门针对每一个接口的性能进行分析:

图片

单个接口的性能测试指标解读:

  • 总请求数:较高的总请求量在大并发场景下是正常的,但应保证接口能有效处理这些请求。

  • 每秒接口请求数:较高值表示接口可在短时间内处理大量请求,反映出良好的性能,反之可能存在性能问题。

  • 平均响应时间(ms):较低的平均响应时间意味着用户经历更快的交互响应,反映出接口性能良好,较高的响应时间可能指示性能问题。

  • 最小和最大响应时间:这两个指标给出了响应时间的波动范围,极端值可能暴露出潜在的性能问题。

  • 90% 响应时间:对于多数请求而言,这个时间应接近平均响应时间。如果 90% 响应时间明显高于平均值,这可能暗示有一部分请求响应时间过长,影响了用户体验。

  • 失败率:理想情况下,失败率应接近于零。较高的失败率说明接口在某些情况下无法正常处理请求,需要进一步调查原因。

需要注意的是,在同一时间段内,一个项目仅能执行一项性能测试。若需进行优先级更高的测试,请点击右上角的「终止」按钮,以终止当前测试。

在执行性能测试的过程中,你可以通过将鼠标悬停在可视化面板上,实时查看不同时间点的测试详情。

在可视化面板上,不同的曲线颜色分别对应于纵轴上的不同性能指标,如下图所示。其中,横轴表示性能测试进行的时间,而纵轴从左至右依次展示了请求失败率、平均响应时间和每秒接口请求数等指标(「并发用户数」默认在纵轴隐藏)。

图片

若需重点关注特定的性能指标,你可以通过点击该指标使其颜色变为灰色,从而临时从图表中隐藏该指标,便于你集中分析其它数据。

图片

若想审查特定的失败请求,可点击「请求失败率」以分析失败的接口请求。此外,你还可以利用筛选功能,专门查看特定接口的表现。

图片

由于性能测试会生成大量接口请求,所以系统仅对发生错误的请求进行分类统计,而不会保留每个请求的详细错误信息和接口请求详情。如果在性能测试中遇到意外的错误,建议你先执行「功能测试」以排查并解决所有问题,然后再进行性能测试。

性能测试结束后,通过点击「测试报告」标签,你能够查看该测试场景的全部历史报告,这些报告详细列出了性能测试执行前你所设置的“配置项”情况。

图片

你可以在这里按报告类型(如功能测试、性能测试)进行筛选。点击任一测试报告可跳转至其详情页面进行查看,报告页面中展示的信息与性能测试执行期间收集的指标保持一致。

图片

Apifox 为 API 性能测试提供了一个易于操作的解决方案,使得设置测试参数、执行测试和查看结果的过程变得简单直观,通过一系列详细的性能指标和清晰的可视化面板,你能够全面了解 API 的性能表现。

这篇关于在 Apifox 中开展 API 性能测试的全面指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/868954

相关文章

SpringBoot整合OpenFeign的完整指南

《SpringBoot整合OpenFeign的完整指南》OpenFeign是由Netflix开发的一个声明式Web服务客户端,它使得编写HTTP客户端变得更加简单,本文为大家介绍了SpringBoot... 目录什么是OpenFeign环境准备创建 Spring Boot 项目添加依赖启用 OpenFeig

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据

python中各种常见文件的读写操作与类型转换详细指南

《python中各种常见文件的读写操作与类型转换详细指南》这篇文章主要为大家详细介绍了python中各种常见文件(txt,xls,csv,sql,二进制文件)的读写操作与类型转换,感兴趣的小伙伴可以跟... 目录1.文件txt读写标准用法1.1写入文件1.2读取文件2. 二进制文件读取3. 大文件读取3.1

SpringBoot中配置Redis连接池的完整指南

《SpringBoot中配置Redis连接池的完整指南》这篇文章主要为大家详细介绍了SpringBoot中配置Redis连接池的完整指南,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以... 目录一、添加依赖二、配置 Redis 连接池三、测试 Redis 操作四、完整示例代码(一)pom.

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

springboot项目中常用的工具类和api详解

《springboot项目中常用的工具类和api详解》在SpringBoot项目中,开发者通常会依赖一些工具类和API来简化开发、提高效率,以下是一些常用的工具类及其典型应用场景,涵盖Spring原生... 目录1. Spring Framework 自带工具类(1) StringUtils(2) Coll

PyInstaller打包selenium-wire过程中常见问题和解决指南

《PyInstaller打包selenium-wire过程中常见问题和解决指南》常用的打包工具PyInstaller能将Python项目打包成单个可执行文件,但也会因为兼容性问题和路径管理而出现各种运... 目录前言1. 背景2. 可能遇到的问题概述3. PyInstaller 打包步骤及参数配置4. 依赖