如何在Jmeter中通过系统变量设置jdbc连接配置

时间:2017-09-07 19:54:32

标签: mysql sql-server jdbc jmeter distributed-testing

我们有通用的测试机器,由于安全原因,一个测试人员不应该在采样器中看到其他测试人员的jdbc配置细节,因为有可能滥用用户名和密码以及其他细节。

1.有没有办法为多个数据库(如MySQL,DB2和Microsoft SQL)的不同jdbc连接配置设置系统变量。例如:Application X使用Microsoft SQL,因为应用程序Y使用DB2,而应用程序Z使用MySQL。 Y和Z是集成层。 数据库URL的变量,JDBC驱动程序类,用户名,密码。请提供示例。

2.Tester需要在测试开始前通过命令行运行#1如何操作?命令行是什么?。请提供示例。

3.在JDBC请求中,而不是对sql脚本进行硬编码,如何发送可能包含大量SQL脚本或单个SQL脚本的SQL脚本路径。。请提供示例。

我已经尝试过以下屏幕截图中显示的内容,但始终仅返回结果,仅查看sql查询,但是当查看采样器请求时,我会看到所有发送的查询,但响应仅针对第一个查询。

enter image description here

enter image description here

enter image description here

4.对于分布式测试,需要对上述内容进行特殊处理。。请提供示例。

如何实现#1,#2,#3和#4。

enter image description here

enter image description here

enter image description here enter image description here

以下是最新截图 下面是#1和#2的截图 enter image description here

enter image description here

下面的#3是屏幕截图

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

谢谢, 拉吉

2 个答案:

答案 0 :(得分:0)

每个用户都可以在命令行(-JdbUser)或使用属性文件发送不同的属性。

将每个动态参数定义为dbUser作为属性$ {dbUser},以便每个用户具有不同的连接。

答案 1 :(得分:0)

  1. 您可以使用ie Environment Variables

    来访问操作系统__groovy function
    ${__groovy(System.getenv('DB2_PASSWORD'),)}
    
  2. 取决于您的操作系统,即:

    • 对于Windows系列,命令行类似于:set DB2_PASSWORD=secret
    • 对于Unix系列,它将是:DB2_PASSWORD=secret && export DB2_PASSWORD
  3. 最简单的方法是使用Directory Listing Config Plugin

  4. 根据Remote Testing用户手册输入:

      

    如果测试使用任何数据文件,请注意客户端不会发送这些文件,因此请确保这些文件在每台服务器上的相应目录中可用。如有必要,可以通过编辑每个服务器上的user.properties或system.properties文件来定义属性的不同值。这些属性将在服务器启动时被选取,并可能在测试计划中用于影响其行为(例如,连接到不同的远程服务器)。或者,在测试使用的任何数据文件中使用不同的内容(例如,如果每个服务器必须使用唯一ID,则在数据文件之间划分这些内容)

    JMeter从属设备绝对独立因此您需要执行相同的环境变量设置,复制JDBC驱动程序和SQL脚本,根据需要进行配置更改等。 on each slave < / strong>,