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 var.putobject 变量在其他 jdbc 请求中使用,但被忽略