我试图从GET请求的响应头中提取“代码”。验证登录时需要该代码。我能够提取'代码'-但它只工作约50%的时间。我试过使用不同的计时器,认为这可能是一个问题,必须等待页面加载,但这似乎没有太大的区别。
下面是一个包含我们需要的“代码”的响应头的例子。它是从“MATRIORIZE- get CODE-0”请求中提取的:/callback/loa-1?代码= 8bd 92 bd 0 - 9 c35 - 4c 77 - 8 c1 a-a205 a32 b44 d4 &状态= e10 ccxxxxxxxxxxxx 45 yyyyyy 6 zzzzzf
其中“代码”为8bd 92 bd 0 - 9 c35 - 4c 77 - 8 c1 a-a205 a32 b44 d4
在结果树中失败的请求中,“QUALIORIZE- get CODE-0”返回的响应头与成功的响应头不同,特别是“Location”,其中包含我们从中提取“code”的URL。
下面是结果树:x1c 0d1x
线程组设置:
HTTP头管理器:
HTTP Cookie管理器:
HTTP缓存管理器:x1c4d 1x
HTTP请求地址:
HTTP授权管理器:
我能够提取'代码'-但它只工作约50%的时间。我试过使用不同的计时器,认为这可能是一个问题,必须等待页面加载,但这似乎没有太大的区别。
1条答案
按热度按时间xj3cbfub1#
你分享了很多无用的截图,而不是分享唯一有意义的截图:你用来获取代码的后处理器
在正则表达式提取器的情况下,相关的正则表达式应该类似于
code=([a-f0-9]{8}(?:-[a-f0-9]{4}){4}[a-f0-9]{8})
对于Boundary Extractor,你可以只使用
code=
作为左边界,&
作为右边界(但是如果参数的顺序改变,提取将失败)如果您仍然遇到问题-检查请求的响应详细信息,其中使用View Results Tree侦听器返回“代码”,并使用JMeter Sampler存储到JMeter变量中。