连接数据库
添加配置元件 > JDBC Connection Configuration
ps:需要安装这个包至C:\apache-jmeter-5.5\lib (jmrter所在的lib目录下面才可连接)
mysql-connector-java-8.0.30.jar
添加jdbc request 请求
添加取样器 > jdbc request
添加循环控制器
后置处理器 > 循环控制器
添加计数器
配置原件 > 计数器
引用名称: i 这里的i是下面嵌套调用的变量
添加http request 请求,登录为列
ps:__V:变量中嵌套另一个变量时,需要该函数
Jmeter中__V是用于执行变量名表达式,变量名里面嵌套另一个变量。正常变量的引用 ${变量名},但是当变量名称也需要动态读取时,例如:一个变量 ${u_i},但是i是个变量,可能的取值为1, 2, 3,如果${u_${i}},Jmeter会报错,因为Jmeter 本身是不支持嵌套函数的。正确的做法是使用__V函数,正确写法:${_V(u_${i})}。
${u_${i}},是使用__V函数后,最外面的${}要去掉,${__V()}就相当于最外层的${} 如果直接使用该表达式,返回接口时空,因为表达式中,后面是空,是默认值,所以我们需要将表达式中的,去掉,才能返回表达式的值。删除逗号后:${_V(u_${i})}
用正则表达式提取接口返回的结果,将结果赋给变量actual_result
也可以用json提取$..msg,我这用的正则
正则提取式: 左边界(正则式)右边界 万能正则式------ .*?
"msg":" ---左边界 “ -----右边界 (.*?)贪婪匹配
增加响应断言,判断接口返回的结果,与你数据库中保存的期望结果是否一致
提取登录token,为后面需要token的接口调用
添加同步定时器Synchronizing Timer
ps:
Number of Simulated Users to Group by:设置同步的线程数量。当设置为0时,等同于线程组中设置的用户数量,当设置为20时,即当用户达到20时同时释放,当设置的数量大于线程数时,设置无效(数量不可设置为大于线程组中的线程数)。
Timeout in milliseconds:超时时间,单位为毫秒。当设置为0时,即当用户数量达到了设置的数量时则释放,否则一直等待,当设置为300毫秒时,则当时间达到300毫秒时,就释放已经集合的线程,不再等待。
用来保证我们的取样器在同一时刻向服务器发起负载测试
同步定时器设置的20个请求同步,所以前面的线程数大于等20就可以了;
定时器中模拟用户数量为20个,超市为0,每次产生20个线程,就立即释放
添加同步定时器,为的就是20个登录/量化金额的请求时间是一样,就实现了20个并发
添加信息头管理和请求默认值