一、利用函数助手获取参数值

选项->函数助手对话框

__CSVRead,

__Random,

生成的函数字符串:${__Random(,,)}第一个参数为随机数的下限,第二个参数为随机数的上限,第三个参数为储存随机数的变量名;
                                   ${__CSVRead(,)}第一个参数是文件名(包含路径),第二个参数是文件中的列(列数从0开始);

参数化数据

__CSVRead:复制生成的参数化函数,打开登陆请求页面,在右则的参数化中找到我们要参数化的字段,这里对用户名和密码做参数化,第一列是用户名,列号为0;第二列是密码,列号为1;修改函数中对应的参数化字段列号就可以了,点击运行会调用相应路径下的参数文件

_Random函数是从某数据段随机读取数据替换参数,当需要添加多条数据记录且某些字段需要唯一性时使用。

二、利用配置元件(CSV Data Set Config)

1.选中线程组,点击右键,添加-配置元件-CSV Data Set Config

1)、Filename:文件名,指保存信息的文件目录,可以相对或者绝对路径
2)、File encoding:csv文件编码,可以不填,一般为UTF-8
3)、Variable Names(comma-delimited):变量名称,用逗号分隔,test1代表参数化文档中的第一列,test2代表参数化文档中的第二列,变量使用格式 ${name}
4)、Delimiter(use '\t for tab'):定义分隔符为',',若参数化文档中有多列,则每列间用逗号分隔
5)、Allow quoted data:是否允许引用数据(没用过)
6)、Recycle on EOF:到了文件尾处,是否循环读取参数。因为CSV Data Set Config一次读入一行,分割后存入若干变量交给一个线程,如果线程数超过文本的记录行数,那么可以选择从头再次读入
7)、Stop thread on EOF:到了文件尾处,是否停止线程,和Recycle on EOF会有矛盾:
  a.  当Recycle on EOF 选择true时,Stop thread on EOF选择true和false无任何意义,通俗的讲,在前面控制了不停的循环读取,后面再来让stop或run没有任何意义
  b.  当Recycle on EOF 选择flase时,Stop thread on EOF选择true,线程4个,参数3个,那么只会请求3次
  c.  当Recycle on EOF 选择flase时,Stop thread on EOF选择flase,线程4个,参数3个,那么会请求4次,但第4次没有参数可取,不让循环,所以第4次请求错误
8)、Sharing mode:共享模式,All threads –所有线程,Current thread group—当前线程组,Current thread—当前线程。经试验得出来的结果是(不考虑线程组迭代):
  a.  如果测试计划中有线程组A、线程组B,A组内有线程A1到线程An,线程组B内有线程B1到线程Bn,CSV Data Set Config放在线程组A的下级组织树,不管怎么设置Sharing mode,都只针对线程组A且取之情况一样:线程A1取第一行,线程A2取第二行。
  b.  CSV Data Set Config放在测试计划下级组织树(与线程组并列),情况如下 :
   All threads:测试计划中所有线程,线程组A、线程组B共用一个CSV文件,所取数据与线程实际执行顺序有关(先执行先取)。补充一点:线程组之间是并行执行,各线程实际执行时间根据Ramp-UP Period而来,如下图,若线程A、线程B均设置Ramp-Up Period:2,取之情况是:线程A1取第1行,线程B1取第2行,线程A2取第3行,线程B2取第4行。

2.填写刚才定义好的变量

还要注意CSV Data Set Config放的位置影响取数结果:

场景一:如果放在循环控制器的上面:线程数:1,循环数:10,实际情况:循环上面的csv数据只读了线程数,下面的循环请求没有重新拿数据,还是使用第一次线程拿的数据,如图:

场景二:如果放在循环控制器的下面:线程数:1,循环数:10,实际情况:循环下面的csv数据只读了线程数,每次循环都会拿新的数据顺序取值,如图:

所以CSV Data Set Config放的位置和取数方式有很大的关系。

三、用户自定义变量

一般定义测试系统的固定使用的变量,比如主机地址端口号,数据库账号密码等。选中线程组,点击右键,添加-配置元件-用户定义的变量

值可以直接输入,也可通过函数__CSVRead从文件中读取,还可以通过前缀加随机数和方法获取。

比如用户名为user_0到user_100的用户,那么用户名可设置名user_${__Random(0,100,)}

但是这种每次执行的多个线程所替换的参数一样,因为先获取到随机参数,再执行多个HTTP请求。

转自原文:https://blog.csdn.net/seven_five577/article/details/55106155

jmeter 参数化3种的更多相关文章

  1. Jmeter参数化四种方式

    JMeter的三种参数化方式包括: 1.用户参数 2.函数助手 3.CSV Data Set Config/CSV数据配置文件 4.用户自定义变量 一.用户参数 位置:添加-前置处理器-用户参数 操作 ...

  2. jmeter——参数化、关联、断言

    1.jmeter——参数化 三种方式: ${变量名} 1.1用户定义的变量 比如注册,登录都得用到手机号码,那就把手机号码自定义为变量 1)添加一个线程组--注册.登录HTTP请求--察看结果树--用 ...

  3. 【Jmeter基础知识】Jmeter的三种参数化方式

    JMeter的三种参数化方式包括: 1.用户参数 2.函数助手 3.CSV Data Set Config 一.用户参数 位置:添加-前置处理器-用户参数 操作:可添加多个变量或者参数 二.函数助手 ...

  4. jmeter的三种参数化方法

    JMeter的三种参数化方式包括: 1.用户参数 2.函数助手 3.CSV Data Set Config 一.用户参数 位置:添加-前置处理器-用户参数 操作:可添加多个变量或者参数 二.函数助手 ...

  5. JMeter参数化(一)

    JMeter参数化的4种方法:

  6. 性能测试——jmeter环境搭建,录制脚本,jmeter参数化CSV

    一.Jmeter+jdk环境搭建 1.http://www.oracle.com/technetwork/java/javase/downloads/index.html,下载jdk. 直接安装就行了 ...

  7. Jmeter 参数化请求实例

    Jmeter 参数化请求实例 在jmeter中的请求可以参数化,其中参数化的方式有4种: 1.CSV Data Set Config 2.数据库 3.用户自定义变量 4.用jmeter中的函数获取参数 ...

  8. Jmeter参数化的方法

    测试接口时,使用Jmeter在请求中输入参数,若是有多种情况,有多条测试参数,是不是要每个情况逐条输入呢?逐条输入会让人觉得比较麻烦,因此,就有了Jmeter参数化. Jmeter参数化的方法: 用户 ...

  9. jmeter参数化之函数助手(十五)

    jmeter-参数化: 参数化的作用:调用接口入参时.有时要求参数经常变化,如果每次去修改就会变得很繁琐,这时候就需要把经常变化的值改变为提前编辑好的文档或函数中,便于调用时使用不同的值. Jmete ...

随机推荐

  1. ceph命令拷屏

    常用命令ceph -w ceph df ceph features ceph fs ls ceph fs status ceph fsid ceph health ceph -s ceph statu ...

  2. Loadrunner test web service which need username and password

    Action(){ char  * position; char * str; int  offset; char * search_str = "ERROR"; // web_s ...

  3. list列表操作(创建、增加、删除、取值)

    list ####(一)列表的创建[].追加(append,extend,insert).删除(remove.del.poop).修改 ##创建一个空列表.一个字符串列表.一个数字列表 lis0 = ...

  4. jmeter 函数学习

    https://jmeter.apache.org/usermanual/functions.html#__threadNum

  5. docker容器之间的通信

    容器之间互通 新建两个容器 docker run -d --name box1 busybox /bin/sh -c "while true;do sleep 3600;done" ...

  6. 破解Pycharm 2019.2

    参考:https://www.cnblogs.com/pig66/p/11432446.html 1.下载补丁文件 https://pan.baidu.com/s/112tS3XjAENIHaJ-aS ...

  7. 负载均衡实现故障vip自动漂移

    环境说明演示vip自动漂移 192.168.237.50 192.168.237.51 vip: 192.168.237.5 keepalived开源软件实现 keepalived可以实现当vip挂的 ...

  8. 关于KiCAD的一些插件

    关于KiCAD的一些插件 https://gitee.com/KiCAD-CN/KiCad-CN-Forum/blob/master/KiCad_help_zh_CN.md#swapit-%E5%B7 ...

  9. zabbix生产环境案例(三)

    生产环境案例(三) 链接:https://pan.baidu.com/s/1q5YwJMTcZLcS5OQ0iOu44A 提取码:8gdi 复制这段内容后打开百度网盘手机App,操作更方便哦 1. Z ...

  10. 前端学习(十七)js数组(笔记)

    数组:        1.    var arr=[1,2,3,4]; 2.    var arr=new Array(1,2,3,4,5); 区别:        1.写法不一样,选择第一种(好写) ...