前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >用Groovy在JMeter中执行命令行

用Groovy在JMeter中执行命令行

作者头像
FunTester
发布于 2020-03-06 01:40:20
发布于 2020-03-06 01:40:20
96400
代码可运行
举报
文章被收录于专栏:FunTesterFunTester
运行总次数:0
代码可运行

前两期文章讲了一些Groovy和JMeter一些配合使用:

这次再来分享一下,Groovy在JMeter中执行命令行的方法,目前我暂时想不到很多适用场景,因为的确我对JMeter并不是很熟悉,也就这两天才开始看一些资料。如果你有很好的适用场景,可以留言告诉我,一起交流交流。

  • 首先新建一个简单的线程组和一个简单的请求:
  • 添加JSR223 预处理程序(后置处理程序需要下一次次请求)

脚本内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
log.info("jps -lv".execute().text)

"jps -lv".execute().text.eachLine{
	log.error("222222222 ${it}")
}

log.info("jmeter -v".execute().text)

控制台输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
2020-03-04 15:25:56,544 INFO o.a.j.e.StandardJMeterEngine: Running the test!
2020-03-04 15:25:56,550 INFO o.a.j.s.SampleEvent: List of sample_variables: []
2020-03-04 15:25:56,551 INFO o.a.j.g.u.JMeterMenuBar: setRunning(true, *local*)
2020-03-04 15:25:56,905 INFO o.a.j.e.StandardJMeterEngine: Starting ThreadGroup: 1 : 线程组
2020-03-04 15:25:56,905 INFO o.a.j.e.StandardJMeterEngine: Starting 1 threads for group 线程组.
2020-03-04 15:25:56,906 INFO o.a.j.e.StandardJMeterEngine: Thread will continue on error
2020-03-04 15:25:56,906 INFO o.a.j.t.ThreadGroup: Starting thread group... number=1 threads=1 ramp-up=1 perThread=1000.0 delayedStart=false
2020-03-04 15:25:56,907 INFO o.a.j.t.ThreadGroup: Started thread group number 1
2020-03-04 15:25:56,907 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started
2020-03-04 15:25:56,908 INFO o.a.j.t.JMeterThread: Thread started: 线程组 1-1
2020-03-04 15:25:57,220 INFO o.a.j.m.J.JSR223 预处理程序: 48993  -Xms512m -Xmx1500m -XX:ReservedCodeCacheSize=500m -XX:+UseCompressedOops -Dfile.encoding=UTF-8 -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Djdk.http.auth.tunneling.disabledSchemes="" -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Xverify:none -javaagent:/Users/fv/jetbrains-agent.jar -Djb.vmOptionsFile=/Users/fv/Library/Preferences/IntelliJIdea2018.3/idea.vmoptions -Didea.java.redist=jdk-bundled -Didea.paths.selector=IntelliJIdea2018.3 -Didea.executable=idea -Didea.home.path=/Applications/IntelliJ IDEA.app/Contents
49572 sun.tools.jps.Jps -Dapplication.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home -Xms8m
48524 ./ApacheJMeter.jar -Dapple.laf.useScreenMenuBar=true -Dapple.eawt.quitStrategy=CLOSE_ALL_WINDOWS
49053 org.jetbrains.idea.maven.server.RemoteMavenServer -Djava.awt.headless=true -Didea.version==2018.3.5 -Xmx768m -Didea.maven.embedder.version=3.3.9 -Dfile.encoding=UTF-8

2020-03-04 15:25:57,393 ERROR o.a.j.m.J.JSR223 预处理程序: 222222222 48993  -Xms512m -Xmx1500m -XX:ReservedCodeCacheSize=500m -XX:+UseCompressedOops -Dfile.encoding=UTF-8 -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -Djdk.http.auth.tunneling.disabledSchemes="" -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Xverify:none -javaagent:/Users/fv/jetbrains-agent.jar -Djb.vmOptionsFile=/Users/fv/Library/Preferences/IntelliJIdea2018.3/idea.vmoptions -Didea.java.redist=jdk-bundled -Didea.paths.selector=IntelliJIdea2018.3 -Didea.executable=idea -Didea.home.path=/Applications/IntelliJ IDEA.app/Contents
2020-03-04 15:25:57,393 ERROR o.a.j.m.J.JSR223 预处理程序: 222222222 49573 sun.tools.jps.Jps -Dapplication.home=/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home -Xms8m
2020-03-04 15:25:57,393 ERROR o.a.j.m.J.JSR223 预处理程序: 222222222 48524 ./ApacheJMeter.jar -Dapple.laf.useScreenMenuBar=true -Dapple.eawt.quitStrategy=CLOSE_ALL_WINDOWS
2020-03-04 15:25:57,393 ERROR o.a.j.m.J.JSR223 预处理程序: 222222222 49053 org.jetbrains.idea.maven.server.RemoteMavenServer -Djava.awt.headless=true -Didea.version==2018.3.5 -Xmx768m -Didea.maven.embedder.version=3.3.9 -Dfile.encoding=UTF-8
2020-03-04 15:25:58,421 INFO o.a.j.m.J.JSR223 预处理程序:     _    ____   _    ____ _   _ _____       _ __  __ _____ _____ _____ ____
   / \  |  _ \ / \  / ___| | | | ____|     | |  \/  | ____|_   _| ____|  _ \
  / _ \ | |_) / _ \| |   | |_| |  _|    _  | | |\/| |  _|   | | |  _| | |_) |
 / ___ \|  __/ ___ \ |___|  _  | |___  | |_| | |  | | |___  | | | |___|  _ <
/_/   \_\_| /_/   \_\____|_| |_|_____|  \___/|_|  |_|_____| |_| |_____|_| \_\ 5.1 r1853635

Copyright (c) 1999-2019 The Apache Software Foundation


2020-03-04 15:25:58,424 INFO o.a.j.t.JMeterThread: Thread is done: 线程组 1-1
2020-03-04 15:25:58,424 INFO o.a.j.t.JMeterThread: Thread finished: 线程组 1-1
2020-03-04 15:25:58,424 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test
2020-03-04 15:25:58,425 INFO o.a.j.g.u.JMeterMenuBar: setRunning(false, *local*)

虽然不很擅长JMeter,这些功能需求主要还是来自于测试同行同事,我顺便查一下,写一些Demo,如果你对Groovy在JMeter应用也有类似的功能需求,可以留言,我趁着JMeter知识还没在我脑海中衰退,写个Demo给你。


  • 郑重声明:文章首发于公众号“FunTester”,禁止第三方(腾讯云除外)转载、发表。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FunTester 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
用Groovy处理JMeter变量
本来没打算写这个系列的,又看了看JMeter的文档,发现Groovy在JMeter中能发挥很多非常有趣的功能,虽然语法和API比较隐晦,但好得不多。
FunTester
2020/03/05
1.1K0
用Groovy处理JMeter变量
Groovy在JMeter中处理header
发现JMeter系列写了不少文章,干脆整个全套的,把剩下的Demo也发一下,旧文如下:
FunTester
2020/04/03
1.5K0
Groovy在JMeter中处理header
用Groovy处理JMeter中的请求参数
下面分享一下Groovy如何在JMeter修改请求参数,这个在正常测试中用处还是很广的,跟设置变量不一样,很多参数可能需要校验签名,而且每一次请求的参数也不尽相同。需要在设置完请求参数后,然后用程序统一处理一下。比如计算参数签名、加密明文、从数据库中取值等等。
FunTester
2020/03/06
1K1
用Groovy处理JMeter中的请求参数
用Groovy记录JMeter请求和响应
下面分享一下Groovy如何在JMeter文件操作,我选了一个保存超时请求和响应的脚本,抛砖引玉,各位可以依需拓展。如果将这个功能在拓展一些,比如分别记录某些响应错误的请求,超时请求,以及根据业务码不同分别记录请求和响应,对于BUG的追溯将会有很大的帮助。亦可以在请求中进行时间控制,对于某些查询结果响应时间较长的请求,尝试修改类似pageSize的参数,或者请求分页列表,page递增,遇到没有内容的就回头从page=1继续开始等等。
FunTester
2020/04/03
3760
用Groovy记录JMeter请求和响应
JMeter参数签名——Groovy脚本形式
发现JMeter系列写了不少文章,干脆整个全套加强版,把剩下的Demo也发一下,旧文如下:
FunTester
2020/05/01
1.1K0
用Groovy在JMeter中使用正则提取赋值
正则表达式是特殊的文本字符串,用作查找与之匹配的其他字符串的模板。它们是从字符串中检索数据(子字符串)的非常强大的机制。在Apache JMeter™中,可以从内置组件正则表达式提取器中使用正则表达式,也可以用Groovy编写它们。
FunTester
2020/04/03
1.3K0
用Groovy在JMeter中使用正则提取赋值
JMeter参数签名——Groovy工具类形式
发现JMeter系列写了不少文章,干脆整个全套加强版的,把剩下的Demo也发一下,旧文如下:
FunTester
2020/05/04
6320
Java多线程编程在JMeter中应用
在最近的工作中,遇到一个需求:在JMeter中生成一个全局唯一变量,获取一次自增x(这个不确定,可能根据响应信息)。这不是我的需求,只是从同事那边听说到的,周末没事儿想起来这个事儿。按照我的方案肯定是用Java或者Groovy去实现这个需求,肯定不会选JMeter。
FunTester
2020/07/21
1K0
Groovy在JMeter中处理cookie
突然发现JMeter系列写了不少文章,干脆整个全套的,把剩下的Demo也发一下,旧文如下:
FunTester
2020/04/03
7170
Groovy在JMeter中处理cookie
Jmeter BeanShell采样器提取接口响应并传递(三)
1、将fastjson-1.2.68.jar放置C:\jmeter\apache-jmeter-5.0\lib路径下
王大力测试进阶之路
2020/04/08
2.8K0
Jmeter BeanShell采样器提取接口响应并传递(三)
jmeter压测学习36-请求body自动签名带上sign参数
接口请求body带有sign签名参数,sign签名是根据请求body除去sign本身参数后,拼接请求参数最后md5加密生成的。 使用 jmeter 测试接口,我们希望在请求之前修改 post body 里面的 sign 参数的值为签名的值。
上海-悠悠
2021/01/18
1.4K0
jmeter压测学习36-请求body自动签名带上sign参数
Jmeter(三十八) - 从入门到精通进阶篇 - 命令行运行JMeter详解(详解教程)
  前边一篇文章介绍了如何生成测试报告,细心地小伙伴或者同学们可以看到宏哥启动Jmeter生成测试报告不是在gui页面操作的,而是在gui页面设置好保存以后,用命令行来生成测试报告的。这一篇宏哥就详细的介绍一下为什么用命令行而不是GUI,以及启动时的一些参数的含义。
北京-宏哥
2021/03/18
5.6K0
Jmeter(三十八) - 从入门到精通进阶篇 - 命令行运行JMeter详解(详解教程)
云原生时代的Spring Boot 3.0: GraalVM原生镜像,启动速度提升近30倍
Spring Boot 3.0 五天前(2022年11月24日)发布了,变化很大,基于spring6.0,spring6.0是Spring下一个未来十年的新开端。
后端云
2023/02/10
3.6K0
云原生时代的Spring Boot 3.0: GraalVM原生镜像,启动速度提升近30倍
jmeter使用个人总结(很细很全)
Apache JMeter 是 Apache 组织开发的基于 Java 的压力测试工具。用于对软件做压力测试,它最初被设计用于 Web 应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter 允许使用正则表达式创建断言。
魔都虫师
2020/05/21
4.7K0
jmeter使用个人总结(很细很全)
使用 JDK 自带工具进行 JVM 诊断调优实战
最近参加面试多次被面试官问到JVM调 优方面的问题,即时自己面试前也重点复习了这一块的面试题,但是发现还是回答地不太好,浪费了好多次面试机会,真是让自己很抓狂。归根结底是自己以前一直只注重业务,而忽略了JVM调优这一块,对JVM这一块的实践太少了。这几天自己也重点观看了马士兵老师的JVM调优视频课, 看完之后自己也在本机和腾讯云服务器上进行了一番实践,感觉还是很有收获的。
用户3587585
2023/12/18
8510
使用 JDK 自带工具进行  JVM 诊断调优实战
虚拟机性能监控、故障处理关于控制台的命令整理
监视虚拟机各种运行状态信息;显示进程中的 类加载、内存、垃圾收集、即时编译 等; 如果没有GUI图形化界面的服务器,可以通过该命令查看运行状况,命令格式:
eeaters
2021/12/12
5670
虚拟机性能监控、故障处理关于控制台的命令整理
如何搭建 Elasticsearch-kibana 环境
es使用java编写,安装es之前,需要先检查jdk环境,一般要求在1.7以上,如果没有安装jdk,建议直接安装1.8版本。安装过程参考:https://blog.csdn.net/weixin_39800144/article/details/78836289
IT云清
2019/01/22
2K1
Elastic Stack之 Elasticsearch 6.7.1版本单机版安装、集群版安装
1、截至目前Elasticsearch 版本已经更新到了7.10.1版本了,这里先使用Elasticsearch 6.7.1版本,给一个下载地址,如下所示:
别先生
2021/01/13
1.4K0
浅谈ElasticSearch架构以及集成
Elasticsearch是一个高度可扩展的开源的分布式Restful全文搜索和分析引擎。它允许用户快速的(近实时的)存储、搜索和分析海量数据。它通常用作底层引擎技术,为具有复杂搜索功能和要求的应用程序提供支持。以下是ES可用于的一些场景:
chengcheng222e
2021/11/04
7970
Elasticsearch实战(三)-MacOS下载安装启动Elasticserch、Kibana
es本身特点之一就是开箱即用,如果是中小型应用,数据量少,操作不是很复杂,直接启动就可以用了
JavaEdge
2021/02/22
6750
Elasticsearch实战(三)-MacOS下载安装启动Elasticserch、Kibana
相关推荐
用Groovy处理JMeter变量
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验