在另一个JMeter线程中使用提取的JSON值
首先,让我先回答这个问题,我只使用JMeter 36个小时 我已经成功地创建了一个线程,该线程执行POST(json主体)来生成新记录在另一个JMeter线程中使用提取的JSON值,jmeter,Jmeter,首先,让我先回答这个问题,我只使用JMeter 36个小时 我已经成功地创建了一个线程,该线程执行POST(json主体)来生成新记录 { "id":1257697771, "displayName":"TERM2", "functionName":"f_1257697771", "displayableSourceExpression":"TRUE", "typeId":200, "groupId":300, "clobObjId":1257697
{
"id":1257697771,
"displayName":"TERM2",
"functionName":"f_1257697771",
"displayableSourceExpression":"TRUE",
"typeId":200,
"groupId":300,
"clobObjId":1257697772,
"typeCode":5,
..........
}
我需要获取新记录返回的ID(1257697771)值,以便在其他线程中对此记录执行更新、按ID获取、删除等操作
经过大量阅读,我创建了一个正则表达式提取器,其中:
- 适用于:仅适用于主样本
- 要检查的字段:正文作为文档
- 参考名称:newRecord
- 正则表达式:“id”:(.+?)\,“displayName”
- 模板:$1$
- 第1场
- 默认值:无
任何见解都值得赞赏。谢谢。要在线程之间传递值,需要使用该函数 在使用groovy的jsr223后处理器中,获取值的代码如下所示:
def userProperty = props.get('propertyToGet')
vars.put('userProperty', String.valueOf(userProperty))
然后,您可以使用以下命令访问线程中的变量:
${userProperty}
或者您可以直接使用速记:
${__P('propertyToGet')}
jmeter中的变量是特定于线程的。要在线程之间传递值,需要使用函数 在使用groovy的jsr223后处理器中,获取值的代码如下所示:
def userProperty = props.get('propertyToGet')
vars.put('userProperty', String.valueOf(userProperty))
然后,您可以使用以下命令访问线程中的变量:
${userProperty}
或者您可以直接使用速记:
${__P('propertyToGet')}
jmeter中的变量是特定于线程的。jmeter变量是线程组的本地变量,您需要将变量转换为jmeter属性 使用:
newRecord
变量的函数,如:
${__setProperty(newRecord,${newRecord},)}
${__P(newRecord,)}
还要注意的是,JMeter函数语法看起来是由外星人开发的 JMeter变量是线程组的本地变量,您需要将变量转换为JMeter属性 使用:
newRecord
变量的函数,如:
${__setProperty(newRecord,${newRecord},)}
${__P(newRecord,)}
还要注意的是,JMeter函数语法看起来是由外星人开发的 谢谢大家。在你的帮助下,我解决了这个问题 在第一个线程中:
- 设置Reg表达式提取器Regular Expression=“id”:(.+?)\,“displayName”
- 添加了一个Bean断言,其中参数=${uuuu setProperty(newRecord,${newRecord},)}
- 在路径url后面追加${uuu P(newRecord,)}
GEThttp://server/.../.../.../.../1257698108
并返回在第一个线程中生成的确切数据
谢谢大家的帮助 谢谢大家。在你的帮助下,我解决了这个问题 在第一个线程中:
- 设置Reg表达式提取器Regular Expression=“id”:(.+?)\,“displayName”
- 添加了一个Bean断言,其中参数=${uuuu setProperty(newRecord,${newRecord},)}
- 在路径url后面追加${uuu P(newRecord,)}
GEThttp://server/.../.../.../.../1257698108
并返回在第一个线程中生成的确切数据
谢谢大家的帮助 Regexp最好是:“id”:(\d+?),您可以使用${newRecord}在每隔一个samper和beanshell中使用新记录。在beanshel中,您还可以使用字符串s=vars.get(“newRecord”)获取值;Regexp最好是:“id”:(\d+?),您可以使用${newRecord}在每隔一个samper和beanshell中使用新记录。在beanshel中,您还可以使用字符串s=vars.get(“newRecord”)获取值;谢谢你的回答。事实上,我看了BlazeMeter的视频,读了他们的很多帖子,才走到了这一步。我觉得我离得很近,但我错过了一些东西。对于_setProperty(),在“generating”线程中创建BeanShell断言,并将函数放入脚本中,使参数和脚本文件字段为空。这是正确的吗?在第二个线程的HTTP请求中,路径是我需要用第一个线程中生成的变量附加这个路径。因此,我应该将“${uu P(newRecord,)}”放在Send参数1中。您可以在任何地方使用
\uuu setProperty()
函数,不一定在断言中使用。2.如果需要将其添加到路径-\up()
函数,请直接添加到路径,谢谢您的回答。事实上,我看了BlazeMeter的视频,读了他们的很多帖子,才走到了这一步。我觉得我离得很近,但我错过了一些东西。对于_setProperty(),在“generating”线程中创建BeanShell断言,并将函数放入脚本中,使参数和脚本文件字段为空。这是正确的吗?在第二个线程的HTTP请求中,路径是我需要用第一个线程中生成的变量附加这个路径。因此,我应该将“${uu P(newRecord,)}”放在Send参数1中。您可以在任何地方使用\uuu setProperty()
函数,不一定在断言中使用。2.如果需要将其添加到路径-\up()
函数直接