zoukankan      html  css  js  c++  java
  • Jmeter函数助手

     

    标签(空格分隔): Jmeter


    在性能呢测试过程中为了真实的模拟用户,往往我们需要让提交的表单内容每次都发生变化,这个过程加参数化,Jmeter配置原件与前置处理器都能帮助我们进行参数化,单都有局限性,为了帮助我们进行参数化,Jmeter提供了一组函数来帮助我们生成需要的数据,这些函数助手面板来进行编辑,当然函数助手的功能不仅仅是进行参数化,还可以帮我们进行圆形,字符编码,格式转化,获取运行时参数的功能。 函数都是以${__function()}这种形式开始的,其中“__”是英文的半角下横线,function是函数名,其中参数是不同的函数而定

    函数列表

    JMeter总计七大类型的函数类型如下:

    信息类: 用于读取线程、请求名等 输入类: 用于读取文件等 计算类: 用于计数、求和等 脚本类: 用于运行各类脚本,例如groovy、beanshell等等 属性类: 读取或设置jmeter配置 变量类: 用于对变量进行操作 字符串类: 用于字符串处理

    信息类

    主要用于获取一些常用的基本信息或是日志输出控制。 |编号|函数名|描述| |--| |1|__threadnum|函数线程数| |2|__samplerName|说起当前请求的名称| |3|__machineIP|获取本机的IP地址| |4|__machineNmae|获取本机的名称| |5|__time|返回指定格式的时间| |6|__log|日志输出,并返回它的输入字符串| |7|__logn|日志输出,并返回空的字符串|

    ###输入类 |编号|函数名|描述| |--| |1|__StringFromFile|函数线程数| |2|__FileToString|获取当前请求的名称| |3|__CSVRead|读取csv格式文件数据| |4|__XPath|使用xpath读取xml文件中的数据|

    计算类

    主要用于从外部文件读取数据,进行参数化或是说关联 |编号|函数名|描述| |--| |1|__counter|生成一个自增数| |2|__intSum|整数求和| |3|__logSum|长整数求和| |4|__Random|生成随机数| |5|__RandomFromMultipleVars|从一组数据中提取一个数据| |6|__RandomStrgin|生成随机字符串| |7|__UUID|生成随机的唯一的UUID|

    脚本本类

    主要用于调用外部脚本或是解析执行脚本

    |编号|函数名|描述| |--| |1|__groovy|执行groovy脚本| |2|__BeanShell|执行BeanShell脚本| |3|__javaScript|执行javaScript的脚本| |4|__jexl2|执行jexl2表达式| |5|__jexl3|执行jexl3表达式|

    属性类

    用于读取和设置jmeter配置 |编号|函数名|描述| |--| |1|__property|读取属性值| |2|__P|读取属性值(__property)的简写| |3|__setProperty|设置属性值|

    ###变量类 主要用于验证变量表达式引用是否正确 |编号|函数名|描述| |--| |1|__sqlit|拆分字符串| |2|__V|执行变量名表da's达式的返回结果| |3|__eval|执行字符串表达式,并返回结果| |4|__evalVar|执行保存在变量中的表达式,并返回结果|

    字符串类

    用于字符串操作

    |编号|函数名|描述| |--| |1|__regexFunction|使用正则表达式| |2|__escapeOroRegexpChars|用于转义正则表达式中的字符| |3|__char|将一串数字转换成成unciode的字符| |4|__unescape|用于反转义java-escape字符串| |5|__unescapeHtml|解码html-encode字符串| |6|__escapeHtml|使用html coding编码目标字符串| |7|__escapeXml|使用XML codingbiao'ma编码目标字符串| |8|__urldecode|解码urlcode| |9|__urlencode| 编码为urlcode| |10|__TestPlanName|获取当前测试计划|

    ##常用函数的介绍

    __time 函数

    获取系统的当前时间 image_1cs6ok13j1ru1nsg1e2t1ormuep9.png-52.6kB

    函数参数描述
    Format string for SimpleDateFormat (optional)格式 设置时间所采用的格式
    Name of variable in which to store the result (optional)变量名 存储结果的变量名称

    如果省略了格式字符串,time函数会返回当前时间的毫秒级时间戳。 time函数包含以下时间格式

    • YMD = yyyyMMdd。 image_1cs6p31gv4531l2461pe741k511j.png-16.1kB
    • HMS = HHmmss。 image_1cs6p48d31h8corv1c671gaf1mkk20.png-13.8kB
    • YMDHMS = yyyyMMdd-HHmmss。 image_1cs6p259ffc1624j1ccpq1sv016.png-18.2kB
    • 也可以加入字符修改样式 image_1cs6p7spd19lu1lt31bim1rlkftr2d.png-17.3kB
    • 用户可以通过修改JMeter属性来改变默认格式,例如,time.YMD=yyMMdd。

    time毫秒时间戳转秒时间戳 image_1cs6phinrnj31cs91d6k8nabib3a.png-93kB

    __Random 函数

    生成随机数

    函数参数描述
    FThe minimum value allowed for a range of value 随机数取值范围的最小值
    The maximum value allowed for a range of values 取值范围的最大值
    Name of variable in which to store the result (optional) 存储结果的变量名称
    • 在1000-10000之间生成随机数

    image_1cs6pv0thi0fdko692rgfqqs3n.png-91.7kB

    __RandomString

    随机生成字符串

    函数参数描述
    Random string length 随机字符串的长度
    Chars to use for random string generation 用来生成随机字符串的字符
    Name of variable in which to store the result (optional) 存储结果的变量名称

    __RandomDate

    随机生成日期

    函数参数描述
    Format string for DateTimeFormatter (optional) (default yyyy-MM-dd) 日期格式 默认yyyy-mm-dd
    Start date (optional) (default: now) 随机日期的开始日期,默认为现在
    End date 结束日期
    String format of a locale (ex: fr_FR , en_EN) (optional) 语言区域
    Name of variable in which to store the result (optional) 存储结果的变量名称

    image_1cs815tao97jpdaut453g12h4p.png-69.1kB

    __threadNum

    返回当前线程的编号

    __log

    记录一条日志,并返回输入的字符串

    函数参数描述
    String to be logged (and returned) 日志信息
    Log level (default INFO) or OUT or ERR 日志等级。OUT会在控制台输出,ERR、INFO、DEBUG在日志文件内输出
    Throwable text (optional) 可抛弃的文本,如果非空,会创建一个可抛弃的文本传递给记录器
    Additional comment (optional) 注释如果存在,注释会在字符串中展示,用于标识日志记录了什么

    image_1cs8329lstjq12vm1jlp1ljcadk16.png-173.2kB

    __jexl3

    函数_jexl可以用于执行通用JEXL表达式,并返回执行结果。

    函数参数描述
    JEXL expression to evaluate 待执行的表达式
    Name of variable in which to store the result (optional) 存储结果的变量名称

    image_1ct9smir2jjbvuh9r1156o3t519.png-49.6kB 如下变量可以通过脚本进行访问。

    log:函数记录器。

    ctx:JMeterContext对象。

    vars:JMeterVariables对象。

    props:JMeter属性对象。

    threadName:字符串包含当前线程名称 (在2.3.2 版本中它被误写为"theadName")。

    sampler:当前的采样器对象(如果存在)。

    sampleResult:前面的采样结果对象(如果存在)。

    OUT - System.out,例如 OUT.println("message")。 是你用vars的例子参考 Sampler 章节的jdbc-request

  • 相关阅读:
    第二十九课 循环链表的实现
    第二十八课 再论智能指针(下)
    第二十七课 再论智能指针(上)
    第二十六课 典型问题分析(Bugfix)
    普通new和placement new的重载
    leetcode 581. Shortest Unsorted Continuous Subarray
    leetcode 605. Can Place Flowers
    leetcode 219. Contains Duplicate II
    leetcode 283. Move Zeroes
    leetcode 217. Contains Duplicate
  • 原文地址:https://www.cnblogs.com/summerxye/p/11004481.html
Copyright © 2011-2022 走看看