Jmeter取数据库数据进行参数传递

Jmeter取数据库数据进行参数传递

https://www.jianshu.com/p/256be580bb14?utm_campaign=maleskine&utm_content=note&utm_medium=pc_all_hots&utm_source=recommendation

1.背景

所有的练习,都是访问的禅道系统(自己在服务器上搭建)。本次练习的主题是:从数据库中获取所有的用户名和密码,然后将参数传递给登录请求,进行登录。
需要了解的知识点:

1.数据库的连接及变量设置
2.循环控制器
3.配置元件Count(计数器)
4.__BeanShell()函数及基本的脚本编写
5.__V()函数的使用(用于两个变量的拼接)

2.Jmeter连接Mysql数据库

1.参考文档:http://jmeter.apache.org/usermanual/component_reference.html#JDBC_Connection_Configuration

 
1jmeter连接mysql数据库.png

Q:Database URL为什么添加了一串后缀呢?【?characterEncoding=UTF-8&characterSetResults=UTF-8&zeroDateTimeBehavior=convertToNull】
A:因为在我的sql语句查询出的结果中,包含了时间格式的数据时,会出现错乱,故加上这个后缀。

2.在JDBC Request中添加sql语句,设置后面要引用的变量名。

 
图片.png

3.查询结果如图:

 
图片.png

3.取数据库数据进行参数化

在登录时,计划通过读取数据库的数据进行参数化,将上面的11条数据都传递下去。
1.方式一:采用__BeanShell函数获取值,其中index是通过添加计数器count获取的;

${__BeanShell(vars.getObject("result").get(${__intSum(${index},-1)}).get("account"))}
${__BeanShell(vars.getObject("result").get(${__intSum(${index},-1)}).get("password"))}

 
图片.png

2.方式二:采用__V函数拼接2个变量。2个变量的拼接,以下4种方式都是错误的:

1.${account_index}
2.${account_${index}}
3.${account}_${index}
4.${__V(${account} _${index})}

正确的方式如下:

${__V(account _${index})}

 
图片.png

3.结果如图:

 
图片.png


作者:乐大爷L
链接:https://www.jianshu.com/p/256be580bb14
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
原文地址:https://www.cnblogs.com/beiank/p/9030792.html