如何使用JMeter保存HTTP响应中的值?

时间:2018-01-04 13:34:33

标签: jmeter

在JMeter测试计划中,我有太多的HTTP请求。其中一个在每次单击“创建”按钮时都会创建一个新会话。

如何将该session_id存储在CSV文件中以便进一步操作?

3 个答案:

答案 0 :(得分:1)

如果您已使用相关的JMeter PostProcessor提取了此session_id,则可以使用JSR223 PostProcessor将其值保存到文件中,代码如下:

new File('/path/to/your/file.csv') << vars.get('session_id') << System.getProperty('line.separator')

确保在&#34;语言&#34;中选择groovy。下拉并勾选Cache compiled script if available框。

如果存在${session_id}变量,JMeter会将其值存储在提供的文件中。

答案 1 :(得分:1)

有几种方法可以做到这一点。最有用的是RegExp后处理器。 如下图所示,可以在此处找到它。 将其放在“请求”下,该请求将返回所需的数据作为响应。

enter image description here

RegExp根据创建变量的名称捕获组并将其存储在不同的变量名称下。可以在Response的不同区域中搜索值,如图像所示,我们可以在标题,重定向页面,主体等中搜索。可以通过$ {VariableName}(例如$ {JSESSION_ID})在其他HTTP请求或处理器(Post和Pre)中重复使用Stored变量

  1. 参考名称
  2. RegExp本身
  3. 捕获组
  4. 比赛号码
  5. 如果RegExp无效,则设置默认值

enter image description here

调试: 如果找不到值,则DEBUG与Tree Results Viewer一起可以提供帮助。他们在这里:

enter image description here

常规脚本结构可能类似于:

enter image description here

答案 2 :(得分:0)

添加BeanShell PostProcessor。复制并粘贴以下代码(对path和var进行修改)。

format()