背景:首先jmeter的脚本参数需要查询数据库,将sql查询的结果参数化到脚本中,同时jenkins要部署jmeter的脚本,希望在部署jenkins时,设置两个参数,一个是环境变量,一个是sql语句的查询条件,通过这两个参数就可以实现jmeter的稳定,不需要频繁更改脚本.
步骤:
1.jmeter连接数据库并将查询结果参数化到对应接口中;
2.jenkins部署jmeter脚本;
3.jenkins提取两个构建时变量:环境变量和城市编码;
4.更改jmeter脚本,需要将jenkins的变量放到jmeter中;
实施:
1.jmeter连接数据库并将查询结果参数化到对应接口中;
我这边连接的mysql数据库,数据库的连接就不多赘述了,需要注意的一点是将多个查询结果参数化放到接口中.
因为我这边的sql语句返回一条记录,所有可以通过a_1,取第一列的第一行.以此类推b_1,第二列的第一行;
2.jenkins部署jmeter脚本
添加一个自由项目,build-构建时执行shell脚本
脚本如下:
cd /home/yxgly/apache-jmeter-3.2/bin
./jmeter -n -t test.jmx -l test.jtl
注解:到jmeter的bin目录下,启动jmeter,-n是非GUI方式运行,-t 指测试脚本,-l 指测试结果集;
3.3.jenkins提取两个构建时变量:环境变量和城市编码;
4.更改jmeter脚本,需要将jenkins的变量放到jmeter中;
非GUI方式运行jmeter脚本可以通过-J变量名=值为脚本提供参数.而jmeter脚本需要通过${__P(变量名)}来获取到-J方式传递的参数.
至此就都配置完了.主要是有几个jmeter的全局变量名词需要了解
最后总结:
a_1 :为取sql语句查询结果的第一列,第一行数据;
-J变量名:为jmeter非GUI方式传递参数;
${__P(变量名)}:为接收非GUI方式传递参数;