Jmeter常见函数使用方法汇总

__intSum

intSum 函数可用于计算两个或多个整数值的总和。

引用名称是可选的, 但它不能是有效的整数。

  • {__intSum(2,5,MYVAR)} 将返回 7 (2 5) 并将结果存储在 MYVAR 变量中。因此 {MYVAR} 将等于7。
  • ${__intSum(2,5,7)} 将返回 14 (2 5 7) 并将结果存储在 MYVAR 变量中。
  • {__intSum(1,2,5,${MYVAR})} 如果 MYVAR 值等于8、1 2 5 {MYVAR}, 则返回16

__longSum

longSum 函数可用于计算两个或多个长值的总和, 而当您知道值不会在间隔-2147483648 到2147483647中时, 请使用此方法而不是 __intSum。

  • {__longSum(2,5,MYVAR)} 将返回 7 (2 5) 并将结果存储在 MYVAR 变量中。因此 {MYVAR} 将等于7。
  • ${__longSum(2,5,7)} 将返回 14 (2 5 7) 并将结果存储在 MYVAR 变量中。
  • {__longSum(1,2,5,${MYVAR})} 如果 MYVAR 值等于8、1 2 5 {MYVAR}, 则返回16

__StringFromFile

StringFromFile 函数可用于从文本文件读取字符串。这对于运行需要大量可变数据的测试非常有用。例如, 在测试银行应用程序时, 可能需要使用不同帐号的100s 或1000s。

另请参阅可更易于使用的 CSV 数据集配置测试元素。但是, 当前不支持多个输入文件。 每次被调用时, 它会从文件中读取下一行。所有线程共享相同的实例, 因此不同的线程将得到不同的行。当到达文件末尾时, 它将从一开始重新开始读取, 除非已达到最大循环计数。如果在测试脚本中有多个对该函数的引用, 则每个文件都将独立打开它, 即使文件名相同。[如果该值将再次用于其他位置, 请对每个函数调用使用不同的变量名。

函数实例在线程之间共享, 并且该文件 (重新打开) 由任何线程碰巧需要下一行输入, 因此使用 threadNumber 作为文件名的一部分将导致不可预知的行为。

如果打开或读取文件时出现错误, 则该函数将返回字符串 '** 错误 **'

  • ${__StringFromFile(PIN#'.'DAT,,1,2)}-读取 PIN1.DAT, PIN2.DAT
  • ${__StringFromFile(PIN.DAT,,,2)}-读取 PIN2.DAT 两次

__machineName

machineName 函数返回本地主机名。这将使用 Java 方法 InetAddress getLocalHost () 并将其传递到 getHostName ()

Examples:

${__machineName()} 将返回计算机的主机名
${__machineName} 将返回计算机的主机名

__machineIP

machineIP 函数返回本地 IP 地址。这将使用 Java 方法 InetAddress getLocalHost () 并将其传递到 getHostAddress ()

  • ${__machineIP()} 将返回计算机的 IP 地址
  • ${__machineIP} 将返回计算机的 IP 地址

__javaScript

javascript 函数执行一条 javascript (不是 Java) 代码并返回其值 JMeter javascript 函数调用独立的 javascript 解释器。

Javascript 被用作脚本语言, 因此您可以进行计算等。

javaScript 不是 JMeter 中性能最好的脚本语言。如果您的计划需要大量的线程, 建议使用 jexl3 或 __groovy 函数。

${__javaScript('${sp}'.slice(7\,99999))} 7后的逗号被转义。

Examples:

  • ${__javaScript(new Date())} 将返回 Sat 2016年1月09日 16:22:15 GMT 0100 (英语)
  • ${__javaScript(new Date(),MYDATE)} 将返回星期六 2016年1月09日 16:22:15 GMT 0100 (CET) 和存储在可变 MYDATE
  • ${__javaScript(Math.floor(Math.random()*(${maxRandom}+1)),MYRESULT)}

将使用 maxRandom 变量, 返回一个介于0和 maxRandom 之间的随机值, 并将其存储在 MYRESULT

__Random

随机函数返回位于给定最小值和最大数值之间的随机数。

${__Random(0,10)} 将返回介于0和10之间的随机数

{__Random(0,10, MYVAR)} 将返回一个介于0和10之间的随机数字, 并将其存储在 MYVAR 中。 {MYVAR} 将包含随机数

__RandomDate

RandomDate 函数返回位于给定开始日期和结束日期值之间的随机日期。

  • ${__RandomDate(,,2050-07-08,,)}将返回到现在和2050-07-08 之间的随机日期。例如2039-06-21
  • ${__RandomDate(dd MM yyyy,,08 07 2050,,)}将返回一个自定义格式的随机日期, 如 04 03 2034

__RandomString

RandomString 函数返回一个随机长度字符串, 使用字符在字符中使用。

  • ${__RandomString(5)}将返回一个随机字符串的5个字符, 可读或不
  • ${__RandomString(10,abcdefg)}将返回一个随机字符串10字符从 abcdefg 集, 如 cdbgdbeebd 或 adbfeggfad,..。
  • ${__RandomString(6,a12zeczclk, MYVAR)} 将返回从 a12zeczclk 集选取的随机字符串6个字符, 并将结果存储在 MYVAR 中, MYVAR 将包含字符串, 如2z22ak 或 z11kce..。

__RandomFromMultipleVars

RandomFromMultipleVars 函数根据源变量提供的变量值返回一个随机值。

  • ${__RandomFromMultipleVars(val)}将返回一个基于变量的内容的随机字符串考虑到它们是否是多值或不
  • ${__RandomFromMultipleVars(val1|val2)} 将返回一个随机字符串基于变量的内容 val1 和 val2 考虑到它们是否是多值或不
  • ${__RandomFromMultipleVars(val1|val2, MYVAR)}将返回一个基于变量内容的随机字符串 val1 和 val2 考虑到它们是否是多值的, 并将结果存储在 MYVAR

__UUID

UUID 函数返回一个伪随机类型4通用唯一标识符 (uuid)。

${UUID()}将返回 UUIDs 的格式: c69e0dd1-ac6b-4f2b-8d59-5d4e8743eecd

__CSVRead

CSVRead 函数从 CSV 文件中返回一个字符串 (鸡毛 StringFromFile) 注意: JMeter 支持多个文件名。

首次遇到文件名时, 文件将被打开并读取到内部数组中。如果检测到空行, 则将其视为文件的末尾-这允许使用尾随注释。 所有对同一文件名的后续引用都使用相同的内部数组。注意文件名大小写对函数很重要, 即使操作系统不关心, 因此 CSVRead (.txt, 0) 和 CSVRead (abc, 0) 将引用不同的内部数组。 '* 别名' 功能允许多次打开同一文件, 并且允许更短的文件名。 每个线程都有自己的内部指针到文件数组中的当前行。当线程第一次引用该文件时, 它将被分配到数组中的下一个可用行, 因此每个线程将从所有其他线程访问其他行。[除非有比数组中的行多的线程。

默认情况下, 函数在每个逗号处拆分该行。如果要输入包含逗号的列, 则需要将分隔符更改为不出现在任何列数据中的字符, 通过设置属性: csvread. 分隔符

例如, 可以按如下方式设置一些变量:

COL1a ${__CSVRead(random.txt,0)}
COL2a {__CSVRead(random.txt,1)}{__CSVRead(random.txt,next)}
COL1b ${__CSVRead(random.txt,0)}
COL2b {__CSVRead(random.txt,1)}{__CSVRead(random.txt,next)}

这将读取一行中的两列, 以及下一个可用行中的两列。如果在相同的用户参数前处理器上定义了所有变量, 则这些行将是连续的。否则, 另一个线程可能会抓取下一行。

该函数不适合用于大型文件, 因为整个文件存储在内存中。对于较大的文件, 请使用 CSV 数据集配置元素或 StringFromFile。

__property

属性函数返回 JMeter 属性的值。如果找不到属性值, 并且未提供默认设置, 则返回属性名称。提供默认值时, 不需要提供函数名-参数可以设置为 null, 并且将被忽略。

  • ${__property(user.dir)} - 返回值为 user.dir
  • ${__property(user.dir,UDIR)} - 返回值为user.dir 并保存在 UDIR
  • ${__property(abcd,ABCD,atod)} - 返回值属性为 abcd (或 "atod"如果没有定义) 并保存在ABCD中
  • ${__property(abcd,,atod)} - 返回值属性为 abcd (或 "atod"如果没有定义) 但不保存它

__P

这是一个简化的属性函数, 用于与命令行上定义的属性一起使用。与 __property 函数不同, 没有选项保存变量中的值, 如果没有提供默认值, 则假定为1。选择了1的值, 因为它对常见的测试变量 (如循环、线程计数、坡道等) 有效。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Jmeter post上传文件实现过程详解

    上周五东西都收拾好了,然后被叫住加班,直接搞到凌晨一两点,原因是另一个项目的性能出了点问题.为此我抓包写了一下主业务流的接口,涉及到文件上传,记录一下吧. 一.创建线程组,添加各类组件 这个就不用说了.由于需要登录,所以我加了一个信息头管理器,把token写在里面. 二.文件上传 有接口文档的话,那就对着文档写,没api文档,就自己抓包看了.(注意:我在线程组下面加了http信息头管理器是因为我下面的"核对数据"和"预览发送"两个步骤需要这个Content-Type

  • Jmeter自定义函数base64加密实现过程解析

    新建一个类继承AbstractFunction,重写以下方法: execute setParameters getReferenceKey getArgumentDesc 这四个方法介绍如下: public String execute(SampleResult previousResult, Sampler currentSampler) throws InvalidVariableException JMeter会将上次运行的SampleResult和当前的Sampler作为参数传入到该方法

  • Jmeter接口登录获取参数token报错问题解决方案

    Jmeter接口登录时获取到的参数token一直在变的问题,导致运行时总是报错 解决方法如下: 1.新建一个GET的HTTP请求 2.添加正则表达式提取器 记得name="_token" value="(.+?) 中间有一个空格,"_token"和value中间的空格(之前在这边耗费了很多时间) 3.新建一个POST的HTTP请求用于登录,_token值写为${token} 4.新建一个Debug Sampler用于查看获取到的token 值 5.运行,察

  • Jmeter生成UUID作为唯一标识符过程图解

    在测试过程中,我们有时候需要一个唯一不重复的值(比如order_id).我之前一直用的时间戳+计数器/随机函数拼接,但是有时候效果不太好,今天知道了UUID这玩意,可以来操作下.jmeter也提供了UUID函数,这里我参考百度写法用beanshell. 1.添加一个测试计划--线程组--BeanShellSampler import java.util.UUID; UUID uuid1 = UUID.randomUUID(); //获取UID的值 //把uuid中的'-'去掉,然后传给zichu

  • Jmeter命令行执行脚本如何设置动态参数

    最近看到在Linux上折腾jmeter的人越来越多,不过即使在windows上,jmeter的脚本我还是建议用命令行来执行(降低GUI模式带来的性能损耗,不过拿jmeter来做接口测试的无所谓).做性能测试的时候,有时候可能需要不停的去设置"线程组"那个界面的参数(例如线程数.循环次数.持续时间等),而每次修改-->保存-->cmd中运行总感觉麻烦,那就找一种方法可以在命令行中直接指定参数的值. 查看相关资料实操,可以发现JMeter的测试计划在运行Sampler之前会先加

  • Jmeter配置代理实现录制过程图解

    1.谷歌浏览器配置管理 在代理服务器中,按上图进行设置,可以把localhost换成 127.0.0.1 ,端口换成你想设置的,但是不要与别的端口进行冲突,一般四位数的端口冲突比较少 2.Jmeter中配置代理 (1)添加线程组,在线程组里面添加HTTP Cookie管理器如下图所示 添加路径是:[线程组]右键--[添加]--[配置元件]-[HTTP Cookie管理器] (2)在线程组里面添加http请求默认值 添加路径:[线程组]右键--[添加]--[配置元件]-[HTTP请求默认值] 3.

  • jmeter在linux系统下运行及本地内存调优的方法详解

    1.在linux系统下安装跨系统传输文件工具 root用户下 根目录输入 yum -y install lrzsz 2.把apache-jmeter-4.0zip包 用rz命令上传到linux系统的根目录下 解压 3.配置jmeter环境变量 vim /etc/profile 添加 export PATH=/apache-jmeter-4.0/bin/:$PATH 注意路径 4.使用 rz命令上传jdk1.8 linux 64位版本 解压到 usr/local 目录下 下载jdk安装包 下载地址

  • Jmeter如何基于命令行运行jmx脚本

    性能测试过程中,如果进行大量的并发时,界面容易卡死. 通过非GUI(命令行)的方式是个不错的选择. windows环境 1.在安装Jmeter的目录下,可创建一个文件夹"result" 2.将创建好的测试脚本放置于result文件下 3.通过终端进入result文件下,输入命令 D:\apache-jmeter-3.2\bin\jmeter.bat -n -t cj0320.jmx -l cj0320.jtl 如果不进入result的路径,那么 .jmx 和 .jtl 路径就要写全:

  • Jmeter对接口测试入参实现MD5加密

    一.自带函数助手MD5加密 在函数助手中找到__MD5这个函数,第一个参数是要md5加密的值,第二个参数是保存加密后值的变量 在请求参数中引用该函数 发送请求可以看到密码加密了 二.beanshell脚本md5加密 在jmeter的lib目录下,自带commons-codec-1.11.jar(如果没有,可以到maven库下一个,下载地址: https://mvnrepository.com/,然后放到jmeter的lib目录下),所以,可以借助apache工具类DigestUtils实现. b

  • Jmeter常见函数使用方法汇总

    __intSum intSum 函数可用于计算两个或多个整数值的总和. 引用名称是可选的, 但它不能是有效的整数. {__intSum(2,5,MYVAR)} 将返回 7 (2 5) 并将结果存储在 MYVAR 变量中.因此 {MYVAR} 将等于7. ${__intSum(2,5,7)} 将返回 14 (2 5 7) 并将结果存储在 MYVAR 变量中. {__intSum(1,2,5,${MYVAR})} 如果 MYVAR 值等于8.1 2 5 {MYVAR}, 则返回16 __longSu

  • Thinkphp批量更新数据的方法汇总

    以下小编给大家列出了三种实现thinkphp批量更新数据的方法,写的不好还请见谅,有意见欢迎提出,共同学习进步! 方法一: //批量修改 data二维数组 field关键字段 参考ci 批量修改函数 传参方式 function batch_update($table_name='',$data=array(),$field=''){ if(!$table_name||!$data||!$field){ return false; }else{ $sql='UPDATE '.$table_name

  • javascript中一些util方法汇总

    javascript中一些util方法汇总 /***************原生对象工类方法****************/ /** * 判断非空 * @param obj * @returns {boolean} */ function isEmpty(obj) { if (obj == undefined || obj == null || new String(obj).trim() == '') { return true; } else { return false; } } /**

  • jquery常用函数与方法汇总

    1.delay(duration,[queueName]) 设置一个延时来推迟执行队列中之后的项目. jQuery 1.4新增.用于将队列中的函数延时执行.他既可以推迟动画队列的执行,也可以用于自定义队列. duration:延时时间,单位:毫秒 queueName:队列名词,默认是Fx,动画队列. 例: 头部与底部延迟加载动画效果 $(document).ready(function() { $('#header') .css({ 'top':-50 }) .delay(1000).anima

  • JavaScript过滤字符串中的中文与空格方法汇总

    js 如何过滤字符串里中文或空格呢?方法有很多种,我们可以使用替换与正则表达式来实现,本文向大家介绍两个简单的例子,感兴趣的朋友可以参考一下. 1.javascript过滤空格: function moveSpace() { var str = " abc defg"; alert(str.replace(/[ ]/g, "")); } moveSpace(); 2.javascript过滤中文: var title ="字符串zifuchuan"

  • Java中常用修饰符的使用方法汇总

    修饰符汇总: 一:public protected default private 修饰类,修饰方法,修饰属性,修饰代码块. 类: 顶级类只能用public 修饰,顶级类不能使用private 和protected 修饰. 外部类可以被public修饰或者默认不写,不能用private和protected. 内部类可为静态,可用protected和private修饰. 方法: 通常方法可以被四个访问修饰符修饰,构造方法也可以被四个访问修饰符修饰. 抽象类中的抽象方法不能被private修饰,可以

  • Java实现时间动态显示方法汇总

    本文所述实例可以实现Java在界面上动态的显示时间.具体实现方法汇总如下: 1.方法一 用TimerTask: 利用java.util.Timer和java.util.TimerTask来做动态更新,毕竟每次更新可以看作是计时1秒发生一次. 代码如下: import java.awt.Dimension; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java

  • JS判断图片是否加载完成方法汇总(最新版)

    有时需要获取图片的尺寸,这需要在图片加载完成以后才可以.下面小编给大家整理了几种关于JS判断图片是否加载完成方法汇总,一起看看吧. 一.load事件 <script type="text/javascript"> $('img').onload = function() { //code } </script> 优点:简单易用,不影响HTML代码. 缺点:只能指定一个元素,javascipt代码必须置于图片元素的下方 二.jquery方法 <script

  • javascript数组使用调用方法汇总

    JS数组方法汇总shift:删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4,5]; var b = a.shift(); //a:[2,3,4,5]  b:1 unshift:将参数添加到原数组开头,并返回数组的长度 var a = [1,2,3,4,5]; var b = a.unshift(-2,-1); //a:[-2,-1,1,2,3,4,5]  b:7 注:在IE6.0下测试返回值总为undefined,FF2.0下测试返回

  • JavaScript的各种常见函数定义方法

    本文详细讲述了JavaScript的各种常见函数定义方法,分享给大家供大家参考.具体分析如下: 首先看一下JavaScript最常见的四种函数定义: 用Function构造函数定义的函数,代码如下: var multiply = new Function('x', 'y', 'return x * y;'); 函数声明,这种方式也是最为常见的一种: function multiply(x, y) { return x * y; } 函数表达式,声明为匿名函数然后赋值给一变量,很常见的方式: va

随机推荐