如何解决带有 Jmeter 的 noVNC Docker - 启动按钮错误,无法创建脚本记录器 - keytool 错误:java.security.ProviderException
我在 noVNC 中运行 Jmeter,能够在 noVNC 中运行 Jmeter,但在默认小窗口中运行。 但是当我创建 Http(s) 脚本记录器并单击“开始”按钮时,出现此错误
错误是 -> “无法创建脚本记录器 - 有关详细信息,请参阅日志:>> keytool 错误:java.security.ProviderException:无法初始化 NSS
尝试在我的 Chrome 浏览器中使用和不使用代理设置创建 Http(s) 脚本记录器,得到同样的错误。
下面是我的 Dockerfile
FROM uphy/novnc-alpine
RUN \
apk add --no-cache curl openjdk8-jre bash \
&& apk add --no-cache nss \
&& curl -L https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.4.1.tgz > /tmp/jmeter.tgz \
&& mkdir -p /opt \
&& tar -xvf /tmp/jmeter.tgz -C /opt \
&& rm /tmp/jmeter.tgz \
&& cd /etc/supervisor/conf.d \
&& echo '[program:jmeter]' >> supervisord.conf \
&& echo 'command=/opt/apache-jmeter-5.4.1/bin/./jmeter' >> supervisord.conf \
&& echo 'autorestart=true' >> supervisord.conf
ENV JAVA_HOME /usr/lib/jvm/java-1.8-openjdk/
RUN export JAVA_HOME
这就是我的跑步方式(与Use Jmeter desktop application as web app相关)
- 使用 noVNC 创建 docker 镜像并在 noVNC 中运行 Jmeter(最后也提供了 dockerfile)
- 将其暴露给某个端口并在浏览器中访问它
docker build -t jmeter .
docker run -it --rm -p 8080:8080 jmeter
- 我也检查了我的 docker 容器,能够看到 JDK,jdk 已经存在这里 -> /usr/lib/jvm/java-1.8-openjdk/ 和jmeter 存在于此处 /opt/apache-jmeter-5.4.1
- 我不确定是否应该在 docker run 命令中传递更多选项或参数。
- 我想知道,由于此 Jmeter 在 noVNC docker 中运行,因此在单击 start 按钮后,此 jmeter 如何在我的 bin 目录中创建证书?
- 无需导入或无需点击开始按钮即可自动集成/创建此证书的任何其他方式。
- 如果 Jmeter 在 noVNC 容器内运行,如何进行代理设置。
解决方法
我认为你需要install nss
package
改变这一行:
apk add --no-cache curl openjdk8-jre bash \
到这个:
apk add --no-cache curl openjdk8-jre bash nss \
重新构建映像后,HTTP(S) 测试脚本记录器应该会正常启动。
关于证书,它将存储在JMeter的“bin”文件夹容器中所以如果你想在容器中的浏览器中使用 - 你必须安装浏览器还有。
如果您想在本地机器上使用浏览器 - 您需要为 JMeter 的 HTTP(S) 测试脚本记录器 copy the certificate from the container 和 expose another port。
请注意,您还可以使用 JMeter Chrome Extension 记录 JMeter 测试脚本,在这种情况下,您不必担心代理、证书和端口。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。