一、变量

Jmeter中的变量用法:${变量名称}

变量定义:两种

  1、用户定义变量 User Defined Variables

  2、用户参数  User Parameters

1.1用户定义变量

步骤:线程组 ->添加->配置元件->用户定于变量

       

1.2用户参数

步骤:线程组 ->添加->前置处理器->用户参数

     

实际上在我们工作中,注册这个接口,是需要不同的手机号码去注册的,如果我每次就算通过变量方式去操作,假如手机号码不变,那跟原来的一个个手动输入值就没什么不同了,也就没必要了;所以我们希望的是它不断的变化

那怎么让它变呢?随机数,如何生成随机数?

  

拓展:假如不是号码,公司里面需要大量不同的用户昵称怎么办?相当于随机的用户名怎么办?也就是不同的字母组合合成的字符串;假如我要生成2-8位字符的用户名怎么办?那么,只需要先生成2-8位的随机数即可

   

现在,回到正轨,那么用户定义的变量和用户参数有什么异同呢?

共同点:两者均可以用于定义变量

不同点:前提:1个用户,循环3次(跑3次) ,用户定义变量:手机号没有变化  , 用户参数:手机号会变化

前提:3个用户,循环1次(跑1次), 用户定义变量:手机号没有变化  , 用户参数:手机号会变化

规律一:用户定义变量,在jmeter启动时,获取一次值,在运行过程中,不再获取值

    用户参数,在jmeter启动时,获取一次值,在运行过程中,还会动态获取值

特点二:用户定义变量,是全局变量;用户参数,是局部变量

  

二、函数

特别要注意:严格区分大小写 和   ${__函数名称()}

1、__counter:计数器函数
2、__CSVRead:CSV的阉割版
3、__dateTimeConvert:时间转换
4、__digest:加密算法,支持MD5
5、__machineIP:获取本机器IP
6、__machineName:获取本机器名称
7、__P、__property:获取jmeter属性的函数
8、__setProperty:设置jmeter属性的函数
9、__time:获取当前时间函数
10、__V:拼接函数,将函数拼接在一起

${__counter(,)}  计数器,点击【帮助】可以打开文档

  

${__digest(MD5,123456,,,)}  加密

${__P(,)}、${__property(,,)} 获取jmeter属性的函数 , 它们是同一个函数(没有区别),获取.properties配合文件中属性的值
${__setProperty(,,)} 设置jmeter的属性函数,设置.properties配合文件中属性的值
属性:写在properties文件中的属性,是静态属性,已经写死在文件中;
            setProperty函数设置的属性,是动态属性,只对当前启动的jmeter有效,关闭后,自动失效
系统属性:操作系统,字符编码等等;只能获取,读取,不能修改

 

${__time(YMD,)}  获取当前函数

  

${__V(,)}  拼接函数

  

三、CSV配置元件

线程组-->添加-->配置元件-->CSV数据文件设置

(1)文件名:可用csv和txt文件
  文件选择,优先选择用txt文件
    原因1:csv消耗资源更多
    原因2:csv文件默认编码不是utf-8,中文可能出现乱码
  文件路径,优先使用相对路径,为了兼容不同测试员使用
    原因:默认用绝对路径,文件的路径一旦找不到,脚本无法执行
    相对路径写法:相对于当前.jmx文件的位置“./user.txt”
    在上一级文件中:“../user.txt”

(2)分隔符:使用符号分隔参数值
  csv文件:使用“英文逗号”间隔
  txt文件:是什么间隔,就用什么符号;
      tab键制表符,用“\t”间隔

且看一下实际应用截图:

a---------csv文件

b------------txt文件

   

c----------手机号码和密码,两个字段

Jmeter的脚本参数化的更多相关文章

  1. Jmeter(二十一)_脚本参数化与内存溢出的解决方案

    这一篇文章随便说一下JMETER的脚本参数化 1:Parameters的两种参数化方法 1.1:函数助手参数化 首先准备你的参数数据.我在bin/data中新建了一个dat文件,记事本另存为修改编码为 ...

  2. Jmeter_脚本参数化与内存溢出的解决方案

    这一篇文章随便说一下JMETER的脚本参数化 1:Parameters的两种参数化方法 1.1:函数助手参数化 首先准备你的参数数据.我在bin/data中新建了一个dat文件,记事本另存为修改编码为 ...

  3. JMeter脚本参数化和断言设置( CSV Data Set Config )

    用Badboy录制了Jmeter的脚本,用Jmeter打开后形成了原始的脚本.但是在实际应用中,为了增强脚本的多样性,就要使脚本参数化.这里我以登录为例,参数化用户账号与用户密码.  图1 :原始脚本 ...

  4. 『动善时』JMeter基础 — 22、JMeter中实现参数化(CSV)

    目录 1.参数化的定义 2.什么情况下需要用到参数化 3.JMeter实现参数化的方式 4.CSV数据文件设置界面详细说明 (1)CSV数据文件设置组件界面说明 (2)补充说明:Recycle on ...

  5. Badboy录制脚本参数化

    Jmeter录制脚本多采用Badboy工具 简单参数修改 第一步,先录制场景: a.开始录制,打开浏览器www.sogou.com b.在输入框中输入文字“Badboy" c.回车,关闭录制 ...

  6. Jmeter 录制脚本

    Jmeter中有2种方法可以录制脚本.  不过我个人非常不推荐录制脚本,录制的脚本混乱,需要再次加工才能使用. 像我这么精通HTTP协议的人. 一直都是使用Fiddler来抓包,然后自己写脚本. 无论 ...

  7. 通过Jenkins跑Jmeter接口测试脚本,我想当有接口跑失败时Jenkins发送邮件通知,这个如何弄呢

    通过Jenkins跑Jmeter接口测试脚本,我想当有接口跑失败时Jenkins发送邮件通知,这个如何弄呢

  8. LoadRunner脚本参数化之设置条件与运行结果说明

    性能测试中为什么需要进行参数化? 1.功能方面:首先要保证脚本的功能完善.可用性.(一般来说,参数化主要针对业务中的具备唯一性的数据.) 2.性能方面:一般来说,如果服务器存在缓存机制,在测试过程中, ...

  9. Jmeter录制脚本过程及Could not create script recorder报错、您的连接不是私密连接报错

    转载自    https://www.cnblogs.com/wwho/p/7173172.html Jmeter录制脚本过程及Could not create script recorder报错.您 ...

随机推荐

  1. mysql查询太慢,我们如何进行性能优化?

    老刘是即将找工作的研究生,自学大数据开发,一路走来,感慨颇深,网上大数据的资料良莠不齐,于是想写一份详细的大数据开发指南.这份指南把大数据的[基础知识][框架分析][源码理解]都用自己的话描述出来,让 ...

  2. Codeforces Round #625 Div. 2 D E

    D题:https://codeforces.com/contest/1321/problem/D 题意:题目给个有向图,然后给一段序列,我们要沿着这个序列走,问走的过程中当前点到t的最短路会重构多少次 ...

  3. HDU5589 Tree【分块 01字典树】

    HDU5589 Tree 题意: 给出一棵\(N\)个点的树,每条边有边权,每次询问下标为\([L,R]\)区间内的点能选出多少点对,点对之间的路径上的边权异或和大于\(M\) 题解: 对于两点\(u ...

  4. HDU6504 Problem E. Split The Tree【dsu on tree】

    Problem E. Split The Tree Problem Description You are given a tree with n vertices, numbered from 1 ...

  5. HOJ1867 经理的烦恼

    My Tags   (Edit)   Source : HCPC 2005 Spring   Time limit : 2 sec   Memory limit : 32 M Submitted : ...

  6. CF1465-C. Peaceful Rooks

    CF1465-C. Peaceful Rooks 预备小知识: Rook(国际象棋中的车). 国际象棋中的棋子.每人有2个,他只能直走,不能斜走,除王车易位外不能越子. -- 来自<百度百科&g ...

  7. 【非原创】codeforces 1029F Multicolored Markers 【贪心+构造】

    题目:戳这里 题意:给a个红色小方块和b个蓝色小方块,求其能组成的周长最小的矩形,要求红色或蓝色方块至少有一个也是矩形. 思路来源:戳这里 解题思路:遍历大矩形可能满足的所有周长,维护最小值即可.需要 ...

  8. HTTP1.0和HTTP1.1以及HTTP2.0的区别

    (1)连接方面 HTTP1.0使用非持久连接,即在非持久连接下,一个tcp连接只传输一个Web对象.每次请求和响应都需要建立一个单独的连接,每次连接只是传输一个对象,严重影响客户机和服务器的性能. H ...

  9. Github App version released icons

    # Github App version released icons http://shields.io/ Build Travis: https://img.shields.io/travis/U ...

  10. JS Object Deep Copy & 深拷贝

    JS Object Deep Copy & 深拷贝 针对深度拷贝,需要使用其他方法 JSON.parse(JSON.stringify(obj));,因为 Object.assign() 拷贝 ...