- CSV Data Set Config
- HTTP信息头管理器
- HTTP Cookie管理器
- HTTP请求默认值
1、CSV Data Set Config
参数化配置元件(简称CSV)能够在文件中读取一行数据,根据特定的符号切割成一个或多个变量放入内存中。
参数说明:
- 文件名:指保存信息的文件目录,可以相对路径、绝对路径(可动态获取绝对路径)
- 文件编码:UTF-8
- 变量名称:需要几个参数就写几个
- 忽略首行:读取txt文件时,如果有行标题,选择true;没有则默认false
- 分隔:文件中分隔符是逗号则输入“,”;分隔符是空格 则输入“/t”
- 是否允许带引号?:是否允许txt文件里的数据内容加引号
- 遇到文件结束符是否再次循环?:True-继续从文件第一行开始读取,False-不再循环;与下一项互斥
- 遇到文件结束符停止线程?:True-停止,False-不停止
- 线程共享模式:
① 所有线程:一个线程组内,各个线程唯一顺序取值
② 当前线程组:线程组各自独立,但每个线程组内各个线程唯一顺序取值
③ 当前线程:一个线程组内,各个线程各自顺序取值
下面举例展示三种模式在线程执行中的差异:
txt文件内容
创建CSV,模式为所有线程:
请求中id的值修改为CSV中的变量${id}:
为了方便观察线程变量使用了哪条数据,我们设置了2个线程 循环2次:
开始执行,执行结果:
模式切换为当前线程组,运行结果与所有线程的运行结果一致;
模式切换为当前线程,运行结果如下:
总结:
前两种模式下,多个线程会互相影响,线程1读取第一行数据后,线程2就会读取第二行,线程1再次读取时会读取第三行,以此类推。第三种模式下,各个线程互不影响,只按自身的顺序去读取文件,例如线程1读取第一行后,下次会读取第二行,线程2也是如此。
2、HTTP信息头管理器
信息头管理器,支持用户添加或者重写HTTP请求头。JMeter支持多个信息头管理器。多个信息头条目合并成一个信息头列表,跟随http请求一并提交到服务端。
1、当有多个信息头管理器,且不同的管理器内有名称相同的信息头条目,顺序靠前的管理器的信息头会覆盖后面的
实测结果如下,token值为第一个信息头的内容:
2、只有一个信息头管理器,但该管理器中有名称相同的信息头条目,会同时生效
下图为实测结果:
3、HTTP Cookie管理器
作用:保证多个线程在同一session会话下
cookie信息可以导入,也可以手动添加
一般不需要进行任何修改,会默认保存cookie信息
启用cookie管理器:
禁用cookie管理器:
总结:
使用了cookie管理器,会默认记录响应中的set-cookie,并添加在其他请求的请求头中
4、HTTP请求默认值
用来设置HTTP请求控制器使用的默认值
实例:
观察该API文档的三个接口中,均使用了相同的服务器名称、协议及Key值,于是我们就可以在HTTP请求默认值中填入该内容,如下图
获取作文内容的请求中,就可以不填服务器名称、协议及必填的Key
可正常运行成功: