Jmeter入门使用3 - 查询数据库
程序员文章站
2022-03-17 20:57:06
...
需求:商城端下单,分为几种不同的类别订单(如团购、拼团、普通),没有优惠价的就是普通商品,下单后需要验证订单类型。
思路:普通商品下单,再查询数据库,订单类型为普通
Step1-添加元素
1、test plan添加用户端token参数,存放商城端的token值,该值可以在该test plan下多个thread groups中使用。
2、添加元素
- http request defaults: 存放主机地址
- http header manager:存放通用http header参数
- jdbc connection configuration: 配置数据库
- http request(commitOrder):提交订单,需添加一个正则提取器,提取订单号
- JDBC request(searchOrderClassfy):查询数据库,需添加一个bean shell assertion判断结果
- view results tree: 查看请求结果
Step2-设置参数
设置jdbc的连接信息,URL规则为 jdbc:mysql://127.0.0.1:portnum/dbname
正则表达式,用于获取18位的订单号,存放到OrderNo参数里。由于配送方式不同,会拆分成两个不同的订单。需要查询出两个订单号对应的订单类型,如下:
SELECT classify FROM order_tm_order_info WHERE order_no ='${OrderNo_1}' or order_no ='${OrderNo_2}';
Step3-判断规则
同样用正则表达式匹配数据库查询结果,如果未匹配到订单类型,则测试失败;获取到了订单类型,需要判断是不是普通订单类型,不是普通类型,则测试失败,是普通类型,则测试通过。bean shell脚本如下:
import java.util.regex.*;
String resp = prev.getResponseDataAsString();
Pattern p = Pattern.compile("(\\d)");
Matcher m = p.matcher(resp);
if(!m.find()){
Failure = true;
FailureMessage="未找到订单号";
}
while(m.find()){
log.info("group(1):" + m.group(1));
int orderType =Integer.parseInt(m.group(1));
if(orderType != 0){
Failure = true;
FailureMessage="订单类型不准确";
}
}