自学内容网 自学内容网

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) {
   //省略中间代码
} 

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


原文地址:https://blog.csdn.net/u012151594/article/details/142597427

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!