Jmeter(一)测试消息推送接口
需求
模拟淘宝批量推送消息到oms,对oms接收接口进行压力测试,需要每次生成订单号都不相同
测试
先把开发提供的接口信息(包括url、请求方式、请求头信息等)放到postman请求,成功,说明接口是通的
分析
分析接口信息,暂定变量值如下:
tid/oid=“100”+随机数+时间戳
refund_id=“200”+随机数+时间戳
pubTime=time=时间戳
outtime=outgoingTime=时间戳+200
实现方式
jmeter创建线程组
线程组下创建一个事务控制器,然后创建一个beanshell取样器
取样器中的代码如下:
点击查看代码
import java.text.SimpleDateFormat;
import java.util.Random;
// 生成订单号
Random r = new Random();
int i = r.nextInt(1000);
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
String time_orderid = sdf.format(System.currentTimeMillis())+i;
//log.info("###############");
//log.info("100"+time_orderid);
//log.info("200"+time_orderid);
//log.info(time_orderid);
//log.info(""+System.currentTimeMillis());
//log.info(""+(System.currentTimeMillis()+200));
//log.info("@@@@@@@@@");
vars.put("time_orderid","100"+time_orderid);
vars.put("time_refundid","200"+time_orderid);
vars.put("id",time_orderid);
vars.put("now_timestamp",""+System.currentTimeMillis());
vars.put("later_timestamp",""+(System.currentTimeMillis()+200));
//
创建一个http头信息管理器
创建一个http请求
添加查看结果树
修改线程数,开始压测
tips
- 同步定时器、表格查看结果
如果要模拟严格并发操作,可以在请求下添加同步定时器,然后添加一个“用表格查看结果”
运行之后,即可看到同时有5个用户请求
性能监控
node_exporter/mysqld_exporter + Prometheus + Grafana
//todo