博客
关于我
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/

    你可能感兴趣的文章
    Problem G. The Stones Game【取石子博弈 & 思维】
    查看>>
    Java多线程
    查看>>
    openssl服务器证书操作
    查看>>
    我用wxPython搭建GUI量化系统之最小架构的运行
    查看>>
    selenium+python之切换窗口
    查看>>
    重载和重写的区别:
    查看>>
    搭建Vue项目步骤
    查看>>
    账号转账演示事务
    查看>>
    SpringBoot找不到@EnableRety注解
    查看>>
    简易计算器案例
    查看>>
    在Vue中使用样式——使用内联样式
    查看>>
    Find Familiar Service Features in Lightning Experience
    查看>>
    Explore Optimization
    查看>>
    连接Oracle数据库经常报错?关于listener.ora和tnsnames.ora文件的配置
    查看>>
    map[]和map.at()取值之间的区别
    查看>>
    【SQLI-Lab】靶场搭建
    查看>>
    【Bootstrap5】精细学习记录
    查看>>
    Struts2-从值栈获取list集合数据(三种方式)
    查看>>
    参考图像
    查看>>
    设计模式(18)——中介者模式
    查看>>