JMeter源码解析之JMeter命令行新增命令
JMeter源码解析之JMeter命令行新增命令
需求描述
- 需要新增一条命令,能够在JMeter命令行中能够展示
- 输入对应的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) {
//省略中间代码
}
至此我们已经开发完成新增有一个命令
原文地址:https://blog.csdn.net/u012151594/article/details/142597427
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!