Jmeter自动化测试
文章平均质量分 95
本专栏专注于Jmeter性能测试和接口自动化测试
smooth00
近二十年软件开发及测试工作经验,以及多年技术管理和测试架构师经验,主要研究方向是性能测试和自动化测试,擅长工具的集成化应用和二次开发,对性能监控和性能分析、以及测试开发方面有多年的实战经验(热衷做小兵的老人)。
展开
-
Jmeter的Html报告汉化及解析
经常有人提出Jmeter生成的html报告都是英文的看不懂,能不能给解释一下,一般提出这种问题的人要么是懒,要么是对性能测试不是很了解(隔行如隔山嘛,可以理解)。所以我专门整理了Jmeter报告的汉化模板,有兴趣的可以下载。当然不可能所有的内容都汉化,所以以下我会对各项指标再做一下说明。一、html模板汉化 专门准备了Jmeter 4.x 和Jmeter5.x 两套汉化模板:h...原创 2019-09-12 17:13:30 · 18189 阅读 · 17 评论 -
JMeter与Selenium WebDriver集成的价值
JMeter作为性能或接口测试工具,用在UI测试上多少属于不伦不类,而Selenium WebDriver作为如今最主流的UI开源测试工具,得到许多人的认可。那么为什么又有人要把JMeter与Selenium WebDriver进行结合呢?我们首先来看看Selenium是如何实现WebDriver的远程调用的吧,你会发现它和JMeter的远程调用模式有许多相通之处。原创 2022-09-18 21:23:46 · 1224 阅读 · 2 评论 -
JMeter动态线程组和动态吞吐量
说到JMeter的动态线程组和动态吞吐量技术时,这里会有一些误解,很多人会理解成动态参数,比如通过NonGui命令模式传参,其实不对,而我们所说的动态线程技术,是指创建动态的线程组,在测试计划运行过程中(压测不停止),线程组是可以任意改变参数变量的,比如上面的线程数和压测时间,甚至吞吐量都可以在压测过程中任意改变。原创 2022-09-06 16:04:42 · 1679 阅读 · 0 评论 -
JMeter集成MockJs函数
MockJs技术对于JMeter有什么用呢?首先我们JMeter也是一个模拟前端对后端发请求的工具,有时候也想伪造一些虚拟的数据发送给后端,并且这些数据要是随机的,比如身份证号、邮箱号。以前我们要造这些数据,只能自己写脚本或是封装个jar包进行调用,或者像上一节那样自定义开发个函数。而有了MockJs函数我们就不用那么麻烦了,直接调用生成随机数据就行。..................原创 2022-08-30 10:07:48 · 1308 阅读 · 1 评论 -
JMeter函数自定义开发
JMeter之所以强大,就是因为其开源性和可扩展性,大家开发了大量的插件,也开发了不少的函数,这些函数如果能巧妙应用就能减少我们的工作量,实现各种复杂的计算和逻辑应用场景。很多人会觉得开发JMeter函数是开源社区里的牛人干的事,其实不是,我们只要按照原有的函数模板,依葫芦画瓢,也能做出自己的函数,并且能够在函数助手看到。原创 2022-08-24 13:46:15 · 572 阅读 · 0 评论 -
JMeter压测原则之独立部署监控
无论是用哪种压测工具,我们都会比较关心压测工具所在机器的的系统资源占用情况,毕竟很多人压着压着,压力机出现性能瓶颈了还不知道,并且还错误的评估成是被测系统的性能问题,很多初学者好像都犯过这种尴尬的错误。原创 2022-08-23 14:38:14 · 528 阅读 · 0 评论 -
JMeter压测原则之Non Gui模式
命令行模式(Non-Gui)优点:1、图形化界面消耗更多资源,如CPU和内存,容易使压力机达到瓶颈,从而影响测试结果。2、图形化界面不支持大型的负载测试和性能测试,并发较大时,JMeter会崩溃。3、命令行方式可以把脚本配置到Jenkins上实现持续集成,做成自动化测试。通过shell脚本或批处理命令均可执行,测试结果可生成报表,可被直接使用生成图形化报告。4、方便支持远程或分布式执行。原创 2022-08-22 14:01:41 · 951 阅读 · 0 评论 -
JMeter体系结构及运行原理
本文从JMeter的结构体系,元件关系,运行原理(核心代码解析)三个方面来说明JMeter的基本原理和相关架构体系。原创 2022-08-16 10:49:11 · 729 阅读 · 0 评论 -
JMeter关于influxDB 2.x 后端监听器使用
目前大部分资料都是介绍有关jmeter 与 influxdb1.x 版本的集成,但是,在 2021 年,influxdb 升级到 2.x 版本,这个版本与 1.x 版本有结构性的调整,完全不兼容,直接要切换过来难度不小,官网和社区这方面的资料也不多,所以我边用边做个笔记,方便自我查阅,有需要的人也可以参考。............原创 2022-08-09 13:10:01 · 3077 阅读 · 0 评论 -
玩转 jmeter backend listener kafka
说到JMeter后端监听器,大家接触比较多的是Influxdb监听器InfluxdbBackendListenerClient,可以将测试报告实时推送到Influxdb,然后用Grafana展示。但是这种方式在大并发情况下,会因为吞吐量过大,Influxdb本身的性能瓶颈,无法支撑(Influxdb崩溃是常有的事),所以使用Kafka监听器就很有必要了,Kafka作为消息队列中间件,可以起到缓冲器的作用。...........................原创 2022-08-05 13:26:22 · 2663 阅读 · 1 评论 -
Metersphere相较于JMeter的优势解读
目前JMeter在接口测试和性能测试的市场占用率是很高的,最大的原因是其开源性、易扩展和轻量级(这是Loadrunner不具备的),并且也能满足多种协议的接口和性能测试。而Metersphere是一款基于JMeter引擎技术的软件测试平台,目前在接口测试和性能测试方面,不考虑轻量级因素,基本是可以替代JMeter,并且更易于开展线上测试工作(在线管理用例、在线编辑脚本和调试脚本,在线压测和在线分析报告)。............原创 2022-04-07 14:46:23 · 15181 阅读 · 9 评论 -
Jmeter动态吞吐量实现
在容量测试时,“控量”是非常重要的,JMeter 是根据线程数大小来控制压力强弱的,但我们制定的压测目标中的指标往往是吞吐量(QPS/TPS),这就给测试人员带来了不便之处,必须一边调整线程数,一边观察 QPS/TPS 达到什么量级了,为了解决这个问题,JMeter 提供了吞吐量控制器的插件,我们可以通过设定吞吐量上限来限制 QPS/TPS,达到控量的效果。原创 2021-12-02 16:03:24 · 8842 阅读 · 0 评论 -
Jmeter的端口使用问题解析
Jmeter的端口是通过Java的RMI技术实现的,我们默认端口是1099,RMI就是远程方法调用(Remote Method Invocation),它支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。Java RMI 用于不同虚拟机之间的通信,这些虚拟机可以在不同的主机上、也可以在同一个主机上;一个虚拟机中的对象调用另一个虚拟上中的对象的方法,只不过是允许被远程调用的对象要通过一些标志加以标识。RMI的交互图: RMI由3个部分构成...原创 2021-03-31 13:25:17 · 13236 阅读 · 1 评论 -
性能测试工具操作数据库(四)-Jmeter与Oracle
性能测试工具操作数据库连载四,本章节以jmeter操作oracle为例,可以实现jmeter批量插入、更新、查询、删除oracle数据库,以及说明注意事项,对初学者绝对有帮助。原创 2017-03-28 10:17:29 · 13795 阅读 · 0 评论 -
不同性能测试工具的并发模式
大家所熟悉的性能测试工具有Loadrunner、JMeter,以及其他小众一些的工具,如Locust、Ngrinder、Gatling等等,那么你们知道这些工具有什么不同吗?为什么有的工具能模拟数千上几万的并发,有的工具单机只能模拟一两千的并发,这其中的原因是什么呢?那么这节课我就来告诉大家,你所不了解性能测试工具的一面:并发模式。一、多进程 / 多线程并发模式多进程:同时执行多个程序。如,运行微信,QQ,以及各种浏览器(进程列表里能看到多个程序在运行)。多线程:同一时刻执行多个线程...原创 2021-01-14 15:18:42 · 10655 阅读 · 1 评论 -
关于MeterSphere的性能测试架构理解
MeterSphere的定位为一个“一站式的开源持续测试平台”。它主要涵盖测试跟踪、接口测试、性能测试、团队协作等功能,同时兼容JMeter等主流的开源标准,可以有效地助力开发和测试团队充分利用云的弹性,进行高度可扩展的自动化测试。由于自己做性能测试,就比较关联性能测试这块的实现。以下是官方描述的架构:可以看出来,这个平台是基于Docker的集群部署架构,而且通过NodeController实现了分布式压测部署,性能测试任务会被下发到NodeController,一个NodeController就是原创 2020-09-24 09:13:31 · 25229 阅读 · 11 评论 -
关于Jmeter后端监听器统计TPS的坑
关于Jmeter后端监听器的在使用过程中,确实遇到了不少坑,接上一篇文章《关于Jmeter后端监听器的一个坑》,我们今天再说说关于TPS(Throughput)统计方面的一坑: Jmeter性能测试过程中我们统计的TPS其实就是吞吐率 Throughput(Req/sec),也叫每秒请求数或每秒事务数,而Jmeter后端监听器(BackendListener)在这方面的采样也比较简单,就是汇总包括TotalCount、SuccessesCount、FailuresCount的指标,...原创 2020-08-21 10:58:25 · 16704 阅读 · 1 评论 -
LoadRunner、JMeter 与 nGrinder 对比
可以预见以后性能测试工具市场也就剩这三款工具是主流了,绝对主力目前还是Jmeter。而且开源化和工具免费(收费也通过服务收费)是大势所趋,很多性能测试平台和云压测平台也是基于开源的工具进行集成开发和改造,收费的部分也是基于云服务或压测流量收费。1、Loadrunner基于UI操作,容易上手。早期很流行,功能强大,但是太笨重,安装很麻烦。 不开源,扩展性不高,收费贵。往后的方向肯定是客户端工具逐步向平台化发展,所以已经慢慢被替代了。2、JMeter基于UI操作,容易上手,但是编程...转载 2020-10-24 19:33:49 · 10700 阅读 · 3 评论 -
关于Jmeter后端监听器的一个坑
Jmeter的后端监听器(BackendListener)是一个异步侦听器,可以将数据推入到数据库中,提供了InfluxDB,graphite两个选项。用来监听Jmeter取样器的测试结果,能够以树、表及图形的形式来显示测试结果。除了监听测试结果之外,大部分监听器还提供查看,保存和读取已保存测试结果的方法。具体使用方法参考:https://blog.youkuaiyun.com/smooth00/article/details/79926294 但是使用过程中,Jmeter后端监听器有个...原创 2020-07-24 14:13:35 · 16420 阅读 · 8 评论 -
Jmeter函数分类及自定义开发
Jmeter强大之处是其开源性和可扩展性,所以Jmeter拥有大量丰富的插件和元件,还有各种好用的函数,如果能巧妙应用函数助手里的函数,就能让性能测试脚本插上翅膀,实现各种复杂的计算和逻辑应用场景。 以下是我整理的各个版本所启用的函数(可能也会有一点出入,欢迎大家指正),这些函数在不同的jmeter版本中启用,所以jmx脚本的兼容性一定要考虑到这些因素(如果函数一但不...原创 2019-11-26 17:26:14 · 8370 阅读 · 0 评论 -
性能测试工具操作数据库(五)-Jmeter与MongoDB
JMeter测试MongoDB性能有两种方式,一种是利用JMeter直接进行测试MongoDB,还有一种是写Java代码方式测试MongoDB性能。转载 2017-03-28 11:21:01 · 14985 阅读 · 0 评论 -
关于Jmeter参数化的编码问题
大家用jmeter最常遇到的是请求参数中文乱码问题(至于返回值乱码问题由于处理简单也不影响测试,就不在这里说了),而对于这个问题,很多人不能从根本上去分析和理解,所以就无法从根本上去回避和解决,以下我就通过几种情况来分别说明:在这之前,先做好测试案例:(1)准备CSV数据文件,内容只有三列:1,test,测试注意:这里的文件名含路径,linux下必须是csvData/ID2.csv...原创 2018-08-15 11:25:51 · 9698 阅读 · 0 评论 -
Jmeter与Ab对比测试
Ab(ApacheBench)也是apache下的另一个压测工具。Ab压测的并发结果和jmeter的并发测试结果会有怎么样的联系呢,我们可以对比下。在下面的例子中,在一个tomcat服务器上运行了一个简单的servlet,该servlet只是睡眠100毫秒,然后返回success给response。转载 2017-04-06 09:39:31 · 15574 阅读 · 1 评论 -
性能测试工具操作数据库(十一)-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 · 9468 阅读 · 0 评论 -
Jmeter文件的相对路径及编码在Windows和Linux下的兼容性
Jmeter实际上是不需要安装的,而且能同时在Windws和Linux下运行,而要解决这两个环境运行的兼容性问题,有两点需要注意:一是路径问题及路径符号,二是字符集编码,解决了这两个问题,我们就能将Windows下调试通过的Jmeter包(包括jmx脚本)全部复制到Linux下直接就可以运行,甚至连输出jtl报告、CSV报告、html报告都能完全兼容。原创 2017-12-26 10:41:34 · 14757 阅读 · 0 评论 -
jmeter关于录制带中文的get请求回放会报错的问题
通过谷歌浏览器代理录制Jmeter脚本,发现汉字是以Unicode编码编码而不是以UTF-8形式的URL编码呈现,但是由Jmeter发送的URL请求参数,最好是严格以UTF-8形式的URL编码发送,否则就会引起不识别的错误,针对这个问题提出具体解决办法。原创 2017-03-22 21:22:24 · 12604 阅读 · 0 评论 -
Jmeter进行http接口测试(对原文补充)
所有性能测试工具都可以做接口测试,当然Jmeter也会是一款不错的接口测试工具。 1、 本次测试的接口为http服务端接口 2、 接口的主要分成两类,一类提供给查询功能接口,一类提供保存数据功能接口,这里我们举例2个保存数据的接口,因为这两个接口有关联性,比较有代表性。转载 2017-03-17 13:55:39 · 6022 阅读 · 1 评论 -
如何让Loadrunner或Jmeter发送邮件报告
Loadrunner支持Java Vuser,而Jmeter本身就是基于Java开发的,所以两者都可以通过JMail组件实现邮件发送。本人使用的是mail-1.4.7.jar,可以通过下载获得:http://download.youkuaiyun.com/download/smooth00/10256343 发送邮件除了需要在Loadrunner或Jmeter做好以上Jar包的引用,...原创 2018-02-24 09:18:23 · 4919 阅读 · 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 · 10280 阅读 · 8 评论 -
针对性能测试工具Gatling与Jmeter的比较及看法
我是一个用惯Loadrunner的人,由于Loadrunner过于重量级,不方便在云端部署和使用,所以平常在这方面只能选择Jmeter,Jmeter的开源性和轻量化是我最喜欢的地方,但是Jmeter的脚本开发模式是我最不喜欢的地方:jmx脚本对应的XML格式太不直观,不方便维护和管理,代码调试也不方便(对于我们这些不愿意依赖于脚本录制的人来说,这点很重要),另外不喜欢的就是Jmeter的性能和稳定...原创 2018-04-20 10:44:09 · 17779 阅读 · 6 评论