转自:
https://www.cnblogs.com/wuyonghuan/p/7479582.html
1.下载并安装mysql jdbc:
mysql-connector-java-5.1.28.jar
2.打开JMeter,点击测试计划
点击“浏览…”按钮,将你的JDBC驱动添加进来
3.右击线程组名称,添加–配置元件–JDBC Connection Configuration
variable name 设置为 orderid。
Database URL:jdbc:mysql://host:port/db(如jdbc:mysql://localhost:3306/testlink
JDBC Driver class:com.mysql.jdbc.Driver
username:连接数据库的用户名(如root)
password:连接数据库的密码
4.添加–Sampler–JDBC Request
创建JDBC Request取样器,variable name 输入上面设置的值:orderid,从而建立对应关系。
在SQL Query中输入查询语句,如下:
SELECT CONCAT (“[",
GROUP_CONCAT(
CONCAT("{username:'",login,"'"),
CONCAT("{password:'",password),"'}"),"]“) AS json FROM users
ariable Name: 数据库连接池的名字,需要与上面配置的JDBC Connection Configuration中Variable Name Bound Pool的Variable Name相同
Query:填写的sql语句未尾不要加“;”
Parameter valus:参数值
Parameter types:参数类型,可参考:Javadoc for java.sql.Types
Variable names:保存sql语句返回结果的变量名
Result variable name:创建一个对象变量,保存所有返回的结果
Query timeout:查询超时时间
Handle result set:定义如何处理由callable statements语句返回的结果
variables names设置为A,,C,那么如下变量会被设置为:
A_#=2 (总行数)
A_1=第1列, 第1行
A_2=第1列, 第2行
C_#=2 (总行数)
C_1=第3列, 第1行
C_2=第3列, 第2行
如果返回结果为0,那么A_#和C_#会被设置为0,其它变量不会设置值。
如果第一次返回6行数据,第二次只返回3行数据,那么第一次那多的3行数据变量会被清除。
可以使用${A_#}、${A_1}...来获取相应的值
5.在4.4中的JDBC请求中添加“后置处理器”->“正则表达式提取器”,以提取3.4中的用户名和密码为例设置正则表达式提取器的参数:
引用名称:user
正则表达式:username:’(.+?)’{password:’(.+?)’
模板:
1
使用时,user_g1即为用户名,user_g2即为对应用户名的密码;更多正则表达式提取方法参见Jmeter正则表达式提取器
例:
如果数据库语句查询结果是组合,如:A1,B1,C1
则:引用名称:username
正则表达式:(.+?),
模板: 1 <script type="math/tex" id="MathJax-Element-15">1</script>