分享

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

 lkwenp2lm7anyq 2018-07-26

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./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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多