Jmeter之单接口的性能测试

news2024/10/6 14:29:04

目录

前言:

性能指标

测试工具选择

Jmeter 获取性能指标

编辑接口信息

设置监听器

开始监控

收集监控数据

数据指标分析

总结:


前言:

  服务端的整体性能测试是一个非常复杂的概念,包含生成虚拟用户,模拟并发,分析性能结果等各种技术,期间可能还要解决设计场景、缓存影响、第三方接口mock、IP限制等问题。如何用有限的测试机器,在测试环境中模拟并评估生产环境的真实性能状态,找出性能瓶颈,也一直是性能测试工程的核心目标。

但一个大型系统的性能,也是由一个一个接口的性能来保证的,同样遵循木桶原理,即性能最差的那个接口将会拉低整个系统的性能,因此评估单个接口的性能,对于优化接口的性能,保证系统的整体性能,也一样很有必要,量变终会引发质变。而且相对来说实现简单,对于那些不熟悉性能测试工程的同学也是了解性能测试的一个很好的切入点。

性能指标

一般系统性能水平都是通过吞吐量来体现,而系统吞吐量有以下几个重要指标:

  • QPS(TPS):每秒钟request/事务 数量
  • 并发数:系统同时处理的request/事务数
  • 响应时间:一般取平均响应时间

同时CPU运算、IO、外部系统响应等因素也会直接影响这些指标,这里我们选择了QPS(TPS),响应时间,CPU占用率,内存占用率四个指标分别来评估单个接口的性能。而对于并发数,则可以通过 并发数= QPS*平均响应时间 计算得出结果。

  Python自动化测试学习交流群:全套自动化测试面试简历学习资料获取点击链接加入群聊【python自动化测试交流】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DhOSZDNS-qzT5QKbFQMsfJ7DsrFfKpOF&authKey=eBt%2BF%2FBK81lVLcsLKaFqnvDAVA8IdNsGC7J0YV73w8V%2FJpdbby66r7vJ1rsPIifg&noverify=0&group_code=198408628

                    

测试工具选择

性能测试几乎已经断绝了手工测试的可能,选择一款合适的测试工具很有必要。目前业界性能测试工具相当多,综合需求目标、成本控制、扩展性、生命力等等因素考虑选择,这里我只列了主流的三种:

loadrunner 大概是生命力最强的性能测试工具了,学习资料也相对较多,只是体型有点大,环境安装麻烦。

Jmeter 基于java编写,GUI配置管理接口,入门简单,方便快速开展性能测试工作,还支持插件扩展。

Locust 是python下的一个性能测试工具,优点是通过代码编写压测脚本,扩展性强,适合全自动化,同时利用了协程的概念,支持单机高并发。

由于我们只是对单个接口进行压测,太复杂的环境与较高的学习成本都不利于快速开展工作,因此我选择了jmeter,当然也只是对jmeter的简单使用,并不意味着jmeter功能不够强大。

Jmeter 获取性能指标

安装Jmeter

这并不是一篇讲Jmeter的文章,因此关于Jmeter的下载安装就不再赘述,但有几个非常好用的Jmeter 插件还是推荐可以安装一下的:

  • Transactions per Second(监听TPS)
  • Response Times Over Time(监听响应时间)
  • PerfMon Metrics Collector(监听服务器CPU、内存)

编辑接口信息

1.开启一个线程组

2.线程组中添加一个http请求

3.编辑接口信息,如果需要参数较多,可能还需要进行参数化。

设置监听器

1.右键线程组,设置监听器

2.添加察看结果树

3.添加聚合报告

4.添加安装的监听插件

1.对于PerfMon Metrics Collector插件,我们需要在服务器中运行Jmeter提供的一个简单的web服务器配合使用。

2.设置监听器的同时,也可以保存数据到本地csv文件

  Python自动化测试学习交流群:全套自动化测试面试简历学习资料获取点击链接加入群聊【python自动化测试交流】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DhOSZDNS-qzT5QKbFQMsfJ7DsrFfKpOF&authKey=eBt%2BF%2FBK81lVLcsLKaFqnvDAVA8IdNsGC7J0YV73w8V%2FJpdbby66r7vJ1rsPIifg&noverify=0&group_code=198408628

开始监控

1.设置线程数(一开始不设置太高)

2.设置达到最大线程数的时间

3.点击运行

收集监控数据

运行结束后,就可以在对应的监听器中查看获取的数据了。把这些结果统计整理

数据指标分析

通过上面我们设置的监听器,我们应该能得到TPS、响应时间、CPU、内存这些指标了。当然这些指标也只是简单的评测某一接口的性能区间。

这里有一些计算方法

QPS计算方法:

原理:每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间

公式:( 总PV数 80% ) / ( 每天秒数  20% ) = 峰值时间每秒请求数(QPS)

机器:峰值时间每秒QPS / 单台机器的QPS = 需要的机器

如:每天300w PV 的在单台机器上,这台机器需要多少QPS?

答:( 3000000  0.8 ) / (86400  0.2 ) = 139 (QPS)

如果一台机器的QPS是58,需要几台机器来支持?

答:139 / 58 = 3

通过这些公式计算,我们应该能整理出来一份相对专业的测试报告了。

总结:

感谢每一个认真阅读我文章的人!!!

我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。欢迎大家点击下方名片免费领取,千万不要错过哦。

                                                  

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Centos7 离线安装gcc gcc-

方法一:centos7 挂载本地iso yum源 cd /etc/yum.repos.d/ vim ios.repo [ios] nameios baseurlfile:///mnt/cdrom enable1 gpgcheck0 #镜像挂载本地 mount -o loop CentOS-7-x86_64-DVD-2009.iso /mnt/cdrom/ yum clean all yum makecache yum -y install gcc g…

助力工业智能生产质检,基于yolov5n/s/m不同精度系列模型开发构建热轧钢缺陷检测识别系统,对比分析性能差异

缺陷先关的智能检测应用和深度学习的结合是具有非常不错的应用前景的,比如:PCB缺陷检测、布匹瑕疵缺陷检测、瓷砖缺陷检测等等,在我之前的博文中对于缺陷领域相关的实践也有不少的项目开发实践,感性却的话可以自行移步阅读即可。 …

后端学vue2

工程创建 安装vue脚手架 安装好nodejs之后,安装vue脚手架 npm install -g vue/cli-g 参数表示全局安装,这样在任意目录都可以使用 vue 脚本创建项目安装时候使用vue ui 创建 安装 vue调试工具devtools devtools 插件网址:https://devtoo…

软件测试05:软件测试分类

软件测试05:软件测试分类 软件测试分类 按照开发阶段划分 单元测试 单元测试又称模型测试,是针对软件设计的最小单位——程序进行正确性检验的测试工作。其目的在于检查每个程序单元能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求…

华为参战!国产之光盘古大模型推:盘古Chat

盘古Chat是华为基于盘古大模型开发的一款多模态千亿级大模型产品,可以支持多种自然语言理解和生成的任务,如文本生成、问答、翻译、对话等。它是直接对标目前比较火爆的ChatGPT的产品,被认为是新一代的国产“AI”王炸。 盘古Chat预计将于今…

HTML5+CSS3+Vue小实例:仿制B站PC端首页的吃豆人轮播图

实例:仿制B站PC端首页的吃豆人轮播图 技术栈:HTML+CSS+Vue.js 字体图标库:font-awesome 效果: 源码: 【html】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><…

功率放大器如何驱动水声声呐捕鱼?

第十五个“世界海洋日”&#xff0c;我们除了聚焦如何更好地保护海洋环境&#xff0c;对于海洋资源的可持续性利用&#xff0c;如何让“海洋宝藏”更好地造福人类&#xff0c;也是一个重要课题。想要发现更多的渔业资源&#xff0c;有项技术必不可少&#xff0c;那就是声呐技术…

Apache Log4j2 lookup JNDI 注入漏洞(CVE-2021-44228)

复现环境以及使用的工具 环境&#xff1a;使用Vulhub的漏洞环境 工具&#xff1a;bp和JNDIExploit-1-1.2&#xff0c;需要Java环境&#xff01;&#xff01; 攻击机和受害机配置 受害机&#xff1a;kali&#xff0c;ip地址为&#xff1a;192.168.150.135。使用vulhub漏洞环境…

无缝集合成功体验:打造高效的第三方API接口应用程序

欢迎来到我们的API接口 专业数据平台&#xff0c;今天我们将介绍如何使用库和框架API来简化开发流程&#xff0c;构建快速、可靠的应用程序。在本文档中&#xff0c;我们将重点介绍企业四要素API接口的作用&#xff0c;并提供一些示例代码可以帮助您更好地理解。 企业四要素是在…

统信下进行打deb安装包,ubuntu使用dpkg打deb包,tomcat的deb安装包制作

背景 由于安全需要&#xff0c;tomcat不能用解压缩版本&#xff0c;只能通过deb安装的方式使用。 制作tomcat的deb安装包 安装环境 使用 sudo apt-get install automake 将安装 autoconf{a} automake autotools-dev{a} 三个包。 使用 sudo apt-get install dh-make 将安装 …

docker离线安装mysql

docker离线安装mysql 第一步&#xff1a;找到一台联网的安装了docker的服务器&#xff0c;查看当前docker镜像&#xff1a;docker images &#xff0c;拉取mysql镜像包&#xff1a;docker save -o mysql.tar mysql:latest&#xff0c;其中latest为tag行内容 第二步&#xff1a…

号称 Java 面试八股文天花板(2023 最新版)首次开源

咱们先来说说&#xff1a; 最近感慨面试难的人越来越多了&#xff0c;一方面是市场环境&#xff0c;更重要的一方面是企业对 Java 的人才要求越来越高了。 基本上这样感慨的分为两类人&#xff0c;第一&#xff0c;虽然挂着 3、5 年经验&#xff0c;但肚子里货少&#xff0c;也…

Java中锁的分类,你了解几种?

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 文章目录 什么是锁隐式锁和显式锁隐式锁显式锁 悲观锁和乐观锁悲观锁乐观锁 公平锁和非公平锁公平锁非公平锁 可重入锁和非可重入锁可重入…

Java 基于 Apache ECharts 实现:柱状图、折线图、环形图等案例

Java 基于 Apache ECharts 实现&#xff1a;柱状图、折线图、环形图等案例 柱状图 效果图 源代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge" />&…

0基础转行,网路工程和网络安全哪个更有发展前景?

对于初学者而言&#xff0c;初入IT行业最重要的就是选择一个热门且前景好的职业&#xff0c;而网络工程和网络安全作为IT行业的热门职业必然成为很多人的首选&#xff0c;那么网络工程和网络安全哪个发展前景好?小编带大家详细了解一下。 首先&#xff0c;我们对网络工程和网络…

转行软件测试5年了,给还在犹豫的女生一点建议

首先你选择的方向是对的&#xff0c;软件测试这个岗位对于女生是相当友好的. 然后再说女生&#xff0c;软件行业&#xff0c;开发大部分都是男生&#xff0c;所以对于女生来说&#xff0c;因为天性&#xff0c;所以很多时候在互联网公司还是非常吃香的&#xff0c;加上女生本身…

采购中最常见的5个问题及解决方法

由采购引发的问题可能是代价昂贵的。员工可能会重复下订单&#xff0c;库存可能会损坏&#xff0c;而供应商可能会错过最后期限。为了减少和缓解你的企业今后出现采购问题&#xff0c;本文列出了5个最常见的问题&#xff0c;以及如何避免它们的发生。 误购重复或多余的物品 …

WLAN基本概述及简单组网配置

WLAN概述 WLAN即Wireless LAN(无线局域网),是指通过无线技术构建的无线局域网络。WLAN广义上是指以无线电波、激光、红外线等无线信号来代替有线局域网中的部分或全部传输介质所构成的网络。 家庭WLAN产品: 家庭Wi-Fi路由器:通过把有线网络信号转换成无线信号,供家庭电…

ChatGPT与Web的完美结合:创造一加一大于二的化学反应

怎么介绍Web&#xff1f; Web&#xff0c;全称World Wide Web&#xff0c;是互联网上的一种基于文本传输协议&#xff08;HTTP&#xff09;的网络服务系统&#xff0c;一言以蔽之就是&#xff0c;通过互联网进行全球范围内的信息交流与共享。 更简单易懂的表述就是&#xff0c;…

一文详解!Cypress环境搭建与配置

目录 前言&#xff1a; 基础环境安装 Cypress安装与配置 通过直接下载安装及配置 启动Cypress 前言&#xff1a; Cypress是一个现代化的前端测试框架&#xff0c;具有易用性、可靠性和可调试性等优势&#xff0c;适用于UI自动化测试、端到端&#xff08;E2E&#xff09;测…