我正在使用JMeter进行负载测试。我的测试包含一个简单的POST请求。当我执行此请求时,服务器在其错误日志中显示No Payload Detected
。我已经验证服务器正在接收Post请求,并且我在Raw Post Body中尝试了不同的文本。
接下来,为了确保它不是服务器的问题,我使用了一个不同的Http Request程序(Wiztools rest客户端)来发送具有相同内容的帖子。它有效,并且不会抛出No Payload Detected
错误。
我目前的理论是JMeter和服务器都进行解析。我知道服务器会这样做,因为它正在寻找一小块数据,并且JMeter的解析会破坏这一小块数据。
因此,最后,我的问题是“JMeter做了什么解析?”
我已经找到了这个答案,我唯一知道它解析的是${VARNAME}
。
我发送的文字如下:
<IpReport xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="">
<ProductReviewId>12345</ProductReviewId>
<DepartmentCode>ABC</DepartmentCode>
<ProductTitle>Test of a teaser</ProductTitle>
<ProjectId>2</ProjectId>
<ProductCodePD>ICS-1139150</ProductCodePD>
<Priority>Pre-Approved</Priority>
<Status>Approved</Status>
<IpStatus>Submitted</IpStatus>
<EvalStatus>Approved</EvalStatus>
<EvalNotes>No Limitations - message from eval</EvalNotes>
<Notes>Notes test</Notes>
<IsInClarity>true</IsInClarity>
<IsPreRelease>true</IsPreRelease>
<IsApproved>true</IsApproved>
<IsCOREvalIP>false</IsCOREvalIP>
<Elements>
<IpReportElement>
<IpReportElementLineItemId>21774</IpReportElementLineItemId>
<ElementType>ReportingStatement</ElementType>
<Contributor>Sample Contributor</Contributor>
<Description>test</Description>
<LocationInProduct>test</LocationInProduct>
<ReportingStatementId>7</ReportingStatementId>
<IpCodeId>3</IpCodeId>
<Links>
<IpReportLink>
<IpReportLinkId>25982</IpReportLinkId>
<Name>Link</Name>
<Url>https://example.org/</Url>
</IpReportLink>
</Links>
</IpReportElement>
</Elements>
<CustomData><site>ldsorg</site>
<site-root>/preview/ldsorg/</site-root>
<correlation-document-id>123456-eng</correlation-document-id>
<post-to-server>l12773:9239</post-to-server>
</CustomData>
<ApprovalNumber>2013-1139150-I</ApprovalNumber>
<EvalApprovalNumber>2013-1139150-E</EvalApprovalNumber>
</IpReport>
这是JMeter的截图。这是唯一的请求,没有其他配置元素:
答案 0 :(得分:8)
您可能还需要添加HTTP Header Manager作为HTTP Request的孩子来设置内容类型的标题:
答案 1 :(得分:1)
首先。在上面的问题中,屏幕截图和请求文本中的部分请求都包含符号<
和>
编码,而部分 - 不符号。而且您还在使用Content Encoding = UTF-8。似乎在这种情况下请求将被发送错误
您可以添加例如View Results Tree监听器并检查请求是如何从jmeter发送的。
您也可以尝试专用REST Sampler。