只需要从 Bean Shell Sampler Jmeter 中提取模数值吗?

Need to extract only Modulus value from Bean Shell Sampler Jmeter?

在我的 Bean Shell 采样器中,我得到的响应是

Sun RSA public 密钥,2048 位 modulus: 22295351891298217229975679072351263454572804823888397394956934480688545098388363434555311921650592166059251017638546278442305958792511628365321549674368487249258317999232492062784515102404906734978121435799114700302881045885988703962970888009290777606595760751230036638945779986258956916131307234869683993065702144540870733479633460269689089976061715241046980179651894991519601546098863574672792649655278518708922038045203420614818093220439077000089729610115783652292803355176127125944925842204444536282480600674854449097908926668384181326756503446116301460522215211454108585731728225508829847198093781511594519426983 public 指数:65537

我只需要提取模数字段中的值。我们如何在 Jmeter 中做到这一点?帮助很有用!

  1. 切换到JSR223 Sampler and Groovy语言
  2. 使用如下代码提取您的 "modulus" 值,使用正则表达式 Matcher like

    def response = 'Sun RSA public key, 2048 bits modulus: 22295351891298217229975679072351263454572804823888397394956934480688545098388363434555311921650592166059251017638546278442305958792511628365321549674368487249258317999232492062784515102404906734978121435799114700302881045885988703962970888009290777606595760751230036638945779986258956916131307234869683993065702144540870733479633460269689089976061715241046980179651894991519601546098863574672792649655278518708922038045203420614818093220439077000089729610115783652292803355176127125944925842204444536282480600674854449097908926668384181326756503446116301460522215211454108585731728225508829847198093781511594519426983 public exponent: 65537'
    
    def matcher = response =~ /modulus: (.+?) public/
    
    if (matcher.find()) {
        log.info(matcher.group(1))
    }
    

参考文献:


Beanshell 等效以防万一:

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));
}