jmeter连接数据库
jdbc://mysql://localhost:3306/kkx-study?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true
执行多条语句:
jdbc://mysql://localhost:3306/kkx-study?useUnicode=true&characterEncoding=utf8
JDBC Request的query type怎么选
1、如果查询,选select
2、如果增删改 ,选update
3、只想看结果,选callback
4、Query Type:Prepared Select Statement(预编译)
sql语句为:select * from emp where empName=? and id=?;
Parameter value:MM,2
Parameter value:varchar,integer
limit 2,3,从2开始查3个,包括2
用计数器生成一个数字n,在SQL中引用,查出对应的结果
select empName from emp limit ${n}, 1;
SQL查询出来的数据用在后面的http请求中需要用ForEach控制器
在ForEach控制器中输入以下字段数据:
输入变量前缀:name
开始循环字段(不包含):0
结束循环字段(含):${name_#}
输出变量名称:t-name
勾选Add"_"before number?
大概意思是:jmeter会把name_1,name_2.....的数据存在t-name中
然后在http请求中,参数名称写 name,值写成${t-name}(以name为例)
如果要在参数化里面嵌套参数化需要借助jmeter自带的函数助手中的__V函数
BeanShell取样器:
String t_name = vars.getObject("xxx").get(0).get("empName");
log.info("t_name:" + t_name);
参数化CSV文件:先在测试计划中定义一个变量,定义一个变量,值是文件的位置,然后在CSV参数化文件中引入刚才定义的变量
vars是jmeter的变量
import java.util.*;
import java.text.*;
Date d = new Date();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateStr = df.format(d);
print(dateStr);
vars.put("dateCrr",dateStr);
vars.put("ab",ab"");
vars.putObject("abo",ab);
在beanshell中,source只能引用java文件,source(文件的路径);比如引用签名文件等。
props.put("aa","bb");
线程组之间参数的传递,利用函数助手中的__P函数生成参数,如:${__P(current_date,)},这个时候如果下个线程取到的值和生成的值不一样,需要在线程组界面勾选独立运行每个线程组的选项,勾选后必须第一个线程运行完后,下一个线程才会运行。