jmeter 相关教程

jmeter性能测试步骤实战教程 右键点击“线程组” -> “添加” -> “监听器” -> “聚合报告”,用以存放性能测试报告。右键点击“线程组” -> “添加” -> “Sampler” -> “HTTP请求”” -> “添加” -> “Threads(Users)” -> “线程组”右键点击“HTTP请求” -> “添加”-> “监听器” -> “断言结果”右键点击“HTTP请求” -> “添加”-> “断言” -> “响应断言”并在Http请求中使用该参数,格式为:${wd}右键点击“线程组” -> “添加” -> “ 阅读详情

本文主要介绍性能测试中的常用工具jmeter的使用方式,以方便开发人员在自测过程中就能自己动手对系统进行自动压测和模拟用户操作访问请求。最后还用linux下的压测工具ab做了简单对比。

1.      Jmeter相关概念简介:

JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。
Jmeter每个任务都由测试计划 组成,每个测试计划又包含了各种elements,通过不同的elements之间的组合来完成测试计划。一般常用的elements如下:

thread group:包含一组线程,每个线程独立地执行测试计划。

sampler:采样器,有多种不同的sample实现,用来发起各种请求,如http请求,jdbc请求,javaTest请求等等。

logic controller:逻辑控制器有多种不同的实现,可以决定每个sample的执行顺序。

listener:有多种不同的实现,主要用于统计测试接话运行中的数据并展示,如可以进行图形化方式展示响应时间。

timer:定时器,有多种不同的实现,可用作每个请求见的停顿时间。

assertions:断言,有多种不同实现,可以测试sample请求后返回的内容是否符合期望值。例如可以判断html返回的内容是否符合期望。

configuration elements:配置元素,主要用作对sample的请求的参数做配置。

         由于每个controller可以相互嵌套,并且具有作用域(如配置元素只在最近嵌套的一个controller中生效),所以通过上述几个元素的相互组合就可以组装出不同的测试计划。

2.      应用实例:

a)        场景一:多用户并发数压测系统。

这个场景中,100个用户并发访问系统,每个用户循环10次访问系统。

         首先在jmeter新建一个测试计划,然后如下图所示把各个元素新建完毕。(图标旁边都是各elements的实例命名)

         接着,对各个元素的配置进行设置:

i. 100并发:这个是一个线程组,进行如下配置:

在本例中设置了100个线程进行测试,RampUpPeriod是在制定秒数内均匀地把线程启动完毕,设置0则是同时启动,循环次数为1.

ii.    循环控制器:这是一个循环类型的逻辑控制器,它设置了其作用范围内的行为均循环10次——每个线程将循环发起10次http请求。循环控制器配置如下:

iii.  HTTP请求:这是一个Sampler,是最本次测试中最核心部分,负责发起http请求。在该http sampler中,可以设置:服务器地址、访问路径、访问参数、请求方式(Get/post/etc..)等属性。因为该sampler嵌套在循环控制器内,所以将会循环10次发起请求。部分配置如下:

Figure1 http采样器配置

iv.  响应断言:这个是response断言,可以设置响应条件,然后满足断言的话返回成功或失败,后续统计结果可以用到该值。配置如下(本例子中的success是http返回的response data结果,所以只要包含success就判断断言为true):

Figure2 断言配置

v.    http请求参数设置:这是配合httpsampler使用的,就是为了单独把需要频繁配置的内容写到这里,配置方式和http sampler类似。其参数生效作用于在于最近一个嵌套控制器中。

vi.  Summery Report:这是一个listener,它对测试计划中的sampler发起的请求进行统计,可以对断言成功的部分统计也可以全部统计。效果如下:

Figure3 summery report报告

因为本例只有1个http sampler,所以结果第一行就是该sampler的统计结果。

Samples表明有1000个请求发起了,Average是平均响应时间(ms),Throughput是吞吐量,其余参数望文生义基本可以明白,具体可查看jmeter参考手册。

vii.  图形结果:这是另一个listener,它对统计的结果进行图标展示,是和SummerReport相独立的另一项统计,效果如下:

Figure4 图形结果报告

图例参数基本和SummeryReport中的数据一致

         这样,测试计划就完成配置了,然后就是进行测试计划启动了。

         点击工具栏的 或者菜单栏的运行>启动,测试计划开始执行。执行完成后,就可以看到Figure3,Figure4的图标结果了。

         从结果可以看到,本次测试共发起了1000个http请求,平均每个请求的时间是24毫秒,吞吐量是318.1/秒

b)        场景二:多用户登录多步骤访问系统。

这个场景中,2个用户分别先登录系统,然后静止1秒,再依次访问2个页面。

按上面的步骤先把测试计划配置好:

Figure5测试计划2

在这个测试计划中,有2个线程组A和B,每个线程组各代表1个用户,每个用户首先各自在知识库登陆页面登陆,然后跳转到会员中心,最后访问机器列表。

这个测试计划引入了cookie管理器,这个管理器可以在登陆后把用户的cookie保存到线程中。同时在cookie管理器你可以另外设置cookie。

还引入了仅一次控制器,这个控制器可以保证线程在多次循环跑得情况下只登陆一次。

另外,登陆Fragment和页面访问Fragment是2个独立的模块,他们可以分别被2个线程组引用,达到复用的目的而不需要为2个线程组各自设置请求。

具体详情可以在附件的jmeter测试计划文件中了解到。

 

通过以上的基本要素,你就可以为你的应用进行基本访问行为的模拟和并发测试了。还是很方便的。

 

3.      Ab(ApacheBench)对比

Ab也是apache下的另一个压测工具。Ab压测的并发结果和jmeter的并发测试结果会有怎么样的联系呢,我们可以对比下。在下面的例子中,在一个tomcat服务器上运行了一个简单的servlet,该servlet只是睡眠100毫秒,然后返回success给response。

Jmeter和Ab的测试结果如下表所示:

Figure6 jmeter和ab的并发压测对比

其中红色的是有错误出现,并且结果不太稳定没有继续往下再压。

可以看到,在线程数100以下时,jmeter的avg(每个线程的平均响应时间)和ab的Time per request,throughput与request per second基本是一致的,但是之后就开始相差比较大了。具体原因未明,也许是jmeter有更多的东西需要处理和基于gui的缘故,有知情者请不吝赐教。但是,如果jmeter每个线程的循环数设置到无限时候,数据显示性能就会有所提升。

综上所述,我们一般所说的QPS,TPS,对应到jmeter应该就是throughout,对应到ab应该是requestper second,结合2者,就能大致推算出应用的吞吐量大概在哪个范围了。在本例中应该在1200~1400左右。

 

最后再小结下。

本文主要了简述了jmeter的基本使用方式,并结合2个场景讲解了测试计划如何配置,为开发使用做了入门介绍。最后又对一个demo应用,在jmeter和ab的压测下,对结果进行了比较。最后再利用下stackoverflow的一段问答介绍两者的使用场景:

Jmeter告诉你每个请求实际上耗费多长时间。AB只是简单的用数学方式统计平均值。所以从准确性来说,jmeter比ab更准确,更多如数据处理。但是ab的速度更快,更轻巧。如果性能测试的目的在于更真实的表现被测应用,那么jmeter更佳。但如仅仅是用最少的机器资源产生最多的访问请求,那ab适合……

 

参考资料:

jmeter手册.pdf(中文版官方文档)

jmeter官网(http://jmeter.apache.org/)

cnblogs博客:Jackei(http://blog.youkuaiyun.com/jackei)

jmeter应用指南.pdf

【测试工具JMeter篇】JMeter性能测试入门级教程(四):JMeter中BeanShell内置方法使用 1、props是java.util.Properties的实例,与vars作用大致相同,区别的是 vars 是对变量进行读写操作, 而 props 主要是对属性进行读写操作。Failure和FailureMessage是BeanShell Assertion组件独有的内置变量,其作用是设置当前sampler的测试结果(成功或失败),Failure的类型是boolean,FailureMessage的类型是String。注意:vars接收的值必须是字符串类型, 若传递其他类型,包括null,都会报错; 阅读详情

相关推荐

51单片机学习(5)-----蜂鸣器的介绍与使用

蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计 算机、 打印机、 复印机、 报警器、 电子玩具、 汽车电子设备、 电话机、 定 时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。1.半导体三极管也称为晶体三极管,可以说它是电子电路中最重要的器件。三极管顾名思义具有三个电极。二极管是由一个PN结构成的,而三极管由两个PN结构成,共用的一个电极成为三极管的基极(用字母b表示)。其他的两个电极成为集电极(用字母c表示)和发射极(用字母e表示)。

2302_80260350的博客 1万+

jmeter实践

本文主要介绍性能测试中的常用工具jmeter的使用方式,以方便开发人员在自测过程中就能自己动手对系统进行自动压测和模拟用户操作访问请求。最后还用linux下的压测工具ab做了简单对比。 1.      Jmeter相关概念简介: JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试但后来扩展到其他测试领域。 Jmeter每个任务

nizen的专栏 6万+

SMRATS(一) SMARTS+PPO baseline运行教程

python类方法 class Agent: @classmethod def from_function() python typing 含义 为防止弱类型python出现忘记变量类型的问题,python3.5及之后版本增加了对应的类型提示。 输入和输出类型 函数接受并返回一个字符串,注释像下面这样: def greeting(name: str) -> str: return 'Hello ' + name 常用的typing类型 int,long,float: 整型,

Freshduke的博客 1415

JMeter系列4-使用JMeter进行压力测试,计算吞吐量

这个定时器保证了吞吐量为预设的吞吐量,与之前不设置相比,可以保证并发更接近为设置的值,从而计算起QPS更加准确。预计平均响应时间(如200ms)可以计算出每个线程每秒的查询次数为5 所以循环次数为: 5。如预计平均响应时间(如200ms)可以计算出每个线程每秒的查询次数为5。2.目标吞吐量:50(个线程)*5 *60s = 15000。逐步增加线程,直到满足响应时间的最大线程数。目标吞吐量与基于计算吞吐量为一对出现。基于计算吞吐量:所有活动线程。基于计算吞吐量:只有此线程。其中50为预设的线程,......

qq_15821487的博客 6105

ESP32小车DIY:从零搭建无线遥控智能车(附完整代码与避坑指南)

本文详细介绍了如何从零开始DIY一台基于ESP32的无线遥控智能小车。内容涵盖核心硬件选型、电路设计、低延迟ESP-NOW无线通信协议的配置与实战,以及双电机差速控制算法与PWM调速的实现。文章提供了完整的代码示例和关键的避坑指南,旨在帮助开发者快速构建稳定可靠的智能车平台,并为进一步的功能扩展奠定基础。

gamma的博客 471

生物信息学新手必看:MAFFT多序列比对从安装到实战(附参数优化技巧)

本文为生物信息学新手提供了MAFFT多序列比对工具的完整指南。从Linux环境下的安装部署,到核心算法策略(如FFT-NS-i、L-INS-i)的选择逻辑,再到空位罚分等关键参数的深度解析与优化技巧,手把手教你完成从原始序列到高质量比对结果的实战流程,为后续进化树构建等分析奠定坚实基础。

weixin_29230773的博客 485

jmeter压测使用

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34018202的博客 280

从谱峰搜索到多项式求根:Root-MUSIC算法原理与MATLAB实践

本文深入解析Root-MUSIC算法在阵列信号处理中的原理与应用,通过多项式求根替代传统MUSIC算法的谱峰搜索,显著提升计算效率和精度。文章详细介绍了算法核心思想、MATLAB实现步骤及工程优化技巧,帮助读者掌握这一高效的DOA估计方法。

weixin_30832143的博客 80

jmeter学习笔记(三)-性能测试概念

性能测试相关概念 a)       响应时间 是用户提交一个请求,系统从开始呈现到将所有信息都呈现到客户端所需要的时间。   以一个web应用的页面响应时间为例,页面的响应时间可分解为:网络传输时间(N1+N2+N3+N4)、应用延迟时间(A1+A2+A3)。 b)      并发用户数 指同一时刻与服务器进行数据交互的所有用户数量。 c)

bing7219的博客 582

mjlab 入门教程(一)MuJoCo 人形机器人强化学习训练 sim-to-real 部署框架

摘要:mjlab是一个结合IsaacLab API与MuJoCo简洁性的GPU加速机器人仿真框架,专为强化学习和机器人研究设计。它提供快速安装(支持uv、pip、conda和Docker)、核心功能(域随机化、NaN守护、观测历史/延迟、执行器/传感器系统)以及从IsaacLab的迁移指南。相比IsaacLab,mjlab更轻量、启动更快,直接构建在MuJoCo Warp上,避免了Omniverse开销。其哲学强调裸机性能、开发者体验和核心领域专注,适合需要快速迭代和直接MuJoCo控制的用户,而Isaac

2506_90492529的博客 2726

码农新宠大对决:GitHub Copilot、通义灵码和CodeLlama谁主沉浮?

本文对三款主流AI编程工具GitHub Copilot、通义灵码和CodeLlama进行了全面对比分析。GitHub Copilot在多语言支持和代码质量上表现突出;通义灵码在中文理解和阿里云生态集成方面优势明显;CodeLlama则以开源可定制见长。文章从代码生成、理解能力、多语言支持、使用体验等维度展开评测,并结合实际案例说明不同开发者群体的适用选择。建议新手可优先考虑通义灵码,经验开发者适合GitHub Copilot,而有定制需求的企业团队则可选择CodeLlama。随着AI技术发展,这些工具将持续

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 675

Jmeter使用指南

序言 由于公司在来年需要进行压力测试,所以也就借节假日的机会来学习一下压力测试的步骤,由于本人的学习时间比较短,希望各位大神朋友们能够多多的谅解并指正在下的错误,在此仅表敬意 适应人群 1、初入门的压力测试工程师 2、为入门但是打算在软件测试方面发展的同学 3、对软件测试有浓厚的兴趣的人 压力测试初窥探 压力测试顾名思义就是通过模拟指定的用户数量同时访问网站从而达到对网站进行施压,进...

weixin_30739595的博客 758

CATIA 3DEXPERIENCE R2019x VBA开发介绍

CATIA 3DEXPERIENCE R2019x VBA开发介绍 一、 什么是VBA? 【VBA的官方解释】 VBA(Visual Basic for Applications)是VisualBasic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是MicrosoftOffice软件。它也可说是一种应用程式视觉化的 Basic 脚本。 CATIA提供了多种二次开发的接口,其中包括自动化对象编程(Automation)和

WorkMan的博客 5063

jmeter进行脚本录制教程以及相关问题的解决办法

只存储每个组的第一个样本:我们知道一个URL产生的HTTP请求可能不止一个,一张图片、一个样式都会是一个HTTP请求,录制时将会产生很多的HTTP请求,但有时候测试我们需要考虑缓存,实际上一些图片不用每次都去下载,我们也不关心这些图片产生的负载,另外对于互联网多数会用的。每个请求放入一个新的事务控制器:每个URL的请求放入一个事务中,不管它有多少HTTP请求,只要是这个URL请求产生的。6、浏览器中安装证书,https的请求都需要证书 浏览器的证书和jmeter的证书是同一个。1、开启代理后不能上网。

A259338的博客 669

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

jmeter教程系列(5)--HTTP相关组件

jmeter教程系列–HTTP相关组件 (1)HTTP请求消息头: 用来规则HTTP请求头的内容 (2)HTTP请求默认值 可以将HTTP请求中公共的IP地址,端口号,路径,协议,编码,参数进行设置 结果展示:

qq_38484679的博客 274

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Jmeter相关

转载的大神的jmeter相关文章链接,方便查看 https://www.cnblogs.com/Zfc-Cjk/p/8976232.html 如果有需要改动的,请告知,谢谢! https://www.cnblogs.com/Zfc-Cjk/default.html?page=1 ...

zzr999zzr的专栏 254

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Jmeter教程

1.新建环境变量变量名:JAVA_HOME变量值:(即JDK的安装路径) 2.编辑Path%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

hlsxjh的博客 307

jmeter远程调试

jmeter远程调试初体验

weixin_39357332的博客 208

JMeter安装详细教程

一、JMeter介绍 1)Apache JMeter是Apache开源组织开发的纯Java桌面应用,用于进行压力测试和性能测量。 2)JMeter最初被设计用于Web应用测试,后来扩展到其他测试领域。 3)JMeter可用于对静态和动态资源的性能进行测试,资源包括:文件、Servlet、Web动态语言、Java对象、数据库和查询、FTP服务器等; 4)JMeter可用于对服务器、网络或对象模拟大并发下繁重的负载,来测试不同压力情况下的整体性能; 5)JMeter提供了图形化的结果,供用户进行性能分析。 二、

qq_34446946的博客 660

全栈性能测试教程之性能测试相关知识(二) Jmeter的应用

在QA的环境模拟生产运行的业务压力和使用场景组合,测试系统的性能是否满足生产环境的性能诉求。

分享测试知识 1656

连接mongo数据库_如何用Jmeter连接MongoDB?这里有详细教程!

点击上方蓝色字体,关注我们1、驱动包选择  如果MongoDB版本是3.x以下,那么用jmeter自带的mongo-java-driver-2.11.3.jar即可;  如果MongoDB版本是3.x以上,则需要mongo-java-driver-2.13.2.jar,或者更高版本。  将驱动包放在 apache-jmeter-x.x\lib目录下或者apache-jmeter-x.x\...

weixin_30624835的博客 2350

JMeter测试教程

参见:JMeter测试教程

NewxCJY的博客 215

Jmeter安装配置教程-2025版

win+r 调出cmd命令行窗口,输入“systeminfo”;在cmd窗口,输入“jmeter -v”双击.exe文件,无脑下一步。cmd命令行输入:jmeter。(注:java -v会报错。二、Jmeter下载。

m0_61573978的博客 862

【Jmeter第一章】Jmeter实操详细教程(快速入门)

怎么样,是不是很简单,到这里,Jmeter就快速入门了,可以达到基本使用啦~

weixin_47316183的博客 2255

【亲测免费】 MeterSphere JMeter 核心库使用教程

MeterSphere JMeter 核心库使用教程 项目介绍 MeterSphere JMeter 核心库(ms-jmeter-core)是一个基于 Apache JMeter 的开源项目,旨在提供一个高度可扩展的测试框架。该项目主要用于接口测试、性能测试等场景,支持自定义函数和动态加载,适用于各种复杂的测试需求。 项目快速启动 环境准备 Java 环境:确保系统已安装 JDK 1.8 或更高...

gitblog_00757的博客 794

jmeter相关网站

https://jmeter-plugins.org/downloads/all/http://jmeter.apache.org/download_jmeter.cgihttp://www.ltesting.net/ceshi/open/kyxncsgj/jmeter/http://www.badboy.com.au/download/addhttp://artoftesting.com/per...

iSelenium 300
上一篇: 新浪微博网站接入的具体步骤 同步微博
下一篇: 操作系统中的作业、进程、线程、管程各自的定义
satiling
博客等级 码龄19年 130粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值