当前位置: 首页 > 知识库问答 >
问题:

如何以多线程方式从Java代码运行JMTER脚本(JMX)

花飞尘
2023-03-14

我创建了一个可以运行jmetm脚本(jmx文件)并向我提供结果的sping-boot应用程序。所以,基本上我使用jmetm lib通过java代码运行jmx,它对单个用户运行良好(我的意思是,一次一个测试)。现在,我想为多个用户扩展此功能,以便多个用户可以使用不同的实例同时运行jmetm引擎。请你告诉我如何实现这一点?注意:我已经在aws ec-2实例中部署了这个Spring boot应用程序,并进行了一些头脑Storm。请你指导我可以使用哪种方法。

  1. 我可以从Spring Boot中分离JMeter并以多线程方式在aws中单独运行JMeter吗(如果可以,那怎么可能)
  2. 我可以让我的spring-boot应用程序本身多线程吗。这会使我的Jmeter也成为多线程的吗

请就此开导我,谢谢

共有2个答案

白浩气
2023-03-14

我相信您正在使用jemeter在负载下测试您的应用程序(事实上,这就是jMeter工具的全部目的)。有两种方法可以实现这一点

>

  • 在您的Spring启动应用程序和setNumThread(numberOfThread)中创建一个threadGroup对象。它提供了以下方法

    public static ThreadGroup newInstance(LoopController loopController) {
       ThreadGroup threadGroup = new ThreadGroup();
       threadGroup.setProperty(TestElement.TEST_CLASS, ThreadGroup.class.getName());
       threadGroup.setProperty(TestElement.GUI_CLASS, ThreadGroupGui.class.getName());
       threadGroup.setName("Http URL/API Test");
       threadGroup.setEnabled(true);
       threadGroup.setSamplerController(loopController);
       threadGroup.setNumThreads(1);
       threadGroup.setRampUp(1);
       threadGroup.setScheduler(false);
       threadGroup.setDuration(0);
       threadGroup.setDelay(0);
       threadGroup.setComment("");
       threadGroup.setProperty(ThreadGroup.ON_SAMPLE_ERROR, "continue");
    return threadGroup;
    }
    
    

    单独在GUI模式下运行jMeter,并通过配置线程组来加载您的应用程序。您可以通过下载jMeter在本地计算机上执行此操作,或者您需要弄清楚如何在AWS上运行jMeter服务,这是一个完全不同的主题

    要回答您的问题:

    >

  • 我可以从Spring Boot中分离JMeter并以多线程的方式在aws中单独运行JMeter吗(如果可以,怎么可能):是的,你可以这样做

    我可以使我的Spring启动应用程序本身多线程吗?这会让我的Jmeter也成为多线程吗?:不应对原始应用进行任何更改。只需运行带有线程组的jMeter

  • 寇坚成
    2023-03-14
    • 如果您的应用程序只是一个切入点,运行独立的JMeter引擎,在远程机器(一个引擎-一个机器)上执行真正的工作,那将是最好的选择。更多信息:
      • 远程J米引擎
      • 如何在JMeter中执行分布式测试

     类似资料:
    • 问题内容: 从Java运行Unix命令非常简单。 但是可以从Java代码运行Unix Shell脚本吗?如果是,从Java代码中运行Shell脚本是一个好习惯吗? 问题答案: 你应该真正看一下Process Builder。它确实是为这种事情而构建的。

    • 问题内容: 我快要解决这个问题了。 下面是代码: 问题答案: 您的代码是正确的,我相信您不会收到异常,如果您使用进行阅读,则不会得到任何东西。 已经说过,现在命令是100%以这种方式执行,这是因为您正在回显某些内容,需要使用来将其读回。 检查以下示例,该示例将成功创建一个名目录并打印您正在回显的内容。为了将其放入日志文件,恐怕您可以使用“>”来完成它,您可能必须使用一些编辑器命令或使用Java创建

    • 这是我第一次在java中尝试python。我试图从我的代码中执行python脚本,如下所示。 但我有以下例外 无法运行程序“python”:CreateProcess error=2,系统找不到指定的文件 我已经安装了python。我不确定为什么找不到该文件。我试着跟随这个链接,但它并没有解决我的问题。 提前谢谢。 编辑1 我尝试了“Viacheslav Vedenin”给出的示例代码,当我执行我

    • 我正在通过添加Beanshell预处理器读取xlsx文件。当我在Eclispe中运行代码时,它工作得很好。

    • 在下面的代码中,javascript运行在与主线程不同的单独线程中。该脚本是一个无限循环,因此需要以某种方式终止。怎样 使命感脚本开始运行后,cancel()不起作用。但如果我打电话。cancel()在线程初始化之后,它将终止它(注释掉的行)。

    • 问题内容: 我是Java中的多线程和同步的新手。我正在尝试实现一项任务,其中给了我5个文件,每个文件将由一个特定线程读取。每个线程应从文件读取一行,然后将执行转发到下一个线程,依此类推。当所有5个线程都读取第一行时,然后再次从线程1运行行号开始。文件1中的2,依此类推。 并且在ReadFile(在run方法中实现Runnable的情况下,我正在尝试在bufferreader对象上进行同步。 需要帮