JMeter:在哪种情况下我可以使用 "Main sample" 或 "Sub Sample" 或两者用于响应断言中的文本响应

JMeter: In which scenario I can use "Main sample" or "Sub Sample" or both for Text Response in Response Assertion

我想知道在哪种情况下我可以使用 "Main sample" 或 "Sub Sample" 或两者用于响应断言中的文本响应。

我用谷歌搜索了它,但还没有收到满意的答案。

感谢帮助。

当您 select 'Retrieve All Embedded Resources' 您拥有的 HTTP 请求时,它可能会生成子采样器(对于 img、css、js 文件等)。您 select 根据您希望 'expected text' 出现的采样器相应地选择响应断言中的选项。

  • 主样本和子样本: JMeter 将检查 'expected text' 是否存在于主样本和子样本中,以及是否有任何采样器没有文本,它失败了。
  • 仅主样本: - JMeter 将仅在主样本中检查 'expected text'。找不到则失败。
  • 仅限子样本: - JMeter 将仅在所有子样本中检查 'expected text'。所有的子采样器都应该有文本。否则失败。

根据 JMeter 帮助,

This is for use with samplers that can generate sub-samples, e.g. HTTP Sampler with embedded resources, Mail Reader or samples generated by the Transaction Controller.

Main sample only - assertion only applies to the main sample
Sub-samples only - assertion only applies to the sub-samples
Main sample and sub-samples - assertion applies to both.
JMeter Variable - assertion is to be applied to the contents of the named variable

在大多数情况下,只有主采样器具有所有必需的响应数据,但现在由于 ajax、jquery 框架单个请求可以在内部产生多个 sub-requests,并且每个都有其响应数据.

因此在大多数情况下,在主采样器响应中搜索就足够了

但如果您知道或发现请求有多个 sub-requests 并且响应可以在任何地方,那么您可以选择 "main samples and sub samples" 单选按钮,这样您就不会错过子请求。