如何从JMeter启动Intellij Idea的Java测试?

0vvn1miw  于 2023-10-15  发布在  IntelliJ IDEA
关注(0)|答案(1)|浏览(155)

我需要在JMeter中找到一种从Intellij Idea启动测试的方法。我尝试使用JUnit Request,但它支持junit 3和4,我使用junit 5,这就是为什么不可能使用这个采样器。我还尝试使用Java请求和JSR 223请求,尝试编写初始化测试并触发其执行的代码。我使用了ChatGPT帮助,但没有成功。你能帮我一下吗?已经好几天了,我还是不能解决这个问题。
ChatGPT代码示例://JSR 223采样器

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import com.example.MyTest; // Import your test class

public class MyTestRunner {
    public static void main(String[] args) {
        Result result = JUnitCore.runClasses(MyTest.class); // Replace with your test class
        System.out.println("Total tests executed: " + result.getRunCount());
        System.out.println("Total tests failed: " + result.getFailureCount());
    }
}

//Java请求采样器

import org.example.MyTest;

public class TestRunner {
    public void runTests() {
        MyTest test = new MyTest(); // Replace with your test class
        test.setup(); // Replace with your test setup method
        test.runTests(); // Replace with your test execution method
        test.tearDown(); // Replace with your test cleanup method
    }
}

//在Java Request中,创建TestRunner的示例并调用runTests():new TestRunner().runTests();
我还把一个项目的jar文件放在lib/ext中

lx0bsm1f

lx0bsm1f1#

如果这真的是你要找的东西(我的意思是可以从JMeter运行所有东西,但你不太可能得到好的结果),假设你有:
1.将test classes复制到JMeter执行的“lib/junit”文件夹

  1. JUnit 5及其所有dependencies复制到JMeter类路径
  2. JMeter类路径中的测试所需的任何其他第三方库
  3. junit-platform-launcher在JMeter类路径中(如果还没有)
    1.重新启动JMeter以拾取所有内容
    您应该能够使用以下代码来启动测试
import org.junit.platform.launcher.Launcher
import org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder
import org.junit.platform.launcher.core.LauncherFactory
import org.junit.platform.launcher.listeners.SummaryGeneratingListener

import static org.junit.platform.engine.discovery.DiscoverySelectors.selectClass;

def listener = new SummaryGeneratingListener()
def request = LauncherDiscoveryRequestBuilder.request()
        .selectors(selectClass(com.example.MyTest.class))
        .build()
Launcher launcher = LauncherFactory.create()
launcher.discover(request)
launcher.registerTestExecutionListeners(listener)
launcher.execute(request);
log.info('Passed: ' + listener.getSummary().getTestsSucceededCount())
log.info('Failed: ' + listener.getSummary().getTestsFailedCount())

演示:

有关JMeter中Groovy脚本的更多信息:Apache Groovy: What Is Groovy Used For?

相关问题