0

我的测试计划有问题。如果我添加用户定义的变量,比如说 csrftoken 并在用户定义的变量配置元素中为其分配 NOT_INITIALIZED,它会传递给它被引用的 http 请求,但未在具有正则表达式提取器子元素的先前 http 请求采样器中设置,那应该设置它,这意味着它作为“NOT_INITIALIZED”传递。如果我不使用用户定义变量配置元素来声明它,我不能在以后的 http 请求中引用它,也就是说,它仍然像 ${csrftoken},尽管它“应该”由之前的 http 请求及其创建后处理正则表达式提取器,因为它正确引用了名称。我认为,范围可能存在一些问题,但我不知道是什么。一切都在同一个事务控制器中,如果我将所有内容直接放在线程组级别,则没有任何变化。我错过了什么?提前致谢。

4

2 回答 2

0

不需要初始化变量,Regular Expression Extractor 可以自己创建变量并为其赋值。

如果变量值没有被替换 - 正则表达式或模板有问题。如果您可以使用相关响应位更新您的问题,并且您的正则表达式提取器配置社区和我自己将能够提供帮助。

几个参考:

于 2015-08-25T10:36:17.827 回答
0

谢谢回答。我认为正则表达式提取器是可以的:

Apply To:                Main sample and sub samples
Field to check:          Body
Reference Name:          csrftoken
Regular Expression:      csrfToken = '(.+?)';
Template:                $1$
Match No.(0 for Random): 1
Default Value:         

当我使用查看结果树中的 RegExp 测试器时,它会在响应数据上提供 4 个匹配项,例如:

Match count: 4
Match[1][0]=csrfToken = 'Wp6jXFdyUkJmJaJq_MVwH-rKnI7jwXHEtwxLoddUBHLzyT4*';
Match[1][1]=Wp6jXFdyUkJmJaJq_MVwH-rKnI7jwXHEtwxLoddUBHLzyT4*
Match[2][0]=csrfToken = 'Wp6jXFdyUkJmJaJq_MVwH-rKnI7jwXHEtwxLoddUBHLzyT4*';
Match[2][1]=Wp6jXFdyUkJmJaJq_MVwH-rKnI7jwXHEtwxLoddUBHLzyT4*
Match[3][0]=csrfToken = 'Wp6jXFdyUkJmJaJq_MVwH-rKnI7jwXHEtwxLoddUBHLzyT4*';
Match[3][1]=Wp6jXFdyUkJmJaJq_MVwH-rKnI7jwXHEtwxLoddUBHLzyT4*
Match[4][0]=csrfToken = 'Wp6jXFdyUkJmJaJq_MVwH-rKnI7jwXHEtwxLoddUBHLzyT4*';
Match[4][1]=Wp6jXFdyUkJmJaJq_MVwH-rKnI7jwXHEtwxLoddUBHLzyT4*

我宁愿在这里发布 jmx 的摘录吗?

于 2015-08-25T12:00:02.737 回答