干G货,性能测试基本方法和原则,

一、性能测试关键点

  • 评估性能指标——线程tps(可架构给)
    吞吐量qps(可架构给)
    错误率(可架构给)
    平均响应时间(可架构给)
  • 模拟线上数据量
  • 了解接口有没有缓存,有缓存的需要设计
    每次调接口获取的是不一样的数据

二、如何评估需要测试的接口线程数?

  • 针对老项目:
    • 系统里查看过去一周(或者一个月)内,接口调用量最高的那一天,然后
      再找到当天中接口调用量最高的时间点(分钟级别),比如说是在12:10调
      用量为10000,那么我们再换算每秒调用量10000/60=166,因此可以确定
      这个接口tps只要达到166即可满足
  • 针对新项目:
    • 二八定律的算法为 80%的请求 / 20%的时间 * 冗余系数(冗余系数一般
      为2-5之间,一般可取3)如金融股票交易app,一般是早上9点到下午3点,
      76060=25200秒,注册用户1000万,日活差不多100w,80%=80w,
      80w/25200*3=95.接口吞吐量是95即可满足

三、压测实际操作

当确定吞吐量指标,根据指标去压对应的接口:
1、压测设置参数:添加线程组,线程数=用户数/10;ramp-up period多少秒内启动所有线程,默认一般是1秒,0就是立即全部启动;循环次数一般写永远,压测个10-30分钟,看报告

2、聚合报告:Samples发出的请求数、Average单个Request的平均响应时间(ms)、error错误率、Throughput简称tps,吞吐量,每秒处理的请求数。

3、写接口,如果多个接口添加正则表达式,上下接口串联

4、关联数据库,cmd运行: jmeter logFile -o reportPath得到报告

性能测试指标对应压测方法:
吞吐量的预估值=考虑用什么方法去进行压测

  • 500以下 JM 注:接口吞吐指标在500以下,JM就能满足
  • 500-5000 JM分布式或者LR
  • 5000以上 中控+多机部署
  • JM分布式:JM上配置参数接口,jenkins配置多台服务器,一台控制机,多台负载机,控制机的密钥加到负载机中;
  • JM+Grafana+Influxdb监控性能参数,内存,cpu占用情况,接口吞吐量
  • Linux系统
  • 内存
  • 换页swap空间
free -m | sed -n '2p' | awk '{print "used mem is "$3"M,total mem is "$2"M,
used percent is "$3/$2*100"%"}'     

四、接口的性能瓶颈怎么查看?

随着tps越来越高,如何评估接口性能qps指标:

  • 软硬件的资源利用情况会越来越高,直到满负载(内存,cpu占用情况)
  • 吞吐量会不断变高,直到达到峰值,下降或企稳
  • 响应时间会慢慢变高,超过吞吐量峰值,响应时间曲线会急剧拉升(因
    硬件资源满负载,软件接口无法处理超+ 高并发,接口处理速度最后会急剧变慢)

所以:性能指标是吞吐量最高的那个值,响应时间缓慢拉升到急剧拉升的拐点,硬件
           资源最大,这三者的坐标区域中间,就是性能峰值

五、怎么做性能优化?

1、最简单的加线程,进程

2、数据库层面,加索引,加缓存,一些机算上的结果缓存,
      表数据太多,分表,sql优化

3、在有IO(网络IO,磁盘IO)的时候,批量读,写,合并
      网络请求,减少与单点的交互

4、代码更高效的实现,改运算逻辑,如本来以账户维度计
      算金额,改成以产品维度去计算

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/634706.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HIOKI日置阻抗分析仪IM7583

HIOKI日置阻抗分析仪IM7583 HIOKI日置阻抗分析仪IM7583 HIOKI日置阻抗分析仪IM7583 功率分析仪 PW6001 基本参数 测量线路 单相2线,单相3线,三相3线,三相4线 输入通道数 zui大6ch,电压/电流同时单位是1ch (电压测…

ClickHouse配置与使用

静态IP配置 # 修改网卡配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ens33# 修改文件内容 TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOstatic IPADDR192.168.18.128 NETMASK255.255.255.0 GATEWAY192.168.18.2 DEFROUTEyes IPV4_FAILURE_FATALno IPV6INIT…

OSPF路由聚合

原理概述 与RIP不同,OSPF不支持自动路由聚合,仅支持手动路由聚合。OSPF的路由聚合有两种机制:区域间路由聚合和外部路由聚合。区域间路由聚合必须配置在ABR路由器上,指的是ABR在把与自己直接相连区域(Area&#xff09…

5.23.1 深度学习在乳腺癌成像中的应用

乳腺成像在早期发现乳腺癌以及在治疗期间监测和评估乳腺癌方面发挥着重要作用。最常用的乳腺成像方式是数字乳房X线摄影、数字乳腺断层合成、超声和磁共振成像。 传统的 CAD 系统基于传统的机器学习 (ML) 技术;预定义(手工制作)的特征是系统…

汽车摄像头智能画质增强解决方案,高品质车载视觉系统

在数字化与智能化浪潮的推动下,汽车行业正经历着一场前所未有的技术革命。其中,车载摄像头作为智能驾驶与安防监控的核心部件,其画质的高低直接关系到行车安全与驾驶体验。美摄科技,作为行业领先的智能图像技术解决方案提供商&…

想在抖音做电商怎么操作?我的建议是......

我是王路飞。 想在抖音做电商,应该怎么操作呢? 我的建议是,开通一个抖音小店就可以了~ 想了解抖音电商内容的,可以认真看完这篇文章~ 内容来源于【电商王路飞】 先给你们解答一些概念类的问题。 抖店和橱窗是一个东西吗&…

不闭合三维TSP:蛇优化算法SO求解不闭合三维TSP(起点固定,终点不定,可以更改数据集),MATLAB代码

旅行商从城市1出发,终点城市由算法求解而定 部分代码 close all clear clc global data load(data.txt)%导入TSP数据集 Dimsize(data,1)-1;%维度 lb-100;%下界 ub100;%上界 fobjFun;%计算总距离 SearchAgents_no100; % 种群大小(可以修改) …

Centos7.9安装卸载Docker

文章目录 1、官网安装1.1、卸载旧版本Docker1.2、通过rpm仓库安装1.2.1、设置仓库1.2.2、安装Docker Engine1.2.3、启动Docker1.2.4、验证安装 1.3、通过rpm软件包安装1.4、通过便捷脚本安装 2、yum安装2.1、安装docker-ce以及客户端2.2、启动docker2.3、配置镜像加速 3、卸载D…

【情感大师智能体】:定制专属情感支持

文章目录 📑前言一、快速创建智能体二、配置表单2.1 基础配置2.2 指令配置什么是指令(prompt)? 2.3 我的指令如下: 三、体验发布四、小结 📑前言 随着智能体技术的快速发展,用户对智能体的需求不…

buuctf的RSA(二)

1.RSA 知道 flag.enc 和 pub.key,典型的加密、解密 将pub,key 改为pub.txt 打开后发现公钥 在RSA公私钥分解 Exponent、Modulus,Rsa公私钥指数、系数(模数)分解--查错网 进行解密 得到e65537 n8693448229604811919066606200349480058890565…

全网最全面的由浅到深的Kotlin基础教程(七)

前言 本篇文章接着上一篇文章全网最全面的由浅到深的Kotlin基础教程(六)继续进阶学习kotlin,建议看完上一篇文章,再来看本篇文章。本篇主要分析一些常用的kotlin函数源码,以及用kotlin简单实现Rxjava的几个操作符。坚…

来盘点我的校园生活(3)

来公布上期数学题答案:12 你算对了吗? 今天我们班真是炸开了锅。事情是这样的,我今天早晨上学,学校不让早到,但我一个不小心早到了,主任的规定是尽量不早到,早到不扣分,倒要站在那儿背书&…

「项目」负载均衡在线OJ(ONLINE_JUDGE)系统

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

使用python实现socket进行消息传输-demo

Socket 是什么 Socket 是一种在计算机网络中用于实现进程间通信的一种机制。它是网络编程中的重要概念,通过它可以在不同的计算机之间进行数据传输和通信。Socket 可以用于实现各种网络应用,包括客户端-服务器模型、P2P 应用等。基本上,Sock…

uniappx 应用未读角标插件(完善推送、通知、消息效果) Ba-Shortcut-Badge-U

简介(下载地址) Ba-Shortcut-Badge-U 是设置应用未读角标的原生插件,UTS版本(同时支持uniapp和uniappx) 支持设置未读、清空未读支持机型有Huawei、oppo、xiaomi、Samsung、Sony、LG、HTC、ZUK、ASUS、ADW、APEX、NO…

【实验指南】华为DHCP与ACL配置实战,网络新手也能轻松上手!

周六:网络CCNAHCIA线上直播/线下面授——同步上课 周日:网络CCNPHCIP线上直播/线下面授——同步上课 周六:系统 RHCE线上直播/线下面授——同步上课 周日:系统 RHCA线上直播/线下面授——同步上课 点击👇 免费预约…

三头六臂战力增倍——openGauss5.0.0一主两备扩容至一主三备

openGauss支持集群的扩容和缩容,下面简单记录了openGauss5.0.0一主两备扩容至一主三备的过程,供各位方家参考指正。 一、检查升级前一主两备集群状态 1. 检查OS状态 root用户执行 ./gs_checkos -i A 检查结果:没有异常(Abnorma…

【C++】多态(多态的原理)

在本篇博客中,作者将会带领你深入理解C中的多态。 声明!!!本代码以及讲解都是在32位机器下进行完成的,64位机器下会有所不同,但大同小异。 一.多态的概念 什么是多态? 多态就是不同的对象去做…

功耗相关总结

文章目录 功耗相关的使用场景MCU中低功耗的应用RTOS中低功耗应用 功耗相关的使用场景 目前越来越多的嵌入式设备采用电池进行供电,而不是跟台式电脑一样,可以一直连接着电源。在电池供电的场景下,对功耗的要求很高,工程师们尽量希…

maven的tomcat运行不起来的解决方案

问题描述&#xff0c;出现的情况就是无法一直持续启动&#xff0c;开启后瞬间关闭。 解决方案 把maven文件中的jar换成war <packaging>jar</packaging> 换成 <packaging>war</packaging>