"这篇教程是关于JMETER的后置处理器——正则表达式提取器的第三次讲解,重点是如何从服务器响应的JSON报文中提取多个值。文中提供了一个实例,展示了如何提取mount、price、totalprice和Type这四个值。通过创建HTTP请求、设置正则表达式提取器以及使用DebugSampler进行调试,来实现这一目标。"
在JMeter测试计划中,后置处理器用于在主采样器执行后处理响应数据。在这个场景中,我们关注的是正则表达式提取器,它是一个强大的工具,可以从服务器响应中提取所需的数据。对于JSON响应,可以利用正则表达式来匹配并提取特定字段的值。
首先,模拟服务器响应的JSON报文被保存到文件"Return_Msg"中。接着,创建一个HTTP请求采样器,配置为从文件系统中读取该文件内容。为了验证请求是否成功,添加了"察看结果树"监听器来显示响应数据。
然后,我们需要在HTTP请求采样器后添加正则表达式提取器。对于每个要提取的值,我们需要定义不同的正则表达式:
1. 对于"mount",正则表达式是:"mount":(.+?)
2. 对于"price",正则表达式是:"price":(.+?)
3. 对于"totalprice",正则表达式是:"totalprice":(.+?)
4. 对于"Type",正则表达式是:"Type":(.+?)
这些正则表达式都是基于报文中的键值对结构设计的,括号内的".+?"表示匹配任意数量的非换行字符。"g1", "g2", "g3", "g4"分别代表提取的匹配组,它们将在后续的请求中用作变量。
在正则表达式提取器中,引用名称设为"MyMsg",并将上述四个正则表达式合并成一个。设置"模板"为"$1$, $2$, $3$, $4$",这意味着提取出的四个匹配项将分别存储在${MyMsg_g1}到${MyMsg_g4}中。
为了调试,添加了DebugSampler,它会显示所有变量和属性的当前值。这样,我们可以看到提取的值是否正确。
最后,创建另一个HTTP请求采样器,将提取的值作为参数传递。例如,mount值设为`${MyMsg_g1}`,price值设为`${MyMsg_g2}`,totalprice值设为`${MyMsg_g3}`,Type值设为`${MyMsg_g4}`。运行测试,通过"察看结果树"监听器检查这些值是否按预期被正确使用。
通过这个过程,我们学会了如何利用JMeter的正则表达式提取器从JSON响应中提取多个值,并在后续的请求中重用这些值,这对于模拟复杂的业务流程或进行接口自动化测试非常有用。