Jmeter
文章平均质量分 95
smooth00
近二十年软件开发及测试工作经验,以及多年技术管理和测试架构师经验,主要研究方向是性能测试和自动化测试,擅长工具的集成化应用和二次开发,对性能监控和性能分析、以及测试开发方面有多年的实战经验(热衷做小兵的老人)。
展开
-
JMeter与Selenium WebDriver集成的价值
JMeter作为性能或接口测试工具,用在UI测试上多少属于不伦不类,而Selenium WebDriver作为如今最主流的UI开源测试工具,得到许多人的认可。那么为什么又有人要把JMeter与Selenium WebDriver进行结合呢?我们首先来看看Selenium是如何实现WebDriver的远程调用的吧,你会发现它和JMeter的远程调用模式有许多相通之处。原创 2022-09-18 21:23:46 · 1134 阅读 · 2 评论 -
JMeter动态线程组和动态吞吐量
说到JMeter的动态线程组和动态吞吐量技术时,这里会有一些误解,很多人会理解成动态参数,比如通过NonGui命令模式传参,其实不对,而我们所说的动态线程技术,是指创建动态的线程组,在测试计划运行过程中(压测不停止),线程组是可以任意改变参数变量的,比如上面的线程数和压测时间,甚至吞吐量都可以在压测过程中任意改变。原创 2022-09-06 16:04:42 · 1589 阅读 · 0 评论 -
JMeter压测原则之Non Gui模式
命令行模式(Non-Gui)优点:1、图形化界面消耗更多资源,如CPU和内存,容易使压力机达到瓶颈,从而影响测试结果。2、图形化界面不支持大型的负载测试和性能测试,并发较大时,JMeter会崩溃。3、命令行方式可以把脚本配置到Jenkins上实现持续集成,做成自动化测试。通过shell脚本或批处理命令均可执行,测试结果可生成报表,可被直接使用生成图形化报告。4、方便支持远程或分布式执行。原创 2022-08-22 14:01:41 · 884 阅读 · 0 评论 -
JMeter分布式架构和端口知识
Jmeter的分布式调用是通过Java的RMI(Remote Method Invocation)技术实现的,RMI支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。RMI 用于不同虚拟机之间的通信,这些虚拟机可以在不同的主机上、也可以在同一个主机上;一个虚拟机中的对象调用另一个虚拟上中的对象的方法,只不过是允许被远程调用的对象要通过一些标志加以标识。......原创 2022-08-22 13:57:37 · 694 阅读 · 0 评论 -
JMeter体系结构及运行原理
本文从JMeter的结构体系,元件关系,运行原理(核心代码解析)三个方面来说明JMeter的基本原理和相关架构体系。原创 2022-08-16 10:49:11 · 650 阅读 · 0 评论 -
JMeter关于influxDB 2.x 后端监听器使用
目前大部分资料都是介绍有关jmeter 与 influxdb1.x 版本的集成,但是,在 2021 年,influxdb 升级到 2.x 版本,这个版本与 1.x 版本有结构性的调整,完全不兼容,直接要切换过来难度不小,官网和社区这方面的资料也不多,所以我边用边做个笔记,方便自我查阅,有需要的人也可以参考。............原创 2022-08-09 13:10:01 · 2759 阅读 · 0 评论 -
玩转 jmeter backend listener kafka
说到JMeter后端监听器,大家接触比较多的是Influxdb监听器InfluxdbBackendListenerClient,可以将测试报告实时推送到Influxdb,然后用Grafana展示。但是这种方式在大并发情况下,会因为吞吐量过大,Influxdb本身的性能瓶颈,无法支撑(Influxdb崩溃是常有的事),所以使用Kafka监听器就很有必要了,Kafka作为消息队列中间件,可以起到缓冲器的作用。...........................原创 2022-08-05 13:26:22 · 2496 阅读 · 1 评论 -
Jmeter动态吞吐量实现
在容量测试时,“控量”是非常重要的,JMeter 是根据线程数大小来控制压力强弱的,但我们制定的压测目标中的指标往往是吞吐量(QPS/TPS),这就给测试人员带来了不便之处,必须一边调整线程数,一边观察 QPS/TPS 达到什么量级了,为了解决这个问题,JMeter 提供了吞吐量控制器的插件,我们可以通过设定吞吐量上限来限制 QPS/TPS,达到控量的效果。原创 2021-12-02 16:03:24 · 8613 阅读 · 0 评论 -
Jmeter的端口使用问题解析
Jmeter的端口是通过Java的RMI技术实现的,我们默认端口是1099,RMI就是远程方法调用(Remote Method Invocation),它支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。Java RMI 用于不同虚拟机之间的通信,这些虚拟机可以在不同的主机上、也可以在同一个主机上;一个虚拟机中的对象调用另一个虚拟上中的对象的方法,只不过是允许被远程调用的对象要通过一些标志加以标识。RMI的交互图: RMI由3个部分构成...原创 2021-03-31 13:25:17 · 13059 阅读 · 1 评论 -
关于Jmeter后端监听器统计TPS的坑
关于Jmeter后端监听器的在使用过程中,确实遇到了不少坑,接上一篇文章《关于Jmeter后端监听器的一个坑》,我们今天再说说关于TPS(Throughput)统计方面的一坑: Jmeter性能测试过程中我们统计的TPS其实就是吞吐率 Throughput(Req/sec),也叫每秒请求数或每秒事务数,而Jmeter后端监听器(BackendListener)在这方面的采样也比较简单,就是汇总包括TotalCount、SuccessesCount、FailuresCount的指标,...原创 2020-08-21 10:58:25 · 16567 阅读 · 1 评论 -
关于Jmeter后端监听器的一个坑
Jmeter的后端监听器(BackendListener)是一个异步侦听器,可以将数据推入到数据库中,提供了InfluxDB,graphite两个选项。用来监听Jmeter取样器的测试结果,能够以树、表及图形的形式来显示测试结果。除了监听测试结果之外,大部分监听器还提供查看,保存和读取已保存测试结果的方法。具体使用方法参考:https://blog.csdn.net/smooth00/article/details/79926294 但是使用过程中,Jmeter后端监听器有个...原创 2020-07-24 14:13:35 · 16277 阅读 · 8 评论 -
性能测试知识问题整理(三)
续上一篇《性能测试知识问题整理(二)》二十一、Ramp-up 配置有什么作用?为什么说压力工具中 TPS 和响应时间曲线抖动过大不易于分析?问题一:Jmeter中Ramp-up 配置有什么样的作用? Ramp-up 配置的时间是指启动所有配置的线程总数所用的时间,例如设置的线程总数为500,Ramp-up设置的时间为50s,意为:启动500个线程数需要50s,平均为每一秒启动10个线程。 另外整个压力持续时间Duration是包括Ramp-up的时间,很多人理解为是t...原创 2020-05-22 13:30:58 · 8003 阅读 · 2 评论 -
倾囊相授之性能分析思路
我还年轻的时候,经常听一些大会或者演讲。有些人说,思路逻辑非常重要。我那时就想,你肯定是瞎忽悠的,因为我怎么就没听懂你说的思路呢?而现在轮到自己来写或者讲一些东西的时候,才发现他们说得很对,而我之所以不理解,也是有原因的。性能分析思路和具体的实现之间,有一道鸿沟,那就是操作的能力。之前我为什么听不懂那些人的思路,其实是因为我没有操作的功底。而有了操作的功底之后,还有一个大的鸿沟要越过去,那就是从操作到对监控计数器的理解。这一步可以说让很多性能测试人员都望而却步了。但是这还不算完,这一步迈过去转载 2020-05-18 10:35:36 · 6596 阅读 · 3 评论 -
Jmeter函数分类及自定义开发
Jmeter强大之处是其开源性和可扩展性,所以Jmeter拥有大量丰富的插件和元件,还有各种好用的函数,如果能巧妙应用函数助手里的函数,就能让性能测试脚本插上翅膀,实现各种复杂的计算和逻辑应用场景。 以下是我整理的各个版本所启用的函数(可能也会有一点出入,欢迎大家指正),这些函数在不同的jmeter版本中启用,所以jmx脚本的兼容性一定要考虑到这些因素(如果函数一但不...原创 2019-11-26 17:26:14 · 8298 阅读 · 0 评论 -
JMeter测试WebSocket的经验总结
最近有一个微信聊天系统的项目需要性能测试,既然是测试微信聊天,肯定绕不开websocket接口的测试,首选工具是Jmeter,网上能搜到现成的方法,但是网上提供的jar包往往不是最新的,既然是用最新版本的Jmeter4.0,那么所依赖的插件jar包也应该追求新的。所以提供了以下链接供大家下载(甚至连源码都提供):(1)Jmeter工具(2)websocket请求模板JMet...原创 2018-08-03 10:06:29 · 51653 阅读 · 30 评论 -
Jmeter的Html报告汉化及解析
经常有人提出Jmeter生成的html报告都是英文的看不懂,能不能给解释一下,一般提出这种问题的人要么是懒,要么是对性能测试不是很了解(隔行如隔山嘛,可以理解)。所以我专门整理了Jmeter报告的汉化模板,有兴趣的可以下载。当然不可能所有的内容都汉化,所以以下我会对各项指标再做一下说明。一、html模板汉化 专门准备了Jmeter 4.x 和Jmeter5.x 两套汉化模板:h...原创 2019-09-12 17:13:30 · 17910 阅读 · 17 评论 -
一系列自动化测试的开源项目介绍
在如今开源的时代,我们就不要再闭门造车了,热烈的拥抱开源吧!本文针对性能测试、Web UI 测试、API 测试、数据库测试、接口测试、单元测试等方面,为大家整理了github或码云上优秀的自动化测试开源项目,希望能给大家带来一点帮助。一、性能自动化测试1、项目名称:基于Jmeter实现的在线压测平台和在线管理Jmeter脚本系统项目简介:本项目基于renren-f...原创 2018-11-21 14:14:22 · 23608 阅读 · 7 评论 -
分析Kettle性能测试过程中的STARTDATE时间问题
关于如何进行Kettle的数据交换性能测试,以及测试过程中发现的STARTDATE时间问题原创 2017-03-21 11:53:18 · 11043 阅读 · 0 评论 -
性能测试工具操作数据库(六)-Jmeter与PostgreSQL
性能测试工具操作数据库连载六,本章节以jmeter操作PostgresQL为例,可以实现jmeter批量插入、更新、查询、删除oracle数据库,以及说明注意事项,对初学者绝对有帮助。原创 2017-03-28 16:09:54 · 14298 阅读 · 6 评论 -
性能测试工具操作数据库(八)-Jmeter与SQL Server
性能测试工具操作数据库连载八,本节在上一节Loadrunner操作Sql Server的基础上,改成用Jmeter工具连接操作,具体包括JDBC连接、查询、插入数据操作,涉及到的操作过程和注意事项对新人绝对有帮助。原创 2017-03-31 10:14:03 · 11365 阅读 · 2 评论 -
jmeter关于录制带中文的get请求回放会报错的问题
通过谷歌浏览器代理录制Jmeter脚本,发现汉字是以Unicode编码编码而不是以UTF-8形式的URL编码呈现,但是由Jmeter发送的URL请求参数,最好是严格以UTF-8形式的URL编码发送,否则就会引起不识别的错误,针对这个问题提出具体解决办法。原创 2017-03-22 21:22:24 · 12554 阅读 · 0 评论 -
Jmeter与Ab对比测试
Ab(ApacheBench)也是apache下的另一个压测工具。Ab压测的并发结果和jmeter的并发测试结果会有怎么样的联系呢,我们可以对比下。在下面的例子中,在一个tomcat服务器上运行了一个简单的servlet,该servlet只是睡眠100毫秒,然后返回success给response。转载 2017-04-06 09:39:31 · 15524 阅读 · 1 评论 -
针对Jmeter编码问题简单普及一下字符编码知识
对于Jmerter中需要使用中文字符时,我们一般用UTF-8编码,而且对于CSV Data Set Config的中文参数化,我们要求用编辑器(Sublime、UltraEdit等)保存为无BOM的UTF-8编码格式的,这是为什么呢?从下面的字符编码介绍,就知道原因了:1、美国人发明存储英文的是ASCII码,扩展到全世界使用就成了ANSI码,中国人发明了GB2312码(ASCII码的中文扩充),继...原创 2017-04-19 09:12:59 · 10097 阅读 · 1 评论 -
性能测试工具操作数据库(五)-Jmeter与MongoDB
JMeter测试MongoDB性能有两种方式,一种是利用JMeter直接进行测试MongoDB,还有一种是写Java代码方式测试MongoDB性能。转载 2017-03-28 11:21:01 · 14946 阅读 · 0 评论 -
性能测试工具操作数据库(十一)-Jmeter与Hbase
由于在网上找不到Jmeter连接Hbase的源文件或是插件,所以本文只是通过Jmeter的BeanShell来调用和调试Hbase的远程连接操作,具体性能测试时,需要怎么应用(比如通过Java Request等方式),等具体开展测试时再进行灵活扩展和调整。关键的是要引用正确的Hbase jar包(还要保证版本的兼容,Hbase1.0开始就要求JDK1.7及以上,而且Jmeter引用的Hbase Jar包最好是与服务端的Hbase一致,否则也会出现兼容性问题)。原创 2017-07-04 09:12:12 · 9392 阅读 · 0 评论 -
Jmeter二次开发环境搭建
Jmeter是一款开源工具,源代码是对外公开的,我们可以通过搭建Jmeter源码开发环境,实现编译我们自己的Jmeter版本,同时也能满足对Jmeter的扩展开发(毕竟开源的东西有这样那样的问题,进行扩展改造是有必要的)。原创 2017-09-07 13:32:38 · 14994 阅读 · 1 评论 -
Jmeter和Ant的html报告优化及Dashboard Report介绍
通过Ant可以很方便的build执行Jmeter的jmx脚本,并且输出html报告,靠的就是Jmeter的xsl template模板,具体在build.xml是这样对jmeter-results-detail-report_21.xsl进行调用:<target name="xslt-report" depends="_message_xalan"> ...原创 2017-12-06 11:24:49 · 10198 阅读 · 8 评论 -
Jmeter文件的相对路径及编码在Windows和Linux下的兼容性
Jmeter实际上是不需要安装的,而且能同时在Windws和Linux下运行,而要解决这两个环境运行的兼容性问题,有两点需要注意:一是路径问题及路径符号,二是字符集编码,解决了这两个问题,我们就能将Windows下调试通过的Jmeter包(包括jmx脚本)全部复制到Linux下直接就可以运行,甚至连输出jtl报告、CSV报告、html报告都能完全兼容。原创 2017-12-26 10:41:34 · 14488 阅读 · 0 评论 -
如何让Loadrunner或Jmeter发送邮件报告
Loadrunner支持Java Vuser,而Jmeter本身就是基于Java开发的,所以两者都可以通过JMail组件实现邮件发送。本人使用的是mail-1.4.7.jar,可以通过下载获得:http://download.csdn.net/download/smooth00/10256343 发送邮件除了需要在Loadrunner或Jmeter做好以上Jar包的引用,...原创 2018-02-24 09:18:23 · 4893 阅读 · 1 评论 -
关于Jmeter长时间压测的可视化监控报告
最近有个测试项目,是针对云平台的数据库连接稳定性测试,一般做稳定性测试想到的工具是Loadrunner,因为“成熟稳定”,但是这么重量级的工具不适合搬到云平台上开展测试。于是就想到了Jmeter,Jmeter是优秀的开源测试工具,但是其稳定性还有待验证。 首先将Jmeter轻量包(免安装)上传到云平台,这次肯定是要分布式测试了(因为要测试20台虚拟机与阿里Mysql连接的稳定性),...原创 2018-04-13 14:16:54 · 18745 阅读 · 13 评论 -
针对性能测试工具Gatling与Jmeter的比较及看法
我是一个用惯Loadrunner的人,由于Loadrunner过于重量级,不方便在云端部署和使用,所以平常在这方面只能选择Jmeter,Jmeter的开源性和轻量化是我最喜欢的地方,但是Jmeter的脚本开发模式是我最不喜欢的地方:jmx脚本对应的XML格式太不直观,不方便维护和管理,代码调试也不方便(对于我们这些不愿意依赖于脚本录制的人来说,这点很重要),另外不喜欢的就是Jmeter的性能和稳定...原创 2018-04-20 10:44:09 · 17608 阅读 · 6 评论 -
搭建Jmeter容器集群平台
基于大量虚拟机的Jmeter集群有个缺点,就是不方便管理,比如需要重启Jmeter服务,还需要一个个的连接到虚拟机上进行操作,而且安装部署不方便(无法一键部署),也不方便将集群封装成整体应用对外提供服务。这些缺点通过Rancher部署的容器云平台就能够解决。一、给各个节点的虚拟机安装Docker可以让创建虚拟机时就自动带上统一版本的Docker,就可以省掉这一步操作,网上还推荐使用DaoC...原创 2018-05-03 11:11:49 · 12204 阅读 · 17 评论 -
关于Jmeter参数化的编码问题
大家用jmeter最常遇到的是请求参数中文乱码问题(至于返回值乱码问题由于处理简单也不影响测试,就不在这里说了),而对于这个问题,很多人不能从根本上去分析和理解,所以就无法从根本上去回避和解决,以下我就通过几种情况来分别说明:在这之前,先做好测试案例:(1)准备CSV数据文件,内容只有三列:1,test,测试注意:这里的文件名含路径,linux下必须是csvData/ID2.csv...原创 2018-08-15 11:25:51 · 9469 阅读 · 0 评论 -
基于Jmeter的性能压测平台实现
很早就想要一套属于自己的性能压测平台,原因是使用了阿里云的性能测试PTS,就挺羡慕能有一个这样的性能测试平台,但毕竟人家的东西我们高攀不起(要钱的),而且阿里云的性能测试平台是不支持多种协议的(比如我有一个项目要用websocket测试,结果人家就支持http压测)。 说到开发自己的性能测试平台,肯定想到的是Jmeter,因为开源的性能测试工具没有比它更强大的了,所以第一个想到的是...原创 2018-10-25 17:33:25 · 43010 阅读 · 40 评论 -
Jmeter进行http接口测试(对原文补充)
所有性能测试工具都可以做接口测试,当然Jmeter也会是一款不错的接口测试工具。 1、 本次测试的接口为http服务端接口 2、 接口的主要分成两类,一类提供给查询功能接口,一类提供保存数据功能接口,这里我们举例2个保存数据的接口,因为这两个接口有关联性,比较有代表性。转载 2017-03-17 13:55:39 · 5975 阅读 · 1 评论