2

我正在使用 JMeter 进行负载测试。我的测试包括一个简单的 POST 请求。当我执行此请求时,服务器在其错误日志中显示No Payload Detected. 我已经验证服务器正在接收一个 Post 请求,并且我在 Raw Post Body 中尝试了不同的文本。

接下来,为了确保服务器没有问题,我使用不同的 Http 请求程序(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>&lt;site&gt;ldsorg&lt;/site&gt;
&lt;site-root&gt;/preview/ldsorg/&lt;/site-root&gt;
&lt;correlation-document-id&gt;123456-eng&lt;/correlation-document-id&gt;
&lt;post-to-server&gt;l12773:9239&lt;/post-to-server&gt;
</CustomData>
  <ApprovalNumber>2013-1139150-I</ApprovalNumber>
  <EvalApprovalNumber>2013-1139150-E</EvalApprovalNumber>
</IpReport>

这是 JMeter 的截图。这是唯一的请求,没有其他配置元素: JMeter 截图

4

2 回答 2

8

您可能还需要添加一个HTTP 标头管理器作为HTTP 请求的子项,以设置一些标头,例如 content-type:

添加 HTTP 标头

于 2013-05-06T18:16:09.523 回答
1
  1. 首先。在您上面的问题中,在屏幕截图和请求文本中,请求的部分都有符号<>编码,部分 - 没有。而且您还使用了 Content Encoding = UTF-8 。似乎在这种情况下,请求将被发送格式错误。
    您可以添加例如查看结果树侦听器并检查请求是如何从 jmeter 发送的。

  2. 您也可以尝试专用的REST 采样器

于 2013-05-06T18:12:37.093 回答