JMeter 和 Gitlab:如何安装和 SQLServer JDBC 驱动程序?

JMeter & Gitlab: How to Install & SQLServer JDBC Driver?

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

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

什么是 the/a 使相关 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)

justb4/jmeter:latest 中的 Microsoft JDBC driver needs to be present in the image you're deploying so you need to create your own Docker image based on the Dockerfile 并在

之间再添加一行
&& 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  \

那么您需要:

  • build 图片
  • tag 它使用你自己的图像 name/version
  • push 它到 dockerhub
  • 用你自己的图片替换justb4/jmeter:latesttag:version

今后请注意,您可以自己从头开始构建 JMeter docker 图像,而不必依赖其他人的图像,请参阅 Make Use of Docker with JMeter - Learn How 文章以获取全面信息。