首页 > 解决方案 > GET请求中的JMeter变量失败

问题描述

我有一个 GET 请求,它返回一个包含 TicketName 的 XML。我已经使用调试采样器设置了正则表达式提取器。它根据需要获取 TicketName 并将其显示在 View Results Tree 中,并使用正确的名称变量名称 ticketID_g1。但是,当我将该变量传递给下一个 GET 请求时,测试计划失败并显示非 HTTP 响应消息:套接字已关闭。问题是当我查看结果树中的请求选项卡时,GET 请求看起来很容易找到。

我已经多次更改我的正则表达式,每次都正确提取 TicketName,但每次我将它作为变量应用时,GET 请求都会失败。但是,如果我复制结果树请求选项卡中显示的请求并将其直接粘贴到我的浏览器中,我会得到所需的结果。

我已经阅读了手册和在线教程,看起来我做的一切都是正确的,但显然我错过了一些东西。

第一个 GET 请求返回一个 XML,其中包含 name="2019-05-09-16-59-54cmrpip000613_EDASERVE" needsPrompt

我正在使用以下正则表达式来提取变量 ticketID 的名称

name="([^"]+)" 需要提示 - 这有效

结果树显示来自调试采样器的以下响应 -

ticketID_g1=2019-05-09-16-59-54cmrpip000613_EDASERVE

当我将 ticketID 变量传递给下一个 GET 请求时

//localhost:8080/ibi_apps/rs?IBIRS_action=getReport&IBIRS_ticketName=${ticketID_g1}cmrpip000589_EDASERVE&IBIRS_service=defer

第二个 GET 请求的结果树中的 Response 选项卡显示该请求很好但失败了。

GET http://localhost:8080/ibi_apps/rs?IBIRS_action=getReport&IBIRS_ticketName=2019-05-09-16-59-54cmrpip000613_EDASERVE&IBIRS_service=defer

我期望的是第二个 GET 将与变量一起运行并返回报告,但抛出非 HTTP 响应消息:套接字关闭错误。

标签: apachevariablesgetjmeterrequest

解决方案


您有以下变量正在捕获票证 ID。

ticketID_g1 =2019-05-09-16-59-54 cmrpip000613_EDASERVE

但是,在下面的请求中,您传递的是相同的,其中也有重复的内容,即“cmrpip000589_EDASERVE”

请求:-//localhost:8080/ibi_apps/rs?IBIRS_action=getReport&IBIRS_ticketName=${ ticketID_g1 } cmrpip000589_EDASERVE &IBIRS_service=defer

请正确传递 ticketID 变量,希望它能解决问题。如果我是正确的,您的请求应如下所示:-

请求:-//localhost:8080/ibi_apps/rs?IBIRS_action=getReport&IBIRS_ticketName=${ ticketID_g1 }&IBIRS_service=defer


推荐阅读