Jmeter
文章平均质量分 68
~见贤思齐~
资深性能测试+测试开发
曾先后就职于山东城商行联盟(金融)、京东物流(电商)、奇安信(企业安全)、智联招聘。
展开
-
jmeter采集ELK平台海量业务日志( 采用Scroll)
由于性能测试需要,需采集某业务系统海量日志(百万以上)来使用,做稳定性压测使用。用来按条件获取HTTP请求后返回结果中_scroll_id字段的值,因为下次请求的入参需要_scroll_id字段的值。,例如,以便将一个索引的内容重新索引到具有不同配置的新索引中。原创 2023-09-12 16:16:49 · 1323 阅读 · 0 评论 -
BeanShellInterpreter: Error invoking bsh method: eval In file: inline evaluation of 问题解决
jmeter BeanShellInterpreter: Error invoking bsh method: eval In file: inline evaluation of 问题解决原创 2023-01-10 16:36:22 · 3939 阅读 · 0 评论 -
使用cursorMark做深度分页来解决solr普通分页时查询效率低的问题-jmeter、solr
cursorMark深度分页 VS solr普通分页原创 2022-08-17 17:46:31 · 594 阅读 · 0 评论 -
jmeter压测GraphQL接口(两种方式)
GraphQL接口测试 GraphQL接口 压测 GraphQL接口性能测试原创 2022-08-16 15:28:10 · 955 阅读 · 0 评论 -
Metersphere较JMeter的优势解读(转载)
Metersphere VS Jmeter转载 2022-06-14 14:31:54 · 690 阅读 · 0 评论 -
linux 重启jmeter服务
jmeter启停脚本原创 2021-12-30 17:47:40 · 1783 阅读 · 0 评论 -
jmeter报错java.lang.NoClassDefFoundError: Could not initialize class io.grpc.netty.NettyChannelBuilder
背景:使用jmeter远程负载机压测rocksdb(研发在rocksdb上封了一层服务,压测的是服务接口)时,工具后台报以下错误:2021-12-09 18:02:06,970 ERROR o.a.j.JMeter: Uncaught exception in thread Thread[线程组 1-1,6,main]java.lang.NoClassDefFoundError: Could not initialize class io.grpc.netty.NettyChannelBuilder原创 2021-12-10 20:57:29 · 3753 阅读 · 0 评论 -
jmeter压测TIDB数据库
近日,项目需要考察tidb数据库读操作的最大处理能力,需要进行极限压测。据了解tidb是兼容 MySQL 5.7的,可以使用jdbc连接池方式来压测,正好jmeter工具中提供了jdbc插件,因此可以用jmeter作为压测工具。具体操作步骤:前提:需要下载mysql jar包.下载地址:链接:https://pan.baidu.com/s/1t-k9RW141lw0j_QSw53rqg提取码:p8ip把 mysql-connector-java-commercial-5.1.25-原创 2021-12-08 17:03:12 · 1172 阅读 · 0 评论 -
详解Jmeter之 JDBC Connection Configuration(转载)
前言发起 jdbc 请求前,需要有 JDBC 连接配置,即先连上数据库,才能查询数据库JDBC Connection ConfigurationJDBC Connection Configuration 界面介绍Variable Name for created poolJDBC Connection Configuration算是一个数据库连接池配置 Variable Name :数据库连接池的名称 一个测试计划可以有多个 JDBC Connection,只要.转载 2021-12-03 10:06:03 · 1203 阅读 · 0 评论 -
全链路压测方案梳理-转载
全链路压测的概念挺火的,想做成却没有机会(毕竟不是互联网巨头类的公司),所以在这里也不想纸上谈兵,可能过段时间它就会被更新更高大上的概念给替换了,但是我们可以收集一下相关资料(目前可以开展全链路压测的公司真的很少,所以资料有限),将来对自己的性能测试项目可能也会有帮助:相关链接:阿里全链路压测 全链路压测3.0 智能全链路压测有赞全链路压测实战 全链路压测方案设计与实施详解 全链路压测引擎的设计与实现京东全链路压测饿了么全链路压测滴滴全链路压测解决之道...转载 2021-11-15 16:53:47 · 608 阅读 · 0 评论 -
jmeter-BeanShell预处理器与BeanShell后置处理器的使用
引言:BeanShell sampler 、BeanShell PreProcessor、BeanShell PostProcessor、BeanShell Listener都涉及到BeanShell,下面我们就介绍所有关于jmeter中要使用的变量:SampleResult、ResponseCode、ResponseMessage、IsSuccess、Label、FileName、ctx、vars、props、log;一、jmeter中的beanShell的:loglog在beanshell中主要转载 2021-11-04 17:53:36 · 1518 阅读 · 0 评论 -
解决Jmeter读取csv文件时报 <EOF>问题
使用Jmeter进行压测某接口时,参数化文件csv中存放的是json字符串,debug脚本时,发现接口报错,请求信息中参数化文件显示 <EOF>.如下图:csv插件默认配置信息如下:参数化数据:经问题定位,尝试更改设置中的“是否允许双引号”项设置为Flase,问题解决。如下图:正确结果输出:...原创 2021-10-19 14:40:39 · 3543 阅读 · 0 评论 -
转载:多个性能测试工具的并发模式
大家所熟悉的性能测试工具有Loadrunner、JMeter,以及其他小众一些的工具,如Locust、Ngrinder、Gatling等等,那么你们知道这些工具有什么不同吗?为什么有的工具能模拟数千上几万的并发,有的工具单机只能模拟一两千的并发,这其中的原因是什么呢?那么这节课我就来告诉大家,你所不了解性能测试工具的一面:并发模式。一、多进程 / 多线程并发模式多进程:同时执行多个程序。如,运行微信,QQ,以及各种浏览器(进程列表里能看到多个程序在运行)。多线程:同一时刻执行多个线程。如,用转载 2021-09-18 16:48:31 · 162 阅读 · 0 评论 -
Jmeter BeanShell Sampler实现大文件分割/拆分(分割成多个指定数量文件)
性能测试时,有时需要对参数化大文件进行分割,分割数量依赖远程负载机的数量。以下为例,把csv或txt等格式大文件分割成10份。使用Jmeter BeanShell Sampler实现方式如下:beanshell代码:import java.io.*; String targetFile = "C:\\tools\\apache-jmeter-3.2-plugins\\bin\\csh\\playGameVar.txt"; String saveDir = "...原创 2021-09-15 11:12:24 · 834 阅读 · 0 评论 -
Jmeter beanshell 实现-请求生成的参数化数据写入文件
需求:A-B-C三个功能需要单交易负载测试。其中,功能B的请求入参是功能A的出参(返回值)原创 2021-09-14 14:37:09 · 1445 阅读 · 0 评论 -
批量上传文件到多台linux服务器(sshpass)
前些日子由于性能测试需要,压测负载机准备了几十台,而接口中依赖的参数化文件,每次只能使用一次,因此需要每执行完场景,都要重新批量上传参数化文件,使用客户端连接工具给每台机器上传又太费事。于是本着省事的原则,想办法提高效率:1、用jmeter的ssh插件,调用scp命令复制到其他负载机中。经验证,jmeter执行失败。原因:scp复制文件时,总需要提示输入用户名、密码,调用失败。2、百度后发现sshpass命令可以每次不用输入用户名、密码(只需要首次ECDS...原创 2021-09-08 12:27:36 · 1796 阅读 · 0 评论 -
Jmeter SSHCommandSampler: Failed to connect to server with credentials :
ERROR o.a.j.p.s.s.SSHCommandSampler: Failed to connect to server with credentials [email protected]:22 pw=***2021-09-02 17:03:43,224 ERROR o.a.j.p.s.s.AbstractSSHSampler: SSH connexion error原创 2021-09-03 10:51:07 · 639 阅读 · 0 评论 -
Jmeter各类线程组详解(转载)
了解JMeter的朋友都知道,它不仅能做简单的接口测试、还支持性能测试,接口类型不仅支持Rest、SOAP,也可扩展WebSocket、Socket等。无论你用Jmeter做哪种测试,哪种接口类型,哪种网络协议,你都必须添加使用Jmeter线程组,线程组在Jmeter中占据主导地位,它是任何一个测试计划的起点,所有的逻辑控制器、采样器、处理器、报告等都必须放在线程组之下,也就是说你若使用Jmeter做接口测试或性能测试那么,线程组是必不可少的。本文分为三个方面为大家介绍Jmeter的线程组,主要从:线程组介转载 2021-08-20 15:48:15 · 2042 阅读 · 1 评论 -
jmeter线程组之jp@gc - Ultimate Thread Group
首先,我们来了解几个jmeter中的概念我们在添加一个线程组时通常都要配置这几个属性线程数:即并发用户数ramp-up时间(秒):持续时间,加速时间比如,并发数是1000个,持续时间设置为10,表示跑完1000个线程,我要花费10s,那每秒钟就要发送100个线程 并发数是1000个,持续时间是50s,表示50s要跑到1000个线程,那每秒钟就是1000/50=20,每秒钟发送20个请求 并发数1000个,持续时间1000s,那每秒就是...转载 2021-08-20 15:30:12 · 4552 阅读 · 1 评论 -
Jmeter线程组之 jp@gc - Stepping Thread Group (deprecated)
Stepping Thread Group(逐步线程组)这个可以模仿递增式并发(不但递增还可以递减),并可设置递增次数、递增启动延迟、递增时长、到达目标递增数量保持时长等等:参数解释:1、线程组最大用户数:100个2、初次加载用户前等待时间:10秒,此时没有用户进入3、第一次加载用户数:10个用户开始4和5:每隔10秒加10个用户6、ramp-up在几秒内启动线程组7、持续压测60秒,一分钟8、和9:退用户,每10秒退出10个用户10、上面各种设置的图形表转载 2021-08-20 15:25:18 · 2619 阅读 · 0 评论 -
Jmeter线程组之 bzm - Free-Form Arrivals Thread Group
该线程组与Arrivals Thread Group类似,不过是通过设置起始值、终止值和持续时间来达到压测目的。而且可以设置多个线程的集合,它只是提供了自由格式的时间表功能配置项1)名称:可自定义。2)在取样器错误后要执行的动作继续:继续执行。启动下一进程循环:忽略错误,启动下一个循环。停止线程:停止该线程的所有操作。停止测试:等待当前执行的采样器结束后,停止整个测试。立即停止测试:直接停止所有测试。3)Threads Schedule(线程场景):自定义时间点A到时间点B的模.转载 2021-08-20 15:22:44 · 903 阅读 · 0 评论 -
Jmeter线程组之 bzm - Concurrency Thread Group(递增式并发线程组)
Concurrency Thread Group(递增式并发线程组)这个可以模仿递增式并发(只能递增不能递减),并可设置递增次数、递增时长、到达目标递增数量保持时长等等:参数解释:· Target Concurrency:目标并发(总线程数)· Ramp Up Time:加速时间(总加速时长)· Ramp-Up Steps Count:加速步骤计数(总加速/递增次数)· Hold Target Rate Time:保持目标速率时间(到达总线程数后持续时长)· Time Unit:转载 2021-08-20 15:15:12 · 2752 阅读 · 2 评论 -
Jmeter线程组之bzm - Arrivals Thread Group
bzm - Arrivals Thread Group线程组一个“到达”是线程迭代的一个开始(虚拟用户的一个迭代开始)。在到达的线程组用于时间表“到达”。“到达”的调度是描述负载的另一种方法。由于“到达”是脚本迭代的开始,因此调度到达就是迭代开始的调度。该自由形式到达线程组类似于抵达线程组有一个主要的区别-调度更加灵活。参数解释:· Target Rate:目标线程数(总线程数)· Ramp Up Time:所需多少加载时间(总加速时长)· Ramp Up Steps Count:所需多转载 2021-08-20 15:12:49 · 1501 阅读 · 0 评论 -
基于Jmeter的thrift-RPC接口测试
根据需求,产品部分功能采用thrift-RPC协议进行接口的增、删、改、查,前期采用Junit对其进行测试,为了提高RPC接口测试的简洁化和后期的性能测试需求,打算通过Jmeter的java类测试实现。前期准备:开发提供了IDL描述的Thrift文件:dataService.thrift,其中定义了相关接口函数及数据类型,如下:enum VStatus { ON, OFF}struct VData { 1: required string tablename;转载 2021-08-17 21:22:40 · 791 阅读 · 0 评论 -
BeanShell 内置变量 prev详细介绍
前提BeanShell 有的内置变量,JSR223 也会有对应的变量,这里 JSR223 效率更高,所以以它为栗子简单介绍prev 提供对当前取样器结果的访问能力 prev 映射 org.apache.jmeter.samplers 的 SampleResult 类 官方文档: https://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html常用方法getResponseCode方法声明转载 2021-08-07 15:34:56 · 752 阅读 · 0 评论 -
jmeter+influxdb+grafana压测监控
背景: 话说Jmeter原生的监控确实太丑了,听大佬们在讨论Jmeter+InfluxDb+Grafana的监控,于是,为了有一个漂亮的测试报告,就手动开始进行部署。安装步骤:1、influxdb下载安装: [root@localhost ~]#wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.0.x86_64.rpm --no-check-certificate [root@localhost ~]# r.转载 2021-07-30 10:42:07 · 349 阅读 · 0 评论 -
InfluxdbBackendListener插件扩展(jmeter+grafana)
前几天文章介绍了测试结果、环境监控基于influxdb、Grafana展示报表搭建。Jmeter错误日志信息写入结果文件,出现错误时第一时间查看比较吃力,基于后置处理器Backend Listener的InfluxdbBackendListenerClient简单扩展可实现错误日志Grafana实时展示。InfluxdbBackendListenerClient一、Influxdb数据格式1、Influxdb insert通过http端口curl -i -XPOST 'h.转载 2021-07-26 17:29:32 · 1354 阅读 · 0 评论 -
Jmeter常用定时器介绍
背景 jmeter并发测试每个请求之间是没有延时的,但实际工作有时候需要增加固定时间来测试,那么可以Jmeter定器组件,完成工作。其实这些知识百度一查就出来,为什么还要写,主要方便自己复习,要找的时候就从自己文章中找出,而且这些自己通过自己调试后,直接可以拿出来用。定时器Constant Timer 固定定时器 Uniform Random Timer 均匀随机定时器 Constant Throughput Timer 固定吞吐量定时器 Gaussian Random...转载 2021-07-15 18:10:31 · 371 阅读 · 0 评论 -
JMeter中BeanShell Sampler使用技巧(转载)
BeanShell是一种轻量级的脚本语言,纯java编写。在jmeter中可以使用BeanShell Sampler编写脚本。常用内置变量有3个: log 用于在jmeter.log中打印日志,可以打印字符串、变量 log.info("hello world"); vars 用于存取jmeter线程变量,通常用于存取字符串内容,也可以存取对象 vars.get() String mykey = vars.get("keyname"); -----...转载 2021-07-13 12:57:34 · 933 阅读 · 0 评论 -
jmeter-响应断言详细说明(转载)
一、响应断言:对服务器的响应接口进行断言校验,来判断接口测试得到的接口返回值是否正确。二、添加断言:1、apply to:通常发出一个请求只触发一个请求,所以勾选“main sampie only”就可以;若发一个请求可以触发多个服务器请求,就有main sample 和sub-sample之分了2、要测试的响应字段:(1)一般的http响应,都勾选“响应文本”;(2)url样本是对sample的url进行断言,如果请求没有重定向,就请求url,如果有重定向,就请求url和重定向url;(3)响转载 2021-07-06 10:42:09 · 777 阅读 · 0 评论 -
.CSVDataSet: java.io.IOException: File never reserved
使用火焰图定位性能问题原创 2021-07-02 11:22:38 · 472 阅读 · 0 评论 -
jmeter断言之jp@gc - JSON Path Assertion
Jmeter4.0版本已增加JSON Assertion插件,如果是3.2以上版本的话也可以在插件管理里面进行下载,插件下载地址:https://jmeter-plugins.org/?search=jpgc-json适用情况:服务器返回的响应内容是json格式PS:点击apply按钮时,请记得保存测试计划,因为安装后会进行重启插件安装.png参数说明:JSON Path:json提取表达式,用于提取目标json串节点值 Validate against expected value转载 2021-06-24 15:53:23 · 441 阅读 · 0 评论 -
Jmeter中唯一值-UUID取值(截取指定长度、去除“-”)
在中,添加以下代码即可实现uuid值的去-,并根据需要截取字符串长度。import java.util.UUID;UUID uuid1 = UUID.randomUUID(); //获取UID的值//把uuid中的‘-'去掉,然后传给zichuan。vars.put是beanshell的赋值函数vars.put("bizNumber",(uuid1.toString()).toUpperCase().replaceAll("-","").substring(0,14));...原创 2021-06-16 21:10:43 · 3227 阅读 · 0 评论 -
jmeter分布式操作-远程启动功能探索(转发)
一、背景:之前在Jmeter插件监控服务器性能一篇中说到,在非GUI环境中监控时为了保存监控数据需要修改jmeter脚本,并且每次通过施压机(远程服务器,非GUI环境)来压测时都要将jmeter脚本上传然后在服务器上通过命令行启动,测试完成后再把结果数据下载到本地GUI环境中查看,总是有很多不方便。 本次压测需求需要很大的并发量,例如3000,但是单台施压机难以实现,因此希望多台施压机并行,并且我能同步控制它们。 在这样的需求下经过了解,jmeter工具本身有一个很强大的远程启动功能,于是尝试了一下转载 2021-06-10 16:42:46 · 572 阅读 · 0 评论 -
业务系统算法性能测试(算法压测)
怎样进行业务系统中算法或规则引擎压测原创 2021-06-01 20:30:00 · 1227 阅读 · 1 评论 -
jmeter5.4.1插件管理器下载安装-Jmeter-plugins-manager
jmeter提供了基本的一些功能,但有时基本功能不满足测试需求,需要借助jmeter扩展插件来实现测试验证。1、首先下载Jmeter-plugins-manager插件,并存放到jmeter的 lib/ext 目录下。2、重新打开jmeter后,依次选择options - PluginsManager3、进入Available Plugins tab页,在插件列表中选择待使用的插件,然后点击右下角 Apply Changes and Restart JMeter按钮。....原创 2021-05-21 15:32:25 · 7681 阅读 · 3 评论 -
jmeter+jenkins 配置过程(转载)
jmeter+jenkins 配置过程转载于https://zhuanlan.zhihu.com/p/91559212一、安装jmeter第一步 安装JDK,配置JDK路径。注:jdk下载地址,推荐使用jdk1.8版本http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html环境变量配置如下:注:jdk安装在哪个盘就写哪个路径注:在path路径...转载 2021-05-20 16:56:09 · 435 阅读 · 0 评论 -
Jmeter官方资料地址
1. API 文档http://jmeter.apache.org/api/overview-summary.html2. jmeter元件介绍 介绍各种线程组、吞吐量、响应时间报告等https://jmeter-plugins.org/wiki/Start/3. 插件下载https://jmeter-plugins.org/原创 2021-04-23 16:14:31 · 1668 阅读 · 0 评论 -
让idea自动生成类关系图
学习了解一些开源的工具源码,有时需要了解到程序入口及项目类之间的关系。Idea工具提供了这个功能。以meter5.1.1源码为例,看下RemoteJMeterEngineImpl类的关系图。操作方法:1、定位到RemoteJMeterEngineImpl类(通过快捷键 ctrl+shift+F 全局搜索)。2、选中RemoteJMeterEngineImpl类,快捷键ctrl+h------->点击左键--------->Diagrams,共两种选择,任选一种就可以看到类的关原创 2021-04-23 11:59:10 · 4856 阅读 · 0 评论 -
IDEA源码编译Jmeter5.3
1 下载源码下载地址:https://jmeter.apache.org/download_jmeter.cgi源码下载完成后,解压到指定目录,解压后目录结构如下,注意,没有网上很多教程中说的两个eclipse文件,也没有ant的build.xml,5.3是基于Gradle的2 导入源码到IntelliJ IDEA解压完成后,打开IDEA,然后File–》Open打开解压的源码,选择bin目录的上级目录打开打开后会在右下角弹出找到Gradle build script,此时,点击Impo转载 2021-02-04 11:44:50 · 621 阅读 · 0 评论