jmeter-我需要做什么额外连接mysql数据库?

时间:2015-12-18 07:27:48

标签: jmeter

在我的JMeter测试计划中,我创建了一个线程组并添加了带有JDBC连接配置的config元素:

Url: jdbc:mysql://localhost:3306/atmdb,
Driver class: com.mysql.jdbc.Driver
username: ****
password: ****

我还添加了jdbc请求采样器和视图结果树监听器。但是在执行此测试计划后,我看到了这个错误:

2015/12/18 12:53:39 INFO - jmeter.engine.StandardJMeterEngine: Running the test! 
2015/12/18 12:53:39 INFO - jmeter.samplers.SampleEvent: List of sample_variables: [] 
2015/12/18 12:53:39 WARN - jmeter.protocol.jdbc.config.DataSourceElement: Could not load driver: com.mysql.jdbc.Driver java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
  at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
  at java.security.AccessController.doPrivileged(Native Method) 
  at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
  at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
  at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
  at java.lang.Class.forName0(Native Method) 
  at java.lang.Class.forName(Class.java:270) 
  at org.apache.avalon.excalibur.datasource.ResourceLimitingJdbcDataSource.configure(ResourceLimitingJdbcDataSource.java:264) 
  at org.apache.jmeter.protocol.jdbc.config.DataSourceElement.initPool(DataSourceElement.java:235) 
  at org.apache.jmeter.protocol.jdbc.config.DataSourceElement.testStarted(DataSourceElement.java:108) 
  at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:214) 
  at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:336) 
  at java.lang.Thread.run(Thread.java:745)
2015/12/18 12:53:39 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(true,local) 
2015/12/18 12:53:39 INFO - jmeter.engine.StandardJMeterEngine: Starting ThreadGroup: 1 : JDBC Users 
2015/12/18 12:53:39 INFO - jmeter.engine.StandardJMeterEngine: Starting 1 threads for group JDBC Users. 
2015/12/18 12:53:39 INFO - jmeter.engine.StandardJMeterEngine: Thread will continue on error 
2015/12/18 12:53:39 INFO - jmeter.threads.ThreadGroup: Starting thread group number 1 threads 1 ramp-up 1 perThread 1000.0 delayedStart=false 
2015/12/18 12:53:39 INFO - jmeter.threads.ThreadGroup: Started thread group number 1 
2015/12/18 12:53:39 INFO - jmeter.engine.StandardJMeterEngine: All thread groups have been started 
2015/12/18 12:53:39 INFO - jmeter.threads.JMeterThread: Thread started: JDBC Users 1-1 
2015/12/18 12:53:39 WARN - jmeter.protocol.jdbc.config.DataSourceElement: Could not return Connection java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/atmdb at java.sql.DriverManager.getConnection(DriverManager.java:596) 
  at java.sql.DriverManager.getConnection(DriverManager.java:215) 
  at org.apache.avalon.excalibur.datasource.JdbcConnectionFactory.newInstance(JdbcConnectionFactory.java:182) 
  at org.apache.avalon.excalibur.pool.InstrumentedResourceLimitingPool.newPoolable(InstrumentedResourceLimitingPool.java:655) 
  at org.apache.avalon.excalibur.pool.ValidatedResourceLimitingPool.newPoolable(ValidatedResourceLimitingPool.java:145) 
  at org.apache.avalon.excalibur.datasource.ResourceLimitingJdbcConnectionPool.newPoolable(ResourceLimitingJdbcConnectionPool.java:91) 
  at org.apache.avalon.excalibur.pool.InstrumentedResourceLimitingPool.get(InstrumentedResourceLimitingPool.java:371) 
  at org.apache.avalon.excalibur.pool.ValidatedResourceLimitingPool.get(ValidatedResourceLimitingPool.java:97) 
  at org.apache.avalon.excalibur.datasource.ResourceLimitingJdbcDataSource.getConnection(ResourceLimitingJdbcDataSource.java:188) 
  at org.apache.jmeter.protocol.jdbc.config.DataSourceElement$DataSourceComponentImpl.getConnection(DataSourceElement.java:286) 
  at org.apache.jmeter.protocol.jdbc.config.DataSourceElement.getConnection(DataSourceElement.java:146) 
  at org.apache.jmeter.protocol.jdbc.sampler.JDBCSampler.sample(JDBCSampler.java:85) 
  at org.apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.java:434) 
  at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:261) 
  at java.lang.Thread.run(Thread.java:745)
2015/12/18 12:53:39 INFO - jmeter.threads.JMeterThread: Thread is done: JDBC Users 1-1 
2015/12/18 12:53:39 INFO - jmeter.threads.JMeterThread: Thread finished: JDBC Users 1-1 
2015/12/18 12:53:39 INFO - jmeter.engine.StandardJMeterEngine: Notifying test listeners of end of test 
2015/12/18 12:53:39 INFO - jmeter.gui.util.JMeterMenuBar: setRunning(false,local)

有人可以帮我这个吗?

3 个答案:

答案 0 :(得分:3)

按照以下两个步骤解决问题。它解决了我的问题

  1. 将mysql连接器jar放在apache-jmeter-3.0 \ lib文件夹
  2. 重新启动jmeter
  3. 重新启动后,它将选择新放置的jar文件。

答案 1 :(得分:0)

您似乎没有在JMeter的Lib文件夹中放置正确的mysql-connector文件。请下载此jar文件并将其放在JMeter安装的Lib文件夹中。

您可以从以下网址下载最新的 mysql-connector-java-5.1.38-bin.jar https://dev.mysql.com/downloads/connector/j/3.1.html

要正确配置MySQL JDBC连接,请参阅官方JMeter文档:http://jmeter.apache.org/usermanual/component_reference.html#JDBC_Connection_Configuration

答案 2 :(得分:0)

  1. 最好将JMeter和MySQL服务器放在不同的机器上,以便获得更可靠的结果,因为它们可以干扰并争夺机器资源。
  2. Download MySQL JDBC Driver并将其放到JMeter的类路径中(通常是JMeter安装的/ lib文件夹)。或者,您可以在Test Plan级别

    上配置路径

    Add extra jar

  3. 如果将.jar文件复制到/ lib文件夹 - 重新启动JMeter以选择.jar
  4. 我还建议您查看Debugging JDBC Sampler Results in JMeter指南,了解如何执行关联,添加断言等。