zoukankan      html  css  js  c++  java
  • Jmeter(二十五)Jmeter之系统函数

      都忘了Jmeter4.0已发布((*^▽^*))具体优化项还没体验,记录一下,传送门:http://jmeter.apache.org/download_jmeter.cgi

      Jmeter的系统函数已经发布了许多函数,并且实现了N多功能,(可以自行开发自定义函数哦~)记几个常用的函数:

      ${__time(,)}-->时间戳:

              参数一:日期格式---${__time(yyyy-MM-dd-HH-mm-ss,)}

                  这里边有个误区,大写M是月份,小写m是分钟。

              参数二:存放获得当前时间值的参数名称

      ${__Random(,,)}-->随机函数

              填入数值区间即可

      ${__StringFromFile(,,,)}-->读取本地文件(csv文件)

                    类似CSV Data Set Config,但是比它更为强大一点,__StringFromFile函数的强大之处在于它可以支持从多个文件中读取数据。

                  例如给定函数表达式${__StringFromFile(F:jmeter-project est-projectconfig-data est#‘.’csv,,1,99)},那么__StringFromFile函数将会读取该目录下的test1.csv,test2.csv。。。test99.csv作为需要读取的数据文件。

                  例如给定函数表达式${__StringFromFile(F:jmeter-project est-projectconfig-data est0000#‘.’csv,,1,99)},那么__StringFromFile函数将会读取该目录下的test0001.csv。。。test00099.csv作为需要读取的数据文件

              参数一:文件名(绝对路径)

              参数二:存放取的数据的参数列表

      ${__intSum(,,)}和${__longSum(,,)}-->分别用来进行整型和长整型数据的加法运算。这两个函数均可为可变参数列表的函数,可用来进行任意个整型或长整型数据的加法运算。

      ${__setProperty(,,)}-->用于在运行时设置Jmeter中的任何属性的值(参见“线程组之间变量传递”)

      ${__eval()}和${__evalVar()}-->用于计算一个参数表达式的值。

              例如:给定参数值:table = mytable

                       column = username

                          username = dennis

              SQL = select ${column} from ${table} where userid = '${username}'

              使用${__eval(${SQL})}便得到的值为 select  username from mytable where username = 'dennis'.

      ${__evalVar()}与前者基本一致,唯一不同的是,${__evalVar()}函数可以将计算后的值存放到一个参数中。

      ${__threadNum}与${__machineName()}-->这两个函数用于获得执行当前函数的线程号(1开始)和执行当前Test plan的机器名。在调试或记录日志时,可以用这两个函数输出与线程号和机器相关的信息

      ${__unescapeHtml()}和${__escapeHtml()}-->这两个函数用于对字符串进行编码/解码处理。名称即可看出${__escapeHtml()}  对于任意字符串按照HTML格式进行编码;而${__unescapeHtml()}函数则是对HTML编码后的字符串进行解码。

      ${__javaScript(,)}->该函数用于执行一段给定的JavaScript脚本,返回值为该JavaScript执行的结果。

      ${__BeanShell(,)}-->该函数允许用户运行一段自定义的Beanshell脚本,脚本可以用来设置Jmeter的属性和参数值,也可返回数据。详情参见前面Beanshell随笔。

      具体函数源码可在jmeterapache-jmeter-3.2libext目录下找到ApacheJMeter_functions.jar的包,进行查看其处理逻辑

      

      可仿照其源码进行自定义逻辑,自行开发自定义函数,打包至libext目录下,进行使用。

      一个典型的应用:在命令行运行Test plan 时,从命令行指定Thread Group中的线程数和脚本运行时长:

      使用__property和__P函数获取属性值

      类似这样使用:

      

      命令行中可直接指定线程的数量(默认为1):

      jmeter -n -t demo.jmx -Jthread_count =10 -Jduration = 60

      该Test plan以10线程运行,运行时长60s(具体会在第三方集成用到)

                 

      

  • 相关阅读:
    Linux 使用grep过滤多个条件及grep常用过滤命令
    看Linux0.11源码分析书籍,补充知识
    调用门描述符格式
    可能用到的一些寄存器
    002. Linux0.00 head.s注释
    linux0.00 的Makefile
    [转载] Bochs 常用的调试指令
    001. 注释过的boot.s
    PHP接口编程——调用第三方接口获取天气
    phpstudy中让ThinkPHP5访问去除/public/index.php
  • 原文地址:https://www.cnblogs.com/richered/p/8509878.html
Copyright © 2011-2022 走看看