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