访问 MySQL 数据库的数据库 URL 的 Jmeter JDBC 连接配置参数化
Posted
技术标签:
【中文标题】访问 MySQL 数据库的数据库 URL 的 Jmeter JDBC 连接配置参数化【英文标题】:Jmeter JDBC Connection Configuration Parametrization of Database URL for accessing MySQL Database 【发布时间】:2017-11-18 10:31:30 【问题描述】:如何在 JDBC 连接配置下参数化数据库 URL?正常的参数化在这里不起作用。
这不起作用:
Database URL: jdbc:mysql://$mysql_hostname:$mysql_port/$mysql_database
JDBC Driver Class: com.mysql.jdbc.Driver
Username: $mysql_username
Password: $mysql_username
【问题讨论】:
法线参数化是什么意思?你得到什么错误? 我在这里遇到了同样的问题。JDBC Connection Configuration
元素内的变量不会被替换。我有人找到了解决方法,请告诉我。
【参考方案1】:
关键是JDBC Connection Configuration 测试元素正在被初始化之前 JMeter 变量所以如果你想参数化它你应该做的有点不同:
在需要的地方使用__P() function,例如:
Database URL: jdbc:mysql://$__P(mysql_hostname,):$__P(mysql_port,)/$__P(mysql_database,)
JDBC Driver Class: com.mysql.jdbc.Driver
Username: $__P(mysql_username,)
Password: $__P(mysql_password,)
相关的 JMeter 属性可以在 user.properties 文件中设置,例如:
mysql_hostname=localhost
mysql_port=3306
mysql_database=test
mysql_username=johndoe
mysql_passowrd=secret
或通过-J command-line argument 喜欢:
jmeter -Jmysql_hostname=localhost -Jmysql_port=3306 -Jmysql_database=test -Jmysql_usename=johndoe -Jmysql_password=secret
有关 JMeter 属性以及设置和覆盖它们的方法的更多信息,请参阅 Apache JMeter Properties Customization Guide
【讨论】:
这适用于从命令行运行,但不适用于 gui。这令人沮丧,因为那是您想要设置开发值的时候 这很可悲。创建 JDBC 配置后有什么方法可以修改它(使用 groovy 代码)?如果我们可以基于 CSV 文件而不是参数来配置它的属性,那就太好了。【参考方案2】:在 Jmeter (5.1.1) 中,您可以使用“用户定义的变量”。添加-> 配置元素-> 用户定义的变量。
【讨论】:
【参考方案3】:如果能够在 JMeter 变量之后初始化 DB 连接,那就太好了。我有一个调用数据库存储过程的 JMeter JMX。我通过 Jenkins 自动化调用 JMX。
我对多个数据库执行相同的调用。从 Jenkins 调用 JMX 一次并使用 CSV 文件让它针对多个 DB 运行要比在 Jenkins 文件中多次调用并传入不同的 DB 名称要容易得多每次通话。
另外,当我需要针对另一个数据库运行此程序时,将新数据库添加到 CSV 文件比向 Jenkins 文件添加另一个调用要容易得多。
在 Jenkins 文件中有一些可能的解决方法,但没有一个像能够从 JMeter JMX 本身中的 CSV 文件设置 JDBC 连接设置一样好或简单。
【讨论】:
以上是关于访问 MySQL 数据库的数据库 URL 的 Jmeter JDBC 连接配置参数化的主要内容,如果未能解决你的问题,请参考以下文章
Jmeter JDBC连接配置用于访问MySQL数据库的数据库URL的参数化