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

news/2024/11/17 3:46:09/

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.ppmy.cn/news/1531350.html

相关文章

Efficient DETR: Improving End-to-End Object Detector with Dense Prior

原文链接 [2104.01318] Efficient DETR: Improving End-to-End Object Detector with Dense Prior (arxiv.org)https://arxiv.org/abs/2104.01318 原文笔记 What 1、一种针对DETR的objectquery初始化的方法 2、针对Deformable DETR进行改进,改进之后的模型具有…

计算机网络发展

目录 一、计算机网络的起源 1.1 ARPANET的诞生 1.2 TCP/IP协议的提出 二、互联网的兴起与普及 2.1 DNS系统的建立 2.2 万维网的诞生 2.3 互联网的商业化 三、宽带和无线网络的发展 3.1 宽带网络的普及 3.2 无线网络与移动互联网 四、互联网的未来趋势 4.1 5G与物联网…

计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-20

计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-20 1. Multimodal Fusion with LLMs for Engagement Prediction in Natural Conversation Authors: Cheng Charles Ma, Kevin Hyekang Joo, Alexandria K. Vail, Sunreeta Bhattacharya, Alvaro Fern’andez Ga…

华为HarmonyOS地图服务 7- 在地图上绘制标记

场景介绍 本章节将向您介绍如何在地图的指定位置添加标记以标识位置、商家、建筑等。 点标记用来在地图上标记任何位置,例如用户位置、车辆位置、店铺位置等一切带有位置属性的事物。Map Kit提供的点标记功能(又称 Marker)封装了大量的触发…

图为科技大模型一体机,智领未来社区服务

当AI与边缘计算相遇,一幅关于智慧生活的宏伟蓝图正缓缓展开。 今天,让我们一同探索,如何通过图为大模型一体机,为物业服务插上智能的翅膀。 通过整合采集物业数据,大模型一体机可全方位为物业行业赋能,实…

平行驾驶车端(客户端)模拟弱网策略步骤

概念 要进行弱网测试,通常需要同时模拟客户端和服务端的网络环境。因为弱网测试旨在模拟真实的网络条件,包括网络延迟、带宽限制、丢包率等。通过同时模拟客户端和服务端的网络环境,可以更准确地评估应用程序或系统在真实网络条件下的性能和鲁棒性。 在进行弱网测试时,确保…

傅里叶级数在机器人中的应用(动力学参数辨识)

B站首发!草履虫都能看懂的【傅里叶变换】讲解,清华大学李永乐老师教你如何理解傅里叶变换,辨清美颜和变声原理,!!_哔哩哔哩_bilibiliB站首发!草履虫都能看懂的【傅里叶变换】讲解,清…

卷轴模式商城APP开发指南

卷轴模式商城APP的开发是一项融合了技术创新、用户体验优化与商业策略实施的综合性工程。本文将从程序员的角度出发,详细介绍该类型应用的开发流程,涵盖从需求分析到后期维护的各个环节。 一、需求分析 首先,明确APP的核心功能需求&#xff…