博客
关于我
Jmeter函数与变量使用详解(下)-32
阅读量:705 次
发布时间:2019-03-21

本文共 1416 字,大约阅读时间需要 4 分钟。

函数在JMeter中的应用

JMeter是一个强大的测试工具,能够通过灵活的配置方式满足各种测试需求。而在这之中,函数无疑是用户的好帮手,它们能够帮助我们生成随机值、执行复杂逻辑操作、甚至动态获取变量值,从而提升测试效率。

一、关于函数的类型

在JMeter中,函数主要分为两大类:内置函数和静态变量。

内置函数是JMeter提供的预定义函数,它们能够基于当前运行的线程、时间、以及其他动态信息,生成新的值。在测试过程中,内置函数会因为每次请求的不同而不断生成新的值,避免了数据重复的问题。

而静态变量则与内置函数不同,它们在测试迭代过程中保持不变。这使得静态变量在某些特定场景下非常有用,比如在构建固定数据时。

二、函数的使用场景

在JMeter的测试元素中,我们可以将函数应用于几乎任何字段。然而,对于那些需要数字输入的字段,函数通常是不允许的,因为这样可能导致数据类型不符。不过,对于大部分字段而言,使用函数是完全可行的。

以下是一些常用的JMeter内置函数:

  • intSum、longSum:用于生成随机数字值,适合用于测试各类数字处理功能。
  • machineName:获取运行机器的名称,可以用于测试机器间的交互性质。
  • time:获取当前时间,可以用于测试时间相关功能的准确性。
  • random:生成随机数值,范围可以根据需求进行配置。
  • property functions:用于读取或设置属性值,可以在配置元件中使用。
  • 三、变量与函数的引用方法

    在测试元素中引用变量和函数,方式其实非常类似。变量是通过${}符号来表示的,例如${VarName},其中VarName是变量的名称。

    而函数则以__开头,如${__BeanShell}${__Javascript}。部分函数还需要通过参数进行配置,这些参数通常用括号括起来,值之间用逗号分隔。

    需要注意的是,某些函数参数中包含逗号时,需要进行适当的转义,以确保解析正确。这一点尤为重要,以免导致函数解析错误。

    四、函数助手工具

    为了提高效率,JMeter提供了专门的函数助手工具。这款工具可以根据需要选择内置函数,并自动生成所需的函数调用字符串。例如,选择生成随机数值的intSum函数,工具会自动提示你设置参数范围,生成适当的函数代码。

    使用函数助手,无论是生成函数代码还是调试问题,都会显著提升你的工作效率。

    五、变量的动态定义

    有时候,测试需求可能要求_DEFINEVAR M变量值的动态定义。在这种情况下,可以使用脚本语言(如Beanshell、Groovy、Jexl)来定义变量。

    例如,可以在测试计划中定义脚本:

    String SCRIPT = vars.put("name", "test")

    然后在需要使用该变量的地方调用该脚本:

    ${__BeanShell(${SCRIPT})}

    在这种方式下,无需在脚本中预先处理逗号转义,函数解析会自动处理参数,符合JR223规范。

    六、变量的嵌套调用

    在JMeter中,可以通过函数来实现变量的嵌套调用。例如:

    ${__XPath(${__P(xpath.file)}, ${XPATH})}

    其中,${__P(xpath.file)}会根据“xpath.file”变量的值获取相应的文件名,而${XPATH}则是另一个变量,存储XPATH表达式的内容。通过这种方式,可以实现变量的层级调用,充分发挥动态性和灵活性。

    转载地址:http://tkvrz.baihongyu.com/

    你可能感兴趣的文章
    使用Mac OS X如何开启和配置防火墙
    查看>>
    格式化Mac硬盘---DoYourData Super Eraser安全、快速
    查看>>
    MacOS磁盘分区出错的解决办法
    查看>>
    MacOS 应对系统无响应的方法
    查看>>
    Mac隐藏辅助功能|自定义苹果Mac显示器
    查看>>
    ActivityNotFoundException异常错误
    查看>>
    Error merging: refusing to merge unrelated histories
    查看>>
    git远程仓库切换
    查看>>
    带照片捕捉功能的ESP32-CAM PIR运动检测器
    查看>>
    如何使用SSH远程管理Linux服务器
    查看>>
    降级到旧版本macOS的3种方法
    查看>>
    学习Vue.js2.0(国外视频教程)
    查看>>
    wxPython和PyOpenGL视频
    查看>>
    在30分钟内学习PHP
    查看>>
    OpenStack 最小化安装配置(一):物理机网桥配置
    查看>>
    ubuntu 16.04 镜像下载
    查看>>
    CUDA9.1、cuDNN7在Ubuntu16.04上的安装
    查看>>
    解决“预编译器错误:代码使用了scss/sass语言,但未安装相应编译器,请在菜单工具-插件安装里安装相应编译插件”
    查看>>
    微信小程序云开发:怎么删除云函数?已解决
    查看>>
    解决微信小程序项目导入的问题:app.json 未找到、 __wxConfig is not defined
    查看>>