【问题标题】:get a udv from include controller to test plan从包含控制器获取 udv 到测试计划
【发布时间】:2023-03-17 17:15:01
【问题描述】:

我需要通过 JSON 提取器将在测试片段中创建的变量放入测试计划中。在测试计划中抛出“MissingPropertyException”。

javax.script.ScriptException:groovy.lang.MissingPropertyException:没有这样的属性:类的发票:Script117 在 org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:324) ~[groovy-all-2.4.16.jar:2.4.16] 在 org.codehaus.groovy.jsr223.GroovyCompiledScript.eval(GroovyCompiledScript.java:72) ~[groovy-all-2.4.16.jar:2.4.16] 在 javax.script.CompiledScript.eval(Unknown Source) ~[?:1.8.0_211]

我尝试在测试计划中使用 jsr223 处理器来访问变量。

jsr223中的groovy脚本是这样的

if (vars.get(Invoices.size() == 0))
AssertionResult.setFailure(true);
AssertionResult.setFailureMessage("no Invoice present");

【问题讨论】:

  • 什么是发票价值?你想检查什么?
  • Invoices 是一个存储通过 json 提取器提取的 json 的变量。它可以有一些值或什么都没有(null),如下所示
  • {"Invoices":[],"TotalPageCount":0,"TotalRecordCount":0}
  • {"Invoices":[{"Balance":192.46,"DueDate":"2019-06-13T06:34:01.000Z","EndDate":"2019-06-13T06:34 :01.000Z","InvoiceId":40001015,"InvoiceNumber":"45641231","IssueDate":"2019-06-13T06:34:01.000Z","OutstandingBalance":192.46,"StartDate":"2019-06 -13T06:32:13.000Z"}],"TotalPageCount":0,"TotalRecordCount":0}

标签: jmeter


【解决方案1】:

我假设您需要检查发票是否为空白然后失败。

如果有帮助,请查看以下计划:- 下面是提取发票的 json 提取器。

使用以下获取的值。 检查发票是否不空白的断言。 下面是输出。如果发票为空白,则请求将失败。

希望这会有所帮助。

更新:- 下面是一个带有测试片段的计划。传递变量使用,如 ${varInvoices}

更新2:-

Json 配置:- 第一个测试片段:- 第二个测试片段:- 输出:-

【讨论】:

  • 感谢您的回复,流程是相同的,期望在单独的测试片段(没有线程的单独 jmx 文件)中创建“发票”变量并通过添加该测试在测试计划中使用片段作为“测试片段”元素
  • 从测试片段调用变量时出现问题,'vars.get' 不起作用。调试采样器证明变量已填充。
  • 如果有帮助,请检查更新。使用 ${varInvoices} 直接获取变量..
  • 我已经尝试过使用 Module 控制器,这也适用于 S{varInvoices}
  • 能否请您通过指向 JSON Extractor 来更新屏幕截图,您也可以尝试对涉及的 2 个 jmx 文件进行相同操作,以防使用 Include Controller 指向测试片段。谢谢
猜你喜欢
  • 2018-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-16
  • 2011-08-28
  • 2014-06-14
  • 1970-01-01
  • 2015-11-29
相关资源
最近更新 更多