接口性能测试方案分析

接口性能测试方案分析概述性能测试按照不同视角 可以分为以下几类 a 用户视角的性能用户角度感受到的网站响应速度的快和慢 从用户在浏览器输入网址 打开应用 到整个页面呈现给用户的耗时 包含了用户端发送请求 服务端收到并执行请求 返回请求 客户端收到之后渲染的总时间 b 开发人员视角的性能包括系统吞吐量 并发处理能力 系统稳定性 响应延迟等 如果发现有不满足要求的地方 需要定位出问题所在 并给出解决方案 c 运维主要关注基础设施性能和资源利用率 如网络运营商带宽能力 服务器应急配置 数据中心网络架构 服务器

概述

性能测试按照不同视角,可以分为以下几类:

用户角度感受到的网站响应速度的快和慢。从用户在浏览器输入网址/打开应用, 到整个页面呈现给用户的耗时。包含了用户端发送请求,服务端收到并执行请求,返回 请求,客户端收到之后渲染的总时间。

为什么要做接口压力测试

接口压力测试的局限性

接口压力测试只注重单业务的接口性能,进行压测的时候,只关注个别接口的性能。

接口大部分时间是在线下进行,可能线上线下机器配置不一样,而且线上同时在进 行着各种不同的业务。

因此在线下进行接口压力测试的结果,只能作为线上配置的一个参考值。

谁来做接口压力测试

对接口比较熟悉的开发人员来做,这样有以下好处:1.对接口实现比较了解,对接口中潜在的问题有一定的预判2.比较容易对接口进行优化(业务逻辑层面和技术层面)。

如何做接口压力测试

通常使用 Jmeter ,loadRunner, Metersphere 等进行压力测试。

如何设计接口压力测试方案

举例:如果期望的并发数是 100 ,第一次压测并发数设置为 100 ,如果系统没有 压力,第二次并发就尝试设置为 200。如果系统有压力,下次就设置为 150。通过逐渐 尝试的方式,找出当前接口的并发阈值。

但是有时随着长时间的调用,系统可能会出现其他问题。比如:随着数据量的增多, 存储磁盘满了、内存缓存用光,缓存服务使用磁盘缓存而拖慢系统等情况。

为了避免这种情况,可以尝试用现有线上业务每天产生的数量乘以一定的天数(天 数的大小视业务的具体情况而定,推荐 180 天以上),作为接口压力测试的总请求次数。

第一次压测的 Id 是从 2500W 到 2600W 之间选择的,下次用同样的 Id 范围做压 测的时候,如果接口实现中有缓存,则会很大程度影响压力测试的结果,对压力测试的 解读时候,要考虑到这个因素。

另外,使用不存在的 Id 去进行压测,结果并没有太大意义。

压力测试报告应该包含哪些结果

小,响应时长图 (借助 pinpoint 查看),cpu load 值(top 命令),gc 信息等。

如何解读压力测试的结果

如何根据测试结果定位性能问题

  1. CPU 使用率过高:
    a 在运行的过程中是否频繁 GC
    b 是否发生过多的线程切换
    c 程序中是否有比较耗 cpu 的代码
    接口性能测试方案分析
    全链路:pinpoint




修复性能问题

除了只可能在极端压力测试情况下会发生的性能问题,并且修复代价过大的问题可 以不进行修复(但是要在压力测试报告中体现出来此问题,以及解决方案),其他问题 都必须进行修复。

其他

如果没有专门的接口压力测试环境,记得做完接口压力测试之后,将测试数据清除(缓存,数据库,消息中间件中未消费完毕的消息等)

《2021接口测试白皮书》传送门 >>>

接口性能测试方案分析

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229114.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午5:26
下一篇 2026年3月16日 下午5:27


相关推荐

  • 字符串的赋值

    字符串的赋值我们可以知道 char p helo 这种字符串的赋值方式是完全没有问题的 要理解这种赋值方式 我们首先得理解双引号 特別注意 这个是双引号 不要赋值的时候给弄了个单引号 在这个语句中做了什么工作 双引号主要做了 3 个工作 分别 1 申请了空间 在常量区 存放了字符串 2 在字符串尾加上了 0 3 返回地下面是转载 学了这么多年的 C 语言 突然发现连字符串赋值都出错 chara 10 怎么给这个数组赋值呢 1 定义的时候直接用字符串赋值 chara 10 hello 注意

    2025年6月16日
    8
  • EXCUTE方法executeUpdate「建议收藏」

    EXCUTE方法executeUpdate「建议收藏」“Execute”是JAVA语言的一种,作用是执行动态的SQL语句或非运行时创建的PL/SQL块,动态创建和执行SQL语句。Execute语句的方法1方法executeQuery用于产生单个结果集的语句,例如SELECT语句。被使用最多的执行SQL语句的方法是executeQuery。这个方法被用来执行SELECT语句,它几乎是使用最多的SQL语句。2方法executeUp…

    2022年10月20日
    6
  • Android性能优化思维导图

    Android性能优化思维导图Android 性能优化思维导图

    2026年3月17日
    2
  • thinkphp5中引入第三方类库

    thinkphp5中引入第三方类库

    2022年2月11日
    57
  • stata–异方差检验

    stata–异方差检验异方差检验有两种方法:1、残差图2、white检验1、残差图(一般不用这个,这个只是粗略)代码:regyfdirvfplot,yline(0)rvpplotfdi,yline(0)(1)对y和fdi回归:(2)画出残差与拟合值(ybar)散点图:(3)画出残差与fdi(自变量x)的散点图:2、white检验:代码:sscinstallwhitetstestatimtest,white…

    2025年7月6日
    9
  • kettle工具练习

    kettle工具练习一.抽取CSV文件csv.extract.csv中的数据保存至数据库extract中的数据表csv中。1.打开kettle工具创建一个转换csv_extract,并添加“CSV文件输入”控件,“表输出”控件及Hop跳连接线,用于实现CSV文件数据的抽取功能,具体效果如下图所示:2.配置CSV文件输入控件,具体操作如下图所示:获取字段…

    2022年10月17日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号