2015-03-02 28 views
0

我有一个jmeter响应中的字符串,它有5个值,我试图解析为单独的变量。有没有人有任何指导我如何实现这一目标?还是有更好的后处理器,我应该使用?从jmeter响应中的字符串解析多个值

<a role="button" aria-label="Application RANUM20770" href="javascript://" onclick="changenew('ajLQ6VdK5xA3$pyWV$pII4Imx2WoN$p6OMtXEapDOiKzHYLh', 'aH$sRRQGllagYsNakUyuWhv6yV7x3q1S6HfC8Z$ptwPdTMo', 'arfpB11JptWMaFvd2xwkJyNlgHL$spkcuHbJhank$s6DONv', 'aQ877kS6ozZdrGgAFxb6mqEnzCFa09$sVWL$s68yj0rmcwr', 'a4oVRp9kcV4iber3oJSH2xQr3F6XsGB4DpCxgrMNI9y7U', 'no')" ><img src="/tm/images/idoc.gif" alt="Application RANUM20770" border=0></a>&nbsp; 

我正在使用正则表达式提取器来拉值,由于某些原因结果不一致。有时候,第二个值很好,而其他时候它不会 - 没有我改变任何东西。

下面是正则表达式我使用:

${h_docname}" href="javascript:\/\/" onclick="changenew\('(.+?)', 
'${p_vchnum_v}', '(.+?)', ' 
'${p_vchnum_v}', '(.+?)', '${p_ssn}' 
'().+?', 'no'\)" ><img src="\/tm\/images\/idoc.gif" alt="Document ${h_docname}" 
- name="vchdoctype" value="(.+?)"> 

任何帮助是极大的赞赏。

+0

重复的http://stackoverflow.com/questions/27271080/value-extraction-by-regex-jmeter/27271771#27271771 – 2015-03-04 06:45:58

回答

1

JMeter的使用Perl5-style regular expressions,因此尝试正则表达式提取的配置如下:

  • 参考名称:任何有意义的事,即value
  • 正则表达式:changenew\('(.+?)', '(.+?)', '(.+?)', '(.+?)', '(.+?)', 'no'\)
  • 模板:$1$

这将导致如下变量:

value=ajLQ6VdK5xA3$pyWV$pII4Imx2WoN$p6OMtXEapDOiKzHYLh 
value_g=5 
value_g0=changenew('ajLQ6VdK5xA3$pyWV$pII4Imx2WoN$p6OMtXEapDOiKzHYLh', 'aH$sRRQGllagYsNakUyuWhv6yV7x3q1S6HfC8Z$ptwPdTMo', 'arfpB11JptWMaFvd2xwkJyNlgHL$spkcuHbJhank$s6DONv', 'aQ877kS6ozZdrGgAFxb6mqEnzCFa09$sVWL$s68yj0rmcwr', 'a4oVRp9kcV4iber3oJSH2xQr3F6XsGB4DpCxgrMNI9y7U', 'no') 
value_g1=ajLQ6VdK5xA3$pyWV$pII4Imx2WoN$p6OMtXEapDOiKzHYLh 
value_g2=aH$sRRQGllagYsNakUyuWhv6yV7x3q1S6HfC8Z$ptwPdTMo 
value_g3=arfpB11JptWMaFvd2xwkJyNlgHL$spkcuHbJhank$s6DONv 
value_g4=aQ877kS6ozZdrGgAFxb6mqEnzCFa09$sVWL$s68yj0rmcwr 
value_g5=a4oVRp9kcV4iber3oJSH2xQr3F6XsGB4DpCxgrMNI9y7U 

所以,你将能够使用:

  • ${value_g1} - 对于第一个变量
  • ${value_g2} - 为第二可变

View Results Tree - Regular Expressions

+0

第一个变量的作品,但由于某种原因,其他四个不。我已经在同一个脚本的其他部分成功地使用了这个方法来选择我想提取但是现在不工作的匹配结果。我错过了什么吗? – ppragados 2015-03-03 17:21:39

+0

我得到它的工作,谢谢@Dimitri,问题是我完全忽略了你的答案中的“$ {value_g2}”部分。不用多个后处理器,只需使用一个,并通过使用相同的引用名称引用“_g1”“_g2”来指定他们想要在采样器中使用的匹配值。 – ppragados 2015-03-03 17:55:30