Jmeter外部传参
2018-08-23 本文已影响7人
沈宥
1、首先肯定是添加线程组和http请求:见上一篇Jmeter的安装和基础使用:Jmeter实现接口压测 - for MacOSX
Screen Shot 2018-08-23 at 10.39.30 AM.png2、涉及到cookie的添加到header中
Screen Shot 2018-08-23 at 2.31.30 PM.png3、在使用Jmeter进行压力测试时,如果提交的参数不变,那么就会读取缓存数据,无法测试出服务器真正的负载能力,所以要对提交的参数进行参数化来解决这一问题。
在Jmeter中经常使用 CSV Data Set Config
读取外部数据源完成参数化
说明:
Filename:保存参数化数据的文件目录
File encoding:UTF-8
Variable Names(comma-delimited):对应参数文件每列的变量名, (如:有几列参数,在这里面就写几个参数名称,每个名称中间用分隔符分割)
Delimitet:参数文件分隔符,用来在“Variable Names”中分隔参数,与参数文件中的分隔符保持一致即可;
Allow quote data:是否允许引用数据,默认false,选项选为“true”的时候对全角字符的处理出现乱码 ;
Recycle on EOF?:是否循环读取参数文件内容
Stop thread on EOF?:当Recycle on EOF为False时(读取文件到结尾),停止进程,当Recycle on EOF为True时,此项无意义
Sharing Mode: 多线程的时候参数化取值策略
(1)某个参数新建.csv文件,写入要key:value
Screen Shot 2018-08-23 at 3.07.03 PM.png
(2)添加外部引用设置项,引用已建文件
Screen Shot 2018-08-23 at 2.30.01 PM.png
(3)传参时引用方式(以post请求为例)
F2E61DA4-E5FE-4729-A827-3F32259D88C5.png
4、压测结果输出到文件内
(1)新建文件,用来接收返回结果
Screen Shot 2018-08-23 at 3.13.13 PM.png
(2)设置需要的返回结果
97387D8F-A29C-48C0-9C37-F9C5FA0C1BEE.png(3)结果文件
Screen Shot 2018-08-23 at 2.35.06 PM.png
5、当请求之间有依赖关系,比如一个请求的入参是另一个请求返回的数据,这时候就需要用到关联处理,Jmeter可以通过“后置处理器”中的“正则表达式提取器”来处理关联
说明:
引用名称:下一个请求要引用的参数名称,如填写supplyCluesId,则可用${supplyCluesId}引用它
正则表达式:正则表达式提取器根据该处的设置进行信息匹配,()括起来的部分就是要提取的。
模板:代表从正则表达式结果引用的样式,其实结果是一组,而不是一个。$1$代表这一组结果的第1个,以此类推;
匹配数字:0代表正则表达式结果组中随机,1代表全部
缺省值:当引用不对时显示传递的信息,一般写一个ERROR。
EB6F8645-0620-4C7E-A167-6ED93239E8C9.png
6、聚合报告
数据分析:
Samples:发出请求数量
Average:平均响应时间(单位:)。默认是单个Request的平均响应时间
Median:中位数,也就是50%用户的响应时间
90%Line:90%用户的响应时间
95%Line:95%用户的响应时间
99%Line:99%用户的响应时间
Min:最小响应时间
Max:最大响应时间
Error%:出错率
Throughput:吞吐量,默认情况下表示每秒完成的请求数
KB/sec:每秒从服务器端接受到的数据量
(1)结果展示图
Screen Shot 2018-08-23 at 2.55.59 PM.png
(2)数据可导出至文件内,记得勾选 Save Table Header
,这样报告中才有对应的header
(3)导出的数据长这样
Screen Shot 2018-08-23 at 3.28.50 PM.png