打开jmeter.bat之后,新建一个测试计划。
线程设置-构建脚本
1、测试计划右键--添加线程组(这三个属性最重要:线程数、循环次数、ramp-up period(inseconds))
2、线程数:可以理解为用户数,需要根据本地服务的性能来设定。Ramp-Up : 准备时间。
3.循环次数:每个线程执行多少次。
HTTP信息头管理器
1、线程组右键-配置元件-添加HTTP信息头管理器(主要用来发送请求时的请求头数据,如果线程组之间的都是一样的请求头可以设置为全局,不需要每个请求重复设置)。例如:设置content-type决定如何展示返回的消息体内容,值application/json服务端需要返回一段json串给客户端
HTTP Cookie管理器
1、线程组右键-配置元件-添加HTTP Cookie管理器(主要使用HTTP Cookie管理器组件来管理Cookie信息)。
2、JMeter中自动收集的Cookie,是不会在HTTP Cookie管理器中进行展示的(如果需要查看或引用Cookie,需要修改Jmeter.property文件的“CookManager.save.cookies = true”,取消注释 )
HTTP请求默认值
1、线程组右键-配置元件-添加HTTP请求默认值(多个请求时,可以设置相同的参数和设置,减少冗余度)。
2、例如,请求服务的IP地址、协议、端口号等请求服务的IP地址、协议、端口号等
吞吐量控制器
1、线程组右键-逻辑控制器-吞吐量控制器(控制其下的子节点的执行次数与负载比例分配,即能控制请求的次数)。
2、执行线程过程中,登录请求只需要执行一次,加入吞吐量控制器,吞吐量设置1次。
JSON提取器
从验证码请求提取到登录请求
1、线程组右键-后置处理器-JSON提取器(下一个接口需要引用上一个接口返回的值,普遍使用后置处理器,常用json提取器、正则表达式提取器)。
2、登录接口消息体中参数captcha、uuid需要从验证码接口返回数据中提取 Names of created variables :接收值的变量名,自定义,多个变量用分号分隔 JSON Path expression: json path表达式,也是用分号分隔 Match No.(0 for Random):0表示随机;n取第几个匹配值,只需要获取1个值 则填1,多个变量用分号分隔 Default Values: 缺省值,匹配不到值的时候取该值,可写error
HTTP请求-登录
1、线程组右键-取样器-添加HTTP请求(用来向服务器发送HTTP/HTTPS请求,如发送MQTT请求需要下载插件)。
2、设置了HTTP请求默认值就不需要重复填写协议、IP地址、端口号,填写请求方式、接口URL、参数即可。例如:登录接口必填参数username、password、captcha、uuid,在消息体数据填写json格式。
用户参数
1、线程组右键-前置处理器-用户参数(在请求前需要反复更改参数,用户参数非常适用)。
2、例如登录接口需要的用户名username和密码password,引用时${username}、${password}
察看结果树
1、线程组右键-监听器-察看结果树(通过"察看结果树"来查看服务器处理请求之后的返回结果,分析是否存在问题)。
聚合报告
1、线程组右键-监听器-聚合报告(通过"察看结果树"来查看服务器处理请求之后的返回结果,分析是否存在问题)。
2、Samples(样本):总共发给服务器的请求数量,模拟5个用户迭代1次,就是5*1=5次 Average(平均值):默认情况下是单个Request的平均响应时间,单位为毫秒 95% Line(95% 百分位):95%用户的响应时间小于该值。图中有90%、95%、99% 一般以95为参考值 Min(最小值):最小的响应时间。 Maximum(最大值):最大的响应时间。 Error%(异常%):错误率=错误请求的数量/请求的总数。 Throughput(吞吐量):默认情况下表示每秒完成的请求数(Request per Second)。