Abstracta JMeter DSL在Docker容器运行时抛出NoSuchFileException:/bin错误求助
Docker化Spring Boot + JMeter应用触发性能测试时报错排查
我开发了一个简单的Java Spring Boot应用,其中包含触发性能测试运行的控制器,本地运行时一切正常。但将应用Docker化后,触发该控制器时出现如下错误:
2023-10-13 23:44:36 java.nio.file.NoSuchFileException: /bin 2023-10-13 23:44:36 at jdk.zipfs/jdk.nio.zipfs.ZipPath.readAttributes(ZipPath.java:769) 2023-10-13 23:44:36 at jdk.zipfs/jdk.nio.zipfs.ZipPath.readAttributes(ZipPath.java:777) 2023-10-13 23:44:36 at jdk.zipfs/jdk.nio.zipfs.ZipFileSystemProvider.readAttributes(ZipFileSystemProvider.java:276) 2023-10-13 23:44:36 at java.base/java.nio.file.Files.readAttributes(Files.java:1851) 2023-10-13 23:44:36 at java.base/java.nio.file.FileTreeWalker.getAttributes(FileTreeWalker.java:220) 2023-10-13 23:44:36 at java.base/java.nio.file.FileTreeWalker.visit(FileTreeWalker.java:277) 2023-10-13 23:44:36 at java.base/java.nio.file.FileTreeWalker.walk(FileTreeWalker.java:323) 2023-10-13 23:44:36 at java.base/java.nio.file.FileTreeIterator.<init>(FileTreeIterator.java:71) 2023-10-13 23:44:36 at java.base/java.nio.file.Files.walk(Files.java:3918) 2023-10-13 23:44:36 at java.base/java.nio.file.Files.walk(Files.java:3973) 2023-10-13 23:44:36 at us.abstracta.jmeter.javadsl.core.engines.JmeterEnvironment.installConfig(JmeterEnvironment.java:98) 2023-10-13 23:44:36 at us.abstracta.jmeter.javadsl.core.engines.JmeterEnvironment.<init>(JmeterEnvironment.java:41) 2023-10-13 23:44:36 at us.abstracta.jmeter.javadsl.core.engines.EmbeddedJmeterEngine.run(EmbeddedJmeterEngine.java:93) 2023-10-13 23:44:36 at us.abstracta.jmeter.javadsl.core.DslTestPlan.run(DslTestPlan.java:125) 2023-10-13 23:44:36 at com.mtaf.managed_testing_services_core.services.JMeterTestService.runPerformanceTest(JMeterTestService.java:145) 2023-10-13 23:44:36 at com.mtaf.managed_testing_services_core.services.JMeterTestService.startPerformanceTest(JMeterTestService.java:110) 2023-10-13 23:44:36 at com.mtaf.managed_testing_services_core.background_jobs.JobService.runJMeterTest(JobService.java:29) 2023-10-13 23:44:36 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 2023-10-13 23:44:36 at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) 2023-10-13 23:44:36 at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 2023-10-13 23:44:36 at java.base/java.lang.reflect.Method.invoke(Method.java:568)
以下是使用的Dockerfile:
FROM openjdk:17 COPY target/test-performance-api.jar /app/test-performance-api.jar WORKDIR /app ENTRYPOINT ["java", "-jar", "test-performance-api.jar", "--spring.profiles.active=test"] EXPOSE 8080
我猜测是JMeter jar未被正确添加到容器环境中。已经尝试将应用构建为FatJar确保Apache JMeter可访问,但仍出现相同错误。目前想到两个方向:
- 放弃使用Docker,但这样不具备可扩展性
- 改用BlazeMeter或Azure相关方案
希望得到解决该问题的帮助。
内容的提问来源于stack exchange,提问作者Rajesh Iyer
相关产品推荐
相关产品推荐

