需要从豆壳采样器Jmeter中仅提取模数值吗?

需要从豆壳采样器Jmeter中仅提取模数值吗?,jmeter,jmeter-3.2,Jmeter,Jmeter 3.2,在我的豆壳采样器中,我得到的响应如下 Sun RSA公钥,2048位 模数:22295351891298217229975679072351263454572804823888397394956934480688545098388363434555311921650592166059251017638546278442305958792511628365321549674368487249258317999232492062784515102404906734978121435799114700

在我的豆壳采样器中,我得到的响应如下

Sun RSA公钥,2048位 模数:22295351891298217229975679072351263454572804823888397394956934480688545098388363434555311921650592166059251017638546278442305958792511628365321549674368487249258317999232492062784515102404906734978121435799114700302881045885988703962970888009290777606595760751230036638945779986258956916131307234869683993065702144540870733479633460269689089976061715241046980179651894991519601546098863574672792649655278518708922038045203420614818093220439077000089729610115783652292803355176127125944925842204444536282480600674854449097908926668384181326756503446116301460522215211454108585731728225508829847198093781511594519426983 公众指数:65537

我只需要提取模字段中的值。我们如何在Jmeter中实现它?帮助是有用的

切换到和语言 使用下面的代码使用正则表达式提取模值,如

参考资料:

比恩希尔等效物以防万一:

import java.util.regex.Matcher;
import java.util.regex.Pattern;


String response = "Sun RSA public key, 2048 bits modulus: 22295351891298217229975679072351263454572804823888397394956934480688545098388363434555311921650592166059251017638546278442305958792511628365321549674368487249258317999232492062784515102404906734978121435799114700302881045885988703962970888009290777606595760751230036638945779986258956916131307234869683993065702144540870733479633460269689089976061715241046980179651894991519601546098863574672792649655278518708922038045203420614818093220439077000089729610115783652292803355176127125944925842204444536282480600674854449097908926668384181326756503446116301460522215211454108585731728225508829847198093781511594519426983 public exponent: 65537";
Pattern p = Pattern.compile("modulus: (.+?) public");
Matcher m = p.matcher(response);
if (m.find()){
    log.info(m.group(1));
}

谢谢@Dmitri T。有没有办法读取Bean Shell Sampler的完整响应。在你的代码中,你已经硬编码了。但在我的Jmeter中,它是随机生成的。我需要捕获随机生成的模数值。如果您有两个Beanshell采样器,并且希望在第二个采样器中使用第一个采样器的响应数据,则可以按如下方式执行:String response=ctx.getPreviousResult.getResponseDataAsString;。请参阅以了解更多信息。感谢@Dmitri T。我也尝试了相同的方法,但在JSON提取器中处理JSON内容时出错,消息:无法解析从位置42开始的令牌。但是我从BeanShell采样器得到的响应不是Json响应。
import java.util.regex.Matcher;
import java.util.regex.Pattern;


String response = "Sun RSA public key, 2048 bits modulus: 22295351891298217229975679072351263454572804823888397394956934480688545098388363434555311921650592166059251017638546278442305958792511628365321549674368487249258317999232492062784515102404906734978121435799114700302881045885988703962970888009290777606595760751230036638945779986258956916131307234869683993065702144540870733479633460269689089976061715241046980179651894991519601546098863574672792649655278518708922038045203420614818093220439077000089729610115783652292803355176127125944925842204444536282480600674854449097908926668384181326756503446116301460522215211454108585731728225508829847198093781511594519426983 public exponent: 65537";
Pattern p = Pattern.compile("modulus: (.+?) public");
Matcher m = p.matcher(response);
if (m.find()){
    log.info(m.group(1));
}