我有一个页面,它以以下格式返回一组目录in:
addCatentryId('445653', '23151', 'csb_RVI_10053');我正在尝试将上述每个值分别放入一个数组中,以供进一步计算。
根据本论坛另一篇文章中的建议,建议使用两步法:
1)使用第一个正则表达式提取器从页面响应数据中检索上面的数据段
2)针对第一数据提取的结果执行后续正则表达式提取器,以将字符串数据转换为可用值数组。
为此,我在JMeter脚本中设置了以下提取器:
提取器1:Jmeter Regular Expression Extractor 1
提取器2:Jmeter Regular Expression Extractor 2
当我执行上面的代码时,我得到了以下结果,我不确定如何解释这些结果,但似乎找到了catEntryIDString,但由于某种原因,它没有被提供给第二个正则表达式进程:
JMeterVariables:
JMeterThread.last_sample_ok=true
JMeterThread.pack=org.apache.jmeter.threads.SamplePackage@41035d67
START.HMS=073225
START.MS=1479126745560
START.YMD=20161114
TESTSTART.MS=1479129860911
__jmeter.USER_TOKEN__=Place User Order 1-1
arrValItemId= <---- Why is this empty?
catEntryIDString=null <--- should this be null?
catEntryIDString_g=0
catEntryIDString_g0=addCatentryId('460734', '12220', 'csb_RVI_10053'); <-- data appears to be getting retrieved by 1st extractor任何帮助都是非常感谢的,因为谷歌搜索没有找到有用的信息,JMeter的BlazeMeter帮助页面也没有这么多细节(至少根据我对该网站的信息搜索)。
提前感谢!!
发布于 2016-11-15 00:10:48
您不需要两个正则表达式提取器来从单个响应中捕获多个值。我们可以使用模板通过使用()指定多个组来捕获多个值。
尝试以下正则表达式:
addCatentryId\('(.*?)', '(.*?)', '(.*?)'\);下面是图片参考:

一旦将所有三个值捕获到名为AllValues的Reference Name中(在示例图像中),我们就可以访问每个组/值,如下所示:
第一组- AllValues_1_g1 (产生445653),第二组- AllValues_1_g2 (产生23151),第三组- AllValues_1_g3 (产生csb_RVI_10053)
图片参考:

如果您希望在后续请求中引用任何捕获的值,我们在JMeter中使用以下语法:
${reference_name}
例如:
${AllValues_1_g1} -使用445653值。
参考资料:
https://stackoverflow.com/questions/40590071
复制相似问题