我有一个场景,正则表达式要应用于多个请求(不是全部)。
例如:
有没有办法用单个正则表达式提取器来优化它?
注意:将提取器放置在线程组级别似乎不是一个有效的选择。
我想使用单个正则表达式提取器。该提取器必须根据适当的请求应用正则表达式。因此,需要在后续请求中使用变量。
JMeter 后处理器遵守 JMeter 范围规则,即每个正则表达式提取器将在每个采样器进入其范围后执行。
如果第二个请求不返回连接令牌 - 该变量将具有空值或默认值,并且第三个请求将失败。
最简单的解决方案就是复制并粘贴正则表达式提取器。
如果您不想重复代码,可以切换到 JSR223 PostProcessor 并有条件地提取令牌,例如根据 Sampler 的标签或响应中是否存在
connectionToken
。
类似:
def response = prev.getResponseDataAsString()
if (response.contains('connectionToken')) {
def token = (response =~ 'connectionToken":"(.+?)"')[0][1]
vars.put('token', token)
}
请参阅 您应该与 Groovy 一起使用的前 8 个 JMeter Java 类 文章,了解有关这些
prev
和 vars
人的意思的更多信息,以及关于提取文本方法的 Find Operator Groovy 文档章节。