Jmeter:" < "在动态变量中

时间:2014-05-09 06:17:58

标签: variables dynamic jmeter

Jmeter新手。还在学习。任何帮助将不胜感激。

登录发帖请求: 获取https://exe.example.com/dsfs/ls/?wa=esignin1.0&trealm=https%3A%2F%2Fexe.example.com%2F&wctx=rm%3D1%26id%3D82339bbd-7cdb-4372-ae5f-65efd2dac185%26ru%3Dhttps%253a%252f%252fexample.com%252fdefault.aspx&wct=2014-05-08T17%3A47%3A46Z&wauth=urn%3Aoasis%3Anames%3Atc%3ASAML%3A1.0%3Aam%3Apassword

上面是发布请求,我发送wa,trealm,wctx,wct,wauth的值,这是我从之前的回复中获得的。 对于上面的帖子请求,我得到了以下一个隐藏变量“wresult”

的响应
<html><head>
<title>Working...</title>
</head>
<body>
<html><head><title>Working...</title></head><body>
<form method="POST" name="hiddenform" action="https://exe.example.com/">
<input type="hidden" name="wa" value="esignin1.0" />

<input type="hidden" name="wresult" value="&lt;t:RequestSecurityTokenResponse xmlns:t=&quot;http://schemas.xmlsoap.org/ws/2005/02/trust&quot;><t:Lifetim….…….../trust/Issue</t:RequestType><t:KeyType>http://schemas.xmlsoap.org/ws/2005/05/identity/NoProofKey</t:KeyType></t:RequestSecurityTokenResponse>" /> 

<input type="hidden" name="rctx" value="rm=1&amp;id=f71cbbfb-c9f6-4255-bb38-f9ec81f1d4aa&amp;ru=https%3a%2f%2fexample.com%2fdefault.aspx" />
<noscript><p>Script is disabled. Click Submit to continue.<input type="submit" value="Submit" /></noscript></form><script language="javascript">window.setTimeout('document.forms[0].submit()', 0);</script></body></html>

我必须在下一个请求中发送摔跤价值。摔跤价值应如下。

<t:RequestSecurityTokenResponsexmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust<t:Lifetim……………entity/NoProofKey</t:KeyType></t:RequestSecurityTokenResponse>

,而是将wresult值作为

发送
&lt;t:RequestSecurityTokenResponse xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust"><t:Lifetim….….……entity/NoProofKey</t:KeyType></t:RequestSecurityTokenResponse>" />

在浏览器中,我猜是用“&lt;”替换“&lt;” 。我检查了一切,看起来请求失败了,因为“&lt;”没有被替换 “&LT;”在jmeter。我猜对了吗?如果是,有没有办法在Jmeter中编辑wresult的值,然后在请求中发送它?

有谁能告诉我如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

JMeter不会执行任何javascript但是你的浏览器会这样做! 所以你可能是对的!

所以,在你的分析中,如果“&lt;” - 只是这会导致问题 - 您可以使用BeanShell PostProcessor / PreProcessor来查找要替换的字符串/字符串,并将其替换为您想要的内容!

http://jmeter.apache.org/usermanual/component_reference.html#BeanShell_PostProcessor

答案 1 :(得分:0)

尝试在HTTP请求中使用“内容编码:”“UTF-8”或“iso-8859-1”。

您还必须检查“编码?”中的参数。你要求的栏目。

希望这会有所帮助。

答案 2 :(得分:0)

如果它是您遇到此问题的唯一地方,您可以使用以下代码添加Beanshell Pre-Processor来解决此问题:

String wresult = vars.get("wresult").replaceAll("&lt;([^.]*?)", "<");
vars.put("wresult",wresult);

使用上面的代码添加Beanshell预处理器作为请求的子代,您尝试传递wresult变量。

相关问题