0

justb4/jmeter:latest我有一个从Docker 映像调用 JMeter 的 Gitlab 管道。

一切正常,但是当我签入最新版本的 JMX 时,我忘记了我正在使用本地安装的 MSSQL JDBC 驱动程序,所以我得到了下面的预期 ClassNotFoundException。

使相关 DLL 和 JAR 可用于我的 gitlab-ci 文件的正确方法是什么?

Cannot load JDBC driver class 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
    at org.apache.commons.dbcp2.DriverFactory.createDriver(DriverFactory.java:49)
    at org.apache.commons.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:462)
    at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:528)
    at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:734)
    at org.apache.jmeter.protocol.jdbc.config.DataSourceElement$DataSourceComponentImpl.getConnection(DataSourceElement.java:362)
    at org.apache.jmeter.protocol.jdbc.config.DataSourceElement.getConnection(DataSourceElement.java:198)
    at org.apache.jmeter.protocol.jdbc.sampler.JDBCSampler.sample(JDBCSampler.java:80)
    at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:638)
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:558)
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:489)
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:256)
    at java.lang.Thread.run(Thread.java:748)
4

1 回答 1

1

Microsoft JDBC 驱动程序需要存在于您正在部署的映像中,因此您需要根据Dockerfile创建自己的 Docker 映像,justb4/jmeter:latest并在其之间再添加一行

&& tar -xzf /tmp/dependencies/apache-jmeter-${JMETER_VERSION}.tgz -C /opt  \

&& rm -rf /tmp/dependencies

您需要添加以下内容:

&& curl -L --silent https://repo1.maven.org/maven2/com/microsoft/sqlserver/mssql-jdbc/9.4.1.jre8/mssql-jdbc-9.4.1.jre8.jar >  /opt/apache-jmeter-${JMETER_VERSION}/lib  \

然后你需要:

  • 构建图像
  • 使用您自己的图像名称/版本对其进行标记
  • 送到 dockerhub
  • 替换justb4/jmeter:latest为您自己的图像标签:版本

今后请注意,您可以自己从头开始构建 JMeter docker 映像,而无需依赖其他人的映像,请参阅通过 JMeter 使用 Docker - 了解如何文章以获取全面信息。

于 2022-01-05T08:16:15.183 回答