【问题标题】:JMeter - Using a variable for a HTTP (SOAP) Request Body with variables inside the body variable - implanted variables not being resolved in requestJMeter - 将变量用于 HTTP (SOAP) 请求正文,其中变量在正文变量中 - 植入的变量未在请求中解析
【发布时间】:2022-01-20 05:17:31
【问题描述】:

为了创建可以发送不同类型 SOAP 信封的 JMeter HTTP 请求,我创建了一个基于文件的变量,其中包含 SOAP 信封,然后在 Body 元素中引用该变量以提供所需的 SOAP 请求正文。 ${SOAP_Envelope_Body} 注意:这是我唯一使用的采样器类型 - 出于简单性和兼容性的原因。

通过还在 .properties 文件中为授权管理器元素的 SOAP 操作等使用自定义属性,一切都运行良好,我可以轻松地测试基于主体信封数据文件提供的硬编码 SOAP 信封主体的任何 Web 服务。

我的问题是我现在需要能够在硬编码的 SOAP 主体变量中添加变量,以允许它从另一个变量数据文件中获取额外的数据,这样我就可以重新使用相同的 Web 服务主体,但是每次迭代都有不同的数据。

在 LoadRunner 中,我可以将参数(JMeter 中的变量)嵌套在一个参数中并且它们会解析,在 JMeter 中这似乎不起作用,那么我该如何实现以下目标:

我的输入文件中的示例 ${SOAP_Envelope_Body} 变量 SOAP 正文可能包含以下元素,其中包含需要在运行时在我的请求中评估的 植入变量,但目前尚未在 JMeter 发送的实际 HTTP 请求中得到解决。

带有植入变量的示例 SOAP 主体元素变量: ${Var1}${Var2}街道名称

已评估和发送的带有植入变量的预期请求正文: 患者12345街道名称

发送的实际正文请求: ${Var1}${Var2}街道名称

如何在运行时解析变量,我查看了自定义预处理器,但没有太多编码知识或示例,但没有成功。任何建议,如果可能的话,附上例子将不胜感激。 JMeter 必须能够处理变量内部的变量,如果它是定价过高的对应物,LoadRunner 可以!!

【问题讨论】:

    标签: variables soap jmeter request


    【解决方案1】:

    把它包装成__eval() functionlike:

    ${__eval(${SOAP_Envelope_Body})}
    

    这样,${SOAP_Envelope_Body} 变量内的所有嵌套JMeter Functions or Variables 都将解析为各自的值。

    更多信息:Here’s What to Do to Combine Multiple JMeter Variables

    【讨论】:

    • 谢谢你的上述 - 与我的预期相比如此简单,就像我训练我的工程师一样,尽可能保持简单,以便其他人可以遵循所做的事情,这似乎与我所追求的。最受赞赏的德米特里!
    • 完美回应 Dmitri 的需求!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 2019-07-26
    相关资源
    最近更新 更多