JSR223 Sampler没有回应

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSR223 Sampler没有回应相关的知识,希望对你有一定的参考价值。

我在JSR223 Sampler中有这样的代码,它也会被传递。但是无法将任何输出视为响应。不知道我错过了什么。

import android.util.Base64;
import java.security.spec.X509EncodedKeySpec;
import java.security.Key;
import java.security.KeyFactory;
import java.security.PublicKey;
import javax.crypto.Cipher;

String Original_String= ctx.getPreviousResult().getResponseDataAsString();
String Trim1=Original_String.substring(0, Original_String.lastIndexOf(","));
String Trim2=Trim1.replaceFirst("-----BEGIN PUBLIC KEY-----", "");
String Trim3=Trim2.replaceFirst("-----END PUBLIC KEY-----", "");
String[] parts = Trim3.split(":");
String myString = parts[1].substring(1, parts[1].length()-1);
String final_string=myString.replaceAll("\\n", "");
log.info(final_string);
String input="4000221111111111";

try{
        byte[] byteKey = Base64.decode(final_string.getBytes(), Base64.DEFAULT);
        X509EncodedKeySpec X509publicKey = new X509EncodedKeySpec(byteKey);
        KeyFactory kf = KeyFactory.getInstance("RSA");
        Key k=kf.generatePublic(X509publicKey);
        //return (PublicKey) k;
        def cipher = Cipher.getInstance("RSA/NONE/OAEPPadding","BC");
        cipher.init(Cipher.ENCRYPT_MODE, k);
        byte[] encryptedBytes = cipher.doFinal(input.getBytes());
      log.info( Base64.encodeToString(encryptedBytes, Base64.NO_WRAP));
}
    catch(Exception e){
        e.printStackTrace();
    }

请问有人帮我解决这个问题吗?

答案

如果您希望JSR223 Sampler有响应数据,则需要采用以下方法之一:

return Base64.encodeToString(encryptedBytes, Base64.NO_WRAP)

甚至更好:

SampleResult.setResponseData(Base64.encodeToString(encryptedBytes, Base64.NO_WRAP), 'UTF-8')

有关所有可用功能,请参阅SampleResult类JavaDoc,这样您就可以完全控制响应代码,标题,正文,消息等。

您可能还对Apache Groovy - Why and How You Should Use It文章感兴趣,该文章包含有关JMeter测试中的Groovy脚本的全面信息。

以上是关于JSR223 Sampler没有回应的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Jmeter 中导入 Web3?

jmeter 执行python脚本的方法 。(还没试)

jmeter var.putobject 变量在其他 jdbc 请求中使用,但被忽略

Jmeter(二十)Beanshell or JSR223

jemeter 之后置处理器 JSR223 PostProcessor

JSR223 和Beashell 使用方法