jmeter做性能测试
一、线程与进程
一个软件/程序,是以进程的方式存在的,一个进程可含多个线程(一个软件可以做多个事情,就是基于线程而实现的)
二、并发的基本概念
并发:
并发用户数:同一时刻,服务器/接口接收到的用户量,例如同一时刻有22个同学同时点击登录按钮,此时并发用户数为22
并发请求数/qps/rps:同一时刻服务器正在处理的请求数 (请求数一般理解为接口的请求数),例如点击登录按钮后,会同时请求8个接口,则并发请求数为22*8
注意:通常意义上的并发指的是并发用户数
jmeter性能测试原理:通过模拟高并发来测试服务器在一段时间内的性能瓶颈/最大并发
三、设置并发
1、设置线程数(在线程属性里设置线程数,一个线程数即为一个人)

- Ramp-up Period(in seconds):决定多长时间启动所有线程。如果使用10个线程,ramp-up period是100秒,那么JMeter用100秒使所有10个线程启动并运行。每个线程会在上一个线程启动后10秒(100/10)启动。Ramp-up需要要充足长以避免在启动测试时有一个太大的工作负载,并且要充足小以至于最后一个线程在第一个完成前启动。 一般设置ramp-up=线程数启动,并上下调整到所需的。
- 循环次数:通常使用循环次数增加测试时间,一般设置为100
也可以使用调度器设置时间,通常是5min、10min、30min这种比较短的
2、添加集合点(适用于顺时并发较高的情景,在jmeter中不用设置所有的情况,在并发高的第一个接口设置)
应用场景:抢购/秒杀(等待线程数准备好了再冲)
例子:活动,大转盘,每天九点开启,奖品非常丰富,你做性能测试的时候,怎么模拟这种情况?
设置集合点步骤:
①添加同步定时器
右键http请求--->添加---->定时器---->synchronizing timer

②配置定时器

四、jmeter中的参数化
设置并发后,会发现登录接口有的能正常运行,有的报错,这是因为多个人共用同一个账号导致的,所以针对这个情况,需要对数据进行参数化
参数化含义:单个线程需要单独的数据,比如登录的账号和密码
1、参数化步骤
4.1.1:明确哪些数据需要做参数,数据是从哪里来的
4.1.2:准备测试账号
web接口:调用接口准备
小程序:生成openID的算法来创建测试账号的token,再把token按照规则插入到Redis和数据库表中
4.1.3:使用CSV数据文件设置引用数据文件
CVS数据文件设置会自动取出单独的数据,保证没分线程数据是唯一的
①右键线程组--->添加---->配置元件---->CSV数据文件设置

②选取已配置的文件

③信息头管理器中,引用变量

五、聚合报告
即性能测试结果/性能指标,在测试计划中添加
右键测试计划--->添加--->监听器--->聚合报告

指标判断标准:
- 响应时间--平均响应时间:
- 响应时间-90%line、95%line、99%line:当前有多少人在这个时间点的响应时间(决定了绝大用户的使用感受)

不同行业和项目对响应时间会有不同的要求,例如,互联网:500ms以下,例如淘宝业务10毫秒左右;
金融企业,1秒以下为佳,部分复杂业务3s以下
保险企业:3s以下为佳
制造业:5s以下为佳
一般来说,响应时间都会遵循258原则,即2s以下优秀,2-5s可接受,5-8s良,8s差(不清楚就以8s作为依据)
- 失败率,即出错的概率
项目给出的标准 200qps,失败率不超过0.01%,一般的小公司系统,小于5%即可,比较简单粗略
- 服务器上cpu使用率,即服务器的繁忙程度,原则是不要持续100%,最好是在85%<x<90之间
- tps:服务器每秒返回的请求数,在jmeter中称为吞吐量,评论服务器性能的辅助指标

tps最主要的作用是用来找性能瓶颈(一般来说,随着并发数的增加,系统的性能会先稳定增加,之后一段时间系统性能趋于平稳,最后系统性能会下降,系统性能下降的那个点,称为性能拐点,可得到最大并发)

注:我们在项目中,一般是只以响应时间、失败率、CPU使用率来判断性能指标就够了
jmeter做性能测试的更多相关文章
- 使用Jmeter做性能测试
上周刚刚做完项目的性能测试.今天整理和总结一下,随便分享给大家. 首页呢,测试前,我们是有明确的性能指标的,而且测试环境和数据都已准备好,业务分析.场景分析大家根据自己的项目系统进行分析设计,我们选用 ...
- 【转】使用JMeter做性能测试的心得
企业应用开发过程中,性能测试是很重要的一个环节,在这个环节中Apache的JMeter以它开源.100%纯Java.操作方便等优点发挥着很大的作用. 经过一段时间的使用,多少有些心得和技巧,拿出来共享 ...
- Linux下使用Jmeter做性能测试
一.安装Jmeter 1.上传Jmeter压缩包到Linux服务器,如:/opt目录下 2.解压缩 unzip apache-jmeter-3.1.zip 3.配置环境变量:vi /etc/profi ...
- 用Jmeter做性能测试,之后报表展示
https://octoperf.com/blog/2017/10/19/how-to-analyze-jmeter-results/ 看到性能测试平台的开发,我在想需要什么功能,报表需要什么样子的 ...
- Jmeter工具做性能测试 常见的错误汇总
在Win机器上用Jmeter做性能测试,汇总下我自身遇到的错误和解决方案 java.net.BindException: Address already in use: JVM_Bind 原因分析:压 ...
- jmeter如何玩之badboy + jmeter并发性能测试
今天下班时公司安排了一个同事来对项目做集群性能测试,怀着对性能测试的好奇心,下班后没有着急离开,而是等待 那位同事的到来,然后在旁边学习了下如何使用Badboy和jmeter做性能测试. 1. 软件介 ...
- Jmeter初步使用二--使用jmeter做一个简单的性能测试
经过上一次的初步使用,我们懂得了Jmeter的安装与初步使用的方法.现在,我们使用Jmeter做一个简单的性能测试.该次测试,提交的参数不做参数化处理,Jmeter各元件使用将在介绍在下一博文开始介绍 ...
- 如何使用jmeter做一个功能的性能测试
一.为什么又再次写类似的文章? 在博客园和公号写文章,已经快两年了,所以自然在公号和博客园都能联系到我的. 也就是几天前,有个人加我微信,对于总有人加我好友,我已经觉得不奇怪了,为什么呢? 加我好友的 ...
- 一个使用Jmeter做接口性能测试的实战案例
1 安装并配置Jmeter Jmeter的安装不在这里阐述,安装步骤非常简单. 直接进入主题 1.1 数据库连接配置 由于测试过程需要调用数据库获取响应部署数据,因此需要先建立与数据库的连接. 如果不 ...
- 【Jmeter】Linux(Mac)上使用最新版本Jmeter(5.0)做性能测试
本文我们一起来学习在Linux(Mac)上利用Jmeter进行性能测试并生成测试报告的方法. 环境准备 JDK 访问这个地址 [JDK11.01],根据实际环境下载一个JDK. Jmeter Jmet ...
随机推荐
- linux 使用ACR122U-A9设备读写M1卡
前言 很久之前我在windows用过这个ACR122U-A9设备, 还挺好用,但是换了linux后,突然想又想用这个设备又是一顿折腾- 关于这个设备 其实这个设备只能读取M1卡(水卡这种),当时什么都 ...
- 关于sublime-build的配置详解
前言 sublime-build 可以做很多自定义的构建命令,然后用其执行代码,十分方便! 开始 这里我就简单的用python 的配置来详细说明各个配置项目的作用 { "shell_cmd& ...
- MICCAI 论文投稿须知翻译
MICCAI 论文投稿须知翻译 以MICCAI 2021 PAPER SUBMISSION AND REBUTTAL GUIDELINES为例,每年投稿须知类似 作者信息和rebuttal 本文件包含 ...
- 使用Python实现多线程、多进程、异步IO的socket通信
多线程实现socket通信服务器端代码 import socket import threading class MyServer(object): def __init__(self): # 初始化 ...
- [HNCTF]Web详解_原创
WEB Challenge__rce 根据给出的源代码来看典型的命令执行但是正则匹配掉说有的字母只留下数字和少量字符串. 根据大佬给出的思路使用自增绕过 <?php error_reportin ...
- 数电第7周周结_by_yc
一.通用双向移位寄存器: 功能描述: 4位的双向移位寄存器,含控制输入端(ctrl).串行输入端(Dsl.Dsr).4个并行输入端和4个并行输出端,要求实现5种功能:异步置零.同步置数.左移.右移 ...
- JavaEE Day11 BootStrap
之前:前端知识 HTML+CSS+JavaScript 不好写 今日内容:前端的开发框架,内部定义了丰富的CSS样式和JS代码,只需要拿来用就行 会用即可 一.BootStrap ...
- 【CDH数仓】Day02:业务数仓搭建、Kerberos安全认证+Sentry权限管理、集群性能测试及资源管理、邮件报警、数据备份、节点添加删除、CDH的卸载
五.业务数仓搭建 1.业务数据生成 建库建表gmall 需求:生成日期2019年2月10日数据.订单1000个.用户200个.商品sku300个.删除原始数据. CALL init_data('201 ...
- Py2neo:一种快速导入百万数据到Neo4j的方式
Py2neo:一种快速导入百万数据到Neo4j的方式 Py2neo是一个可以和Neo4j图数据库进行交互的python包.虽然py2neo操作简单方便,但是当节点和关系达几十上百万时,直接创建和导入节 ...
- 直接快速下载NLTK数据
直接快速下载NLTK数据 直接下载NLTK的数据速度很慢,这里提供NLTK数据集,直接下载即可.或者选择下列百度云下载: 链接:https://pan.baidu.com/s/17ZgkoQeMosW ...