我需要找到一种方法在 JMeter 中从 Intellij Idea 启动测试。我尝试使用 JUnit Request 但它支持 junit 3 和 4,而我使用 junit 5,这就是为什么无法使用此采样器的原因。此外,我还尝试通过编写初始化测试并触发其执行的代码来使用 Java 请求和 JSR223 请求。我使用了 ChatGPT 帮助,但没有成功。你能帮我一下吗?已经好几天了,问题还是没能解决。
ChatGPT 代码示例: //JSR223 采样器
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(): 新的 TestRunner().runTests();
我还将项目的 jar 放在 lib/ext 中
如果这确实是您正在寻找的(我的意思是可以从 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())
演示:Apache Groovy:Groovy 的用途是什么?