当前位置: 首页 > news >正文

JMeter源码解析之JMeter命令行新增命令

JMeter源码解析之JMeter命令行新增命令

需求描述

  1. 需要新增一条命令,能够在JMeter命令行中能够展示
  2. 输入对应的JMeter命令,能够展示对应的命令信息
    查看命令效果如下:

apache-jmeter-5.1\bin>jmeter --?
Copyright © 1999-2024 The Apache Software Foundation
–?
print command line options and exit
-z, --aboutme
print developer and exit

运行命令效果如下:

apache-jmeter-5.1\bin>jmeter -z
[INFO ] 2024-09-27 16:12:36,029 JMeter.displayAboutOrg() - **********************************************
[INFO ] 2024-09-27 16:12:36,032 JMeter.displayAboutOrg() - xxxxx有限公司
[INFO ] 2024-09-27 16:12:36,034 JMeter.displayAboutOrg() - xxx中心
[INFO ] 2024-09-27 16:12:36,036 JMeter.displayAboutOrg() - xxx中心
[INFO ] 2024-09-27 16:12:36,037 JMeter.displayAboutOrg() - xxx部
[INFO ] 2024-09-27 16:12:36,038 JMeter.displayAboutOrg() - **********************************************

应用实现

第一步:找到文件\apache-jmeter-5.1\src\core\org\apache\jmeter\JMeter.java,新增一个变量如下

private static final int ABOUT_ME           = 'z';private static final CLOptionDescriptor D_ABOUTME_OPT =new CLOptionDescriptor("aboutme", CLOptionDescriptor.ARGUMENT_DISALLOWED, ABOUT_ME,"print developer and exit");

第二步:在options中新增上述D_ABOUTME_OPT参数

 private static final CLOptionDescriptor[] options = new CLOptionDescriptor[] {//省略中间代码D_ABOUTME_OPT,//省略中间代码};

第三步:新增一个displayAboutOrg方法

 private void displayAboutOrg() {log.info("**********************************************");log.info("***********浙江大华技术股份有限公司***********");log.info("*******************研发中心*******************");log.info("*******************测试中心*******************");log.info("******************测试架构部******************");log.info("**********************************************");}

第四步:再找到如下方法,然后新增代码如下

public void start(String[] args){
//省略中间代码if (parser.getArgumentById(VERSION_OPT) != null) {displayAsciiArt();} else if (parser.getArgumentById(HELP_OPT) != null) {displayAsciiArt();System.out.println(JMeterUtils.getResourceFileAsText("org/apache/jmeter/help.txt"));//NOSONAR $NON-NLS-1$} else if (parser.getArgumentById(ABOUT_ME) != null) {displayAboutOrg();//NOSONAR $NON-NLS-1$} else if (parser.getArgumentById(OPTIONS_OPT) != null) {displayAsciiArt();System.out.println(CLUtil.describeOptions(options).toString());//NOSONAR} else if (parser.getArgumentById(SERVER_OPT) != null) {//省略中间代码
} 

至此我们已经开发完成新增有一个命令

http://www.lryc.cn/news/448332.html

相关文章:

  • YOLOv8 Windows c++推理
  • 一文读懂Python中的Popen函数
  • 07-阿里云镜像仓库
  • net core mvc 数据绑定 《2》
  • 文件服务器FastDFS 消息队列中间件RabbitMQ
  • 工作纪实58-Idea打jar包
  • ELK-03-skywalking监控linux系统
  • HEITRONICS TC13红外辐射高温计CT13 INFRARED RADIATION PYROMETER CT13
  • 开源图像降噪算法与项目介绍【持续更新】
  • RealSense、ZED 和奥比中光Astra几款主流相机介绍及应用
  • 启动 Ntopng 服务前需先启动 redis 服务及 Ntopng 常用参数介绍
  • vector的模拟实现以及oj题(2)
  • 数据技术进化史:从数据仓库到数据中台再到数据飞轮的旅程
  • JAVA JDK华为云镜像下载,速度很快
  • 【RKNN系列】官方函数:querystring
  • Stable Diffusion零基础学习
  • C#基于SkiaSharp实现印章管理(9)
  • 研究生如何利用ChatGPT帮助开展日常科研工作?
  • 汽车零部件开发流程关键阶段
  • Magnific推V2图像生成服务 可直出4K图像
  • E9OA解决文档附件没有关联文档正文问题
  • EasyExcel日常使用总结
  • 人只活一次,活出一道光吧
  • sqli-labs:1~16(sql注入点稳定判断语句、全回显半回显报错回显无回显利用思路、sql注入tips)
  • springboot农产品销售信息微信小程序—计算机毕业设计源码35557
  • HuggingChat macOS 版现已发布
  • C#:动态为Object对象添加新属性的方法
  • 我常用的几个Python金融数据接口库,非常好用~
  • 【机器学习】ID3、C4.5、CART 算法
  • UE5: Content browser工具编写02