2016-08-23 67 views
2

我对Jmeter非常陌生,并且试图将它用于负载测试我的应用程序。jmeter如何从应用程序重放记录的唯一ID

在我的应用程序,我们每次点击一个模板时,应用程序将分配到哪个模板...当我使用记录JMeter的步骤,一个特定的唯一ID记录一个唯一的ID ......但是当我试图播放录制的案例...它正在寻找相同的唯一ID ....我如何告诉Jmeter从应用程序获取新的ID?

下面是步骤

  • 登录的用户,
  • 点击一个特定链接,
  • 点击一个按钮然后会弹出一个窗口,要求选择一个模板,
  • 选择模板后,我的应用程序将为该模板创建一个唯一的ID

回答

1

它非常依赖于该temp延迟ID在客户端上创建(即通过JavaScript),或者在服务器上(即你可以实际记录服务器返回的模板ID)。

如果第二种情况是您的情况,则服务器在对模板选择的响应中返回模板ID,因此您可以使用post-processors之一 - 在父请求之后调用的支持元素;它通常从响应中提取数据并将其保存为变量。在你的情况下,你需要提取模板ID并将其保存为变量。后来的采样器可以使用格式为${your_name}的变量而不是记录的硬编码字符串。因此,在这种情况下,你的计划看起来是这样的:

enter image description here

其中后处理器使用以及如何使用它取决于你所收到的形式服务器的响应,所以不能更具体的在这里。

如果您的第一个选项是您的情况(客户端上的JavaScript生成模板ID,并且您的记录仅包含该ID的使用),那么您可以通过使用JMeter脚本之一生成类似ID来模拟JavaScript正在执行的操作 - 相关功能:它可能是random function,一个inline piece of JavaScript code,一个脚本取样器,如JSR223 Sampler,还是......有很多选择,真的,这取决于生成的模板ID的具体需要。再次,更具体的问题将有助于缩小您的选择范围。

+0

ID是在服务器上创建......而HTTP请求是POST ......我应该使用和怎么样后处理器使用.. – sumka

+0

其中后处理器使用以及如何使用它取决于响应你正从服务器接收信息。换句话说,你应该发布服务器正在返回什么 –

+0

我为这个http请求添加了一个resular表达式提取器,并想知道如何获取该请求的正则表达式? – sumka

0

您需要检查前一个请求的响应。通常情况下,ID将被创建,并可以在前一个请求的响应中找到,并且您可以使用该ID作为下一个请求。

你需要首先找到在哪个响应正在生成ID和ID的格式。您可以使用萤火虫以HTML格式查看回应,并找出ID的位置。

一旦你有了id的格式,就可以在它周围创建正则表达式。使用JMeter附带的正则表达式测试仪进行测试。或者你可以使用rubular.com来检查你的正则表达式的正确性。

一旦你有了正确的正则表达式,使用正则表达式后处理器在它返回的ID,然后使用在使用唯一的ID实际要求该变量的请求。

+0

在我的视图树结果中,这是我在响应数据选项卡下看到的内容: sumka

+0

并在请求标签我看下面,并在该VID = WKB-0000088214是我正在寻找--- POST数据: OWASP_CSRFTOKEN = KR5R-2N3H-0UDG-E3W9-7U69-SA1H-NDDY-00RR&page = pricesetting.VWorkbookTemplate_ApplyPage&PAGEID = 8&的TaskID = 5&起始页= pricesetting.VWorkbookPage&事件= NULL&重定向=&VxActionMenu_30 = NULL&VxActionMenu_32 = NULL&resetlabel_translated =复位&VID = WKB-0000088214&VNAME = TEST2&VDescription =&剧本= _vnull_&VState = 1036%40com.vendavo.workflow.api.VApprovableState&DISPLAY_VState =草案&VWorkflowOwner = 7001%40com。 vendavo.entitlement.api.V使用 – sumka

+0

我的应用程序不会支持除IE以外的任何其他浏览器,所以我很难找到答复...请帮助 – sumka

1

经典“关联”示例。

  1. 查找生成的ID在以往的回应(你可以用View Results Tree听众做)
  2. 一旦检测到它,你需要提取并转化为JMeter VariablePostProcessor(最常用的是Regular Expression Extractor,但是取决于你的请求的性质,你可以考虑使用其他
  3. 一旦你的ID提取并存储在变量 - 替代通过记录与JMeter的变量
  4. 重复步骤1中得到的硬编码值-3用于任何其他动态参数s或价值观。或者,考虑通过替代记录解决方案创建JMeter测试的更快捷方式,该解决方案可自动执行上述步骤,因此您不必担心检测和处理动态元素。有关详细信息,请参阅How to Cut Your JMeter Scripting Time by 80%文章。