参数化 用户定义的变量元件,作用就是创建/定义jmeter变量,并进行赋值 右键线程组——配置原件——用户定义变量元件 使用${变量名}引用 使用csv文件作为参数化:csv指定了参数(登录、注册) 第一步:创建一个csv文件,列与列之间用英文逗号分隔 第二步:添加配置元件csv data set config 参数描述:
Name 脚本中显示的这个元件的描述性名称 是
Filename 文件名。待读取文件的名称。可以写入绝对路径,也可以写入相对路径(相对于bin目录),如果直接写文件名,则该文件要放在bin目录中。对于分布式测试,主机和远程机中相应目录下应该有相同的CSV文件 是
File Encoding 文件编码。文件读取时的编码格式,不填则使用操作系统的编码格式 否
Variable Names 变量名称。多个变量名之间必须用分隔符分隔。如果该项为空,则文件首行会被读取并解析为列名列表 否
Ignore first line 是否忽略首行?如果csv文件中没有表头,则选择false 是
Delimiter 分隔符。将一行数据分隔成多个变量,默认为逗号,也可以使用“\t”。如果一行数据分隔后的值比Vairable Names中定义的变量少,这些变量将保留以前的值(如果有值的话) 是
Allow quoted data? 是否允许变量使用双引号?允许的话,变量将可以括在双引号内,并且这些变量名可以包含分隔符 否
Recycle on EOF? 遇到文件结束符是否再次循环?默认为 true 是
Stop thread on EOF? 遇到文件结束符是否停止线程?默认为 true 是
Recycle on EOF? 当Recycle on EOF为False时,停止线程,当Recycle on EOF为True时,此项无意义,默认为 false 是
Sharing mode 线程共享模式。1、All threads(默认):一个线程组内,各个线程(用户)唯一顺序取值;2、current thread:一个线程组内,各个线程(用户)各自顺序取值;3、线程组各自独立,但每个线程组内各个线程(用户)唯一顺序取值;true 是
需要着重说明一下的是Sharing mode,也就是线程共享模式。线程共享模式,是指多个线程对文件数据取值顺序模式,JMeter提供了3种模式:
All threads:所有线程。如果脚本有多个线程组
Current thread group:当前线程组。各个线程组之间隔离,线程组内的线程顺序唯一取值。
Current thread:当前线程。这种模式下,每个线程独立,顺序唯一取值。
在HTTP请求中引用CSV生成的变量的方式是${变量名}的方式
CSV使用中最常见的一个问题是文件路径不对。当遇到这种问题时,因为运行脚本没有明显提示,许多人遇到后会感觉很懵,不知道问题在哪。其实,仔细观察会发现右上角黄色三角处数字在增加,点击该区域便打开了日志,日志里记录了相应错误:File userInfo2.txt must exist and be readable,也就是提示参数化文件不存在或路径不可达。
|