【问题标题】:How to make a beanscript function for every request如何为每个请求制作一个 beanscript 函数
【发布时间】:2022-01-24 05:41:25
【问题描述】:

我现在在每个请求中都有 2 种类型的脚本。是否可以制作A函数和B函数并决定脚本中使用什么脚本?

现在:

Request1
 |_ ScriptA
Request2
 |_ ScriptB
Request3
 |_ ScriptA

我想要

Common Script A
Common Script B
Request1
 |_ Call Common Script A
Request2
 |_ Call Common Script B
Request3
 |_ Call Common Script A

【问题讨论】:

    标签: jmeter


    【解决方案1】:

    如果您添加Post/Pre 处理器,它将在每个请求之后/之前执行:

    Pre/Post Processor Script
    Request1
    Request2
    Request3
    

    后处理器在采样器之后应用。请注意,它们适用于同一范围内的所有采样器,

    如果您使用JSR223 script,您可以使用相同的文件名,这样您就可以编写一次代码(DRY 原则)

    要用作 JSR223 脚本的文件的脚本文件名

    【讨论】:

    • 感谢您的回答,事实上,我的 Jmeter 文件中有两种类型的脚本,请求将使用一种类型的脚本。所以我认为前/后处理器脚本在我的情况下无法切换脚本
    • @J.SLee 你能分割成每个文件的脚本吗?如果不能,您可以将脚本编译为 jar 文件,将 jar 添加到 JMeter 类路径并使用里面的方法吗?
    【解决方案2】:

    取决于你想要达到的目标:

    1. Beanshell PreProcessor 将在 请求之前执行

    2. 其他 Beanshell 测试元素(后处理器、断言、侦听器)将在 请求之后执行

      所有上述测试元素都服从JMeter Scoping Rules

    3. 如果您希望“函数”充当单独的请求并将执行时间记录到 .jtl 结果文件中 - 转到 Beanshell Sampler,您可以将其放在 Test Fragment 下并在 Module Controller 中引用它避免代码重复

    4. Since JMeter 3.1 it's recommended to use JSR223 Test Elements and Groovy language for scripting 所以考虑迁移是有意义的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-06
      • 2012-12-19
      • 1970-01-01
      • 2021-10-17
      • 1970-01-01
      • 2023-01-26
      相关资源
      最近更新 更多