jmeter 测试可用

This commit is contained in:
cheney
2026-06-08 18:08:10 +08:00
parent b82002801d
commit 664bd110c6
5 changed files with 928 additions and 23 deletions
+22 -1
View File
@@ -1,6 +1,7 @@
package cmbpoc;
import com.sunyard.SydApi;
import com.sunyard.proto.Util;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
@@ -16,8 +17,11 @@ public class JmeterTest extends AbstractJavaSamplerClient {
private byte[] publicKey;
private byte[] plainData;
private byte[] encryptedData;
private String sign;
private int sleep = 1;
private byte[] privateKey4Sign;
private byte[] publicKey4Sign;
private byte[] privateKey4Ende;
private byte[] publicKey4Ende;
@@ -36,6 +40,8 @@ public class JmeterTest extends AbstractJavaSamplerClient {
params.addArgument("plainDataLen", "1024");
params.addArgument("publicKey4Ende", "", "加密用的公钥");
params.addArgument("privateKey4Ende", "", "解密用的公钥");
params.addArgument("publicKey4Sign", "", "验签用的公钥");
params.addArgument("privateKey4Sign", "", "签名用的公钥");
params.addArgument("ip", "192.168.100.145");
params.addArgument("ip2", "172.1.41.96");
params.addArgument("port", "8889");
@@ -45,6 +51,16 @@ public class JmeterTest extends AbstractJavaSamplerClient {
@Override
public void setupTest(JavaSamplerContext context) {
// 签名密钥对
String publicKey4Sign = context.getParameter("publicKey4Sign");
if ( null != publicKey4Sign && !publicKey4Sign.isEmpty()) {
this.publicKey4Sign = Util.hexString2Bytes(publicKey4Sign);
}
String privateKey4Sign = context.getParameter("privateKey4Sign");
if ( null != privateKey4Sign && !privateKey4Sign.isEmpty()) {
this.privateKey4Sign = Util.hexString2Bytes(privateKey4Sign);
}
// 加密密钥对
String publicKey4Ende = context.getParameter("publicKey4Ende");
if ( null != publicKey4Ende && !publicKey4Ende.isEmpty()) {
@@ -82,7 +98,8 @@ public class JmeterTest extends AbstractJavaSamplerClient {
case "SYD_SM2_Decrypt":
this.encryptedData = this.api.get().SYD_SM2Encrypt(this.publicKey4Ende, this.plainData);
break;
case "SYD_SM2_Sign":
case "SYD_SM2_Verify":
this.sign = this.api.get().SYD_SM2_Sign_HA(SydApi.DATA_HASH, this.privateKey4Sign, this.publicKey4Sign, this.plainData);
break;
default:
break;
@@ -106,6 +123,10 @@ public class JmeterTest extends AbstractJavaSamplerClient {
this.api.get().SYD_SM2Decrypt(privateKey4Ende, this.encryptedData);
break;
case "SYD_SM2_Sign":
this.api.get().SYD_SM2_Sign_HA(SydApi.DATA_HASH, privateKey4Sign, publicKey4Sign, this.plainData);
break;
case "SYD_SM2_Verify":
this.api.get().SYD_SM2_Verify_HA(SydApi.DATA_HASH, publicKey4Sign, this.plainData, this.sign);
break;
case "sleep":
Thread.sleep( this.sleep );