压测执行与自动化压测实战(1)

1.压测执行

压测脚本编写:压测一般分为录制和压测脚本编写, 录制一般只能录制简单的页面,对于逻辑复杂的录制下来就比较乱,因此更倾向于使用脚本压测; url在jmeter测试中可以当作是一个接口

用户并发与数据传递: 不挂token是无效的压测接口,因此数据传递也是非常重要的

压测结果分析、性能监控体系与指标收集:其他博客中会写到

分布式压测与JMeter静默运行:有时候发压机性能不一定好,一次一台不一定使系统能够达到瓶颈,因此需要使用分布式压测

2.压测实战

下载github应用代码,并启动,该应用为含有登录、查询菜单、下单,注销登录四个接口的一个应用demo

 
启动成功后,使用postman请求接口,能够请求成功的话,说明应用启动没有问题
3.编写压测脚本
http请求(post、get、Delete)
1)用户登录接口

2)用户登录接口添加JSON Extractor

主要目的为了解析acess token, 登录接口返回response之后解析token, 在之后的接口里面去引用,在哪里去引用呢,通过接口中的header去引用;

变量名:access_token, 通过Json path expression 来解析token,注意语法

$.access_token

3)添加 HTTP Header Manager

通过接口中的header去引用access_token,添加access_token模版

${access_token}

4) 通过json assertion校验是否登录成功, 压测考虑要建立在接口正确性的基础上的,因此要对接口正确性做校验

校验接口返回的字段中

{
  "access_token": "3b6754f00bb0063071c5b71ce2b56b4ed056a63493e785bea85b74c41ce200",
  "code": "200",
  "message": "login success"
}

5)添加用户变量User Defined Variables

查询菜单接口定义可以写成如下引用变量的形式。这样当我们域名或端口有修改的时候就可以统一的在User Defined Variables中修改

6)5中的wait其实是用户自定义的变量,wait毫秒数,模拟用户停留时间,因此在每个接口中可以添加一个Constant Timer

7)订单确认接口

8) 压测考虑要建立在接口正确性的基础上的,因此要对接口正确性做校验,因此需要对重要的接口返回添加校验,接口返回如下:

{
  "code": "200",
  "message": "Order success.",
  "total": 8
}

9)注销登录接口

 10)添加用户数据CSV Data Set Config

用户数据的导入,filename可以写相对路径,也可以写绝对路径

 11)添加监听器listener

这样压测数据就可以写入influxdb数据库中,并在grafana中图形化显示

12)图形化界面显示

猜你喜欢

转载自www.cnblogs.com/zhaikunkun/p/12982397.html