提问人:Rajesh Iyer 提问时间:10/14/2023 最后编辑:AndromedaRajesh Iyer 更新时间:10/24/2023 访问量:46
摘要在docker容器中运行时,JMeter DSL抛出java.nio.file.NoSuchFileException: /bin
Abstracta JMeter DSL throws java.nio.file.NoSuchFileException: /bin when running inside a docker container
问:
我在java中创建了一个简单的Spring Boot应用程序,它有一个触发性能测试运行的控制器。当我在本地运行它时,它运行得很好。现在我已经对应用程序进行了 dockerization 并尝试运行相同的控制器。我收到此错误:
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 解决方案。
答:
0赞
rabelenda
10/24/2023
#1
我想我们已经在这里找到了解决方案
基本上,您需要调整spring-boot-maven-plugin配置以添加jmeter依赖项的requireUnpack。
评论