jmeter测试完善

This commit is contained in:
waner 2025-06-09 10:51:51 +08:00
parent 9fbcd1baad
commit b4d3c1d193
3 changed files with 106 additions and 13 deletions

View File

@ -246,7 +246,6 @@ public class Test4Jemter extends AbstractJavaSamplerClient {
public void testAhnx() { public void testAhnx() {
orgData = new byte[1024];
//裸签 //裸签
byte[] nakedSign = api.get().SYD_NakedSign(orgData,SM2dn); byte[] nakedSign = api.get().SYD_NakedSign(orgData,SM2dn);

View File

@ -4178,10 +4178,12 @@ public class SydApi4j implements SydApi {
bb.put((byte) 0x31); bb.put((byte) 0x31);
} }
synchronized (this) { // synchronized (this) {
// 响应解析 // // 响应解析
bb = syncRead(syncSend(bb)); // bb = syncRead(syncSend(bb));
} // }
bb = sendAndGetResponse(bb);
byte[] success = new byte[2]; byte[] success = new byte[2];
Arrays.fill(success, (byte) 0); Arrays.fill(success, (byte) 0);

View File

@ -4,6 +4,7 @@ import cn.hutool.core.date.StopWatch;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.sunyard.SydApiException; import com.sunyard.SydApiException;
import com.sunyard.proto.Util; import com.sunyard.proto.Util;
import com.sunyard.util.CertUtil;
import com.sunyard.util.IpLockUtils; import com.sunyard.util.IpLockUtils;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
@ -27,7 +28,7 @@ public class Test4NongxinCW {
@Before @Before
public void before() { public void before() {
//主备调用接口 //主备调用接口
SydApi4j.SYD_Set_Parameter_HA("172.1.41.96", "172.1.41.139", 8889, 1000); SydApi4j.SYD_Set_Parameter_HA("172.1.41.139", "172.1.41.96", 8889, 1000);
api = (SydApi4j) new SydApi4j(); api = (SydApi4j) new SydApi4j();
// api.startHeartbeat(); // api.startHeartbeat();
@ -54,8 +55,10 @@ public class Test4NongxinCW {
public void testHA() { public void testHA() {
for (int i = 0; i < 100000; i++) { for (int i = 0; i < 100000; i++) {
byte[] nakedSign = api.SYD_NakedSign(orgData,SM2dn); // byte[] nakedSign = api.SYD_NakedSign(orgData,SM2dn);
// System.out.println("SM2签名"+ Util.bytes2HexString(nakedSign)); // System.out.println("SM2签名"+ Util.bytes2HexString(nakedSign));
byte[] nakedSign1 = api.SYD_NakedSignAll(4,orgData, SM2dn);
System.out.println("SM2大数据裸签"+ Util.bytes2HexString(nakedSign1));
} }
} }
@ -71,7 +74,7 @@ public class Test4NongxinCW {
// 模拟主节点故障 // 模拟主节点故障
CountDownLatch startLatch = new CountDownLatch(1); CountDownLatch startLatch = new CountDownLatch(1);
for (int i = 0; i < 20; i++) { for (int i = 0; i < 200; i++) {
futures.add(executor.submit(() -> { futures.add(executor.submit(() -> {
try { try {
startLatch.await(); // 等待统一开始 startLatch.await(); // 等待统一开始
@ -81,8 +84,9 @@ public class Test4NongxinCW {
SydApi4j api2 = new SydApi4j(); SydApi4j api2 = new SydApi4j();
for (int j = 0; j < 10000; j++) { for (int j = 0; j < 1000; j++) {
byte[] nakedSign = api2.SYD_NakedSign(orgData,SM2dn); byte[] nakedSign = api2.SYD_NakedSign(orgData,SM2dn);
System.out.println("SM2签名"+ Util.bytes2HexString(nakedSign));
} }
})); }));
} }
@ -108,7 +112,8 @@ public class Test4NongxinCW {
// orgData = Hex.decode("80a370b809e8a46ba51211a35d6f0180fea32b4acc97916bc9c517ea6651134c"); // orgData = Hex.decode("80a370b809e8a46ba51211a35d6f0180fea32b4acc97916bc9c517ea6651134c");
// byte[] nakedSign1 = api.SYD_NakedSign(SM2dn, (byte[])null, orgData); // byte[] nakedSign1 = api.SYD_NakedSign(SM2dn, (byte[])null, orgData);
// System.out.println("SM2签名"+ Util.bytes2HexString(nakedSign1)); // System.out.println("SM2签名"+ Util.bytes2HexString(nakedSign1));
orgData = new byte[4096]; orgData = new byte[1024];
//裸签 //裸签
byte[] nakedSign = api.SYD_NakedSign(orgData,SM2dn); byte[] nakedSign = api.SYD_NakedSign(orgData,SM2dn);
System.out.println("SM2签名"+ Util.bytes2HexString(nakedSign)); System.out.println("SM2签名"+ Util.bytes2HexString(nakedSign));
@ -347,9 +352,25 @@ public class Test4NongxinCW {
@Test @Test
public void delCert() { public void delCert() {
String SM2dn1 = "C=CN,ST=北京,L=北京,O=信雅达,OU=测试部门1,CN=172.1.41.139"; // String SM2dn1 = "C=CN,ST=北京,L=北京,O=信雅达,OU=测试部门1,CN=172.1.41.139";
boolean del = api.deleteCert(SM2dn1); // boolean del = api.deleteCert(SM2dn1);
System.out.println("删除:"+ del); // System.out.println("删除:"+ del);
SydApi4j api = (SydApi4j) new SydApi4j();
String sign = "MIID6wYKKoEcz1UGAQQCAqCCA9swggPXAgEBMQ4wDAYIKoEcz1UBgxEFADAMBgoqgRzPVQYBBAIBoIIC2zCCAtcwggJ7oAMCAQICBSBpB5UzMAwGCCqBHM9VAYN1BQAwXTELMAkGA1UEBhMCQ04xMDAuBgNVBAoMJ0NoaW5hIEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEcMBoGA1UEAwwTQ0ZDQSBURVNUIFNNMiBPQ0ExMTAeFw0yNTAzMTcwODQwNTNaFw0yNzEyMTIwODQwNTNaMIGMMQswCQYDVQQGEwJjbjEfMB0GA1UECgwWQ0ZDQSBDUyBURVNUIFNNMiBPQ0ExMTEOMAwGA1UECwwFQ05BUFMxGTAXBgNVBAsMEE9yZ2FuaXphdGlvbmFsLTExMTAvBgNVBAMMKDA1MUA3OTA3NTgxMDAwMDcwQEM5MDc1ODEwMDAwNzBAMDAwMDAwMDEwWTATBgcqhkjOPQIBBggqgRzPVQGCLQNCAAR4vx8WcwLXu0gUn+ijMeL7Z8lbN+gRoQa4ZvIQ8fXo9Z/LIJWY92FFz7R2l/YZG/gd/olzZvTAmUehpVkksD54o4H1MIHyMB8GA1UdIwQYMBaAFL6mfk09fI+gVebBLwkuLCBDs0J/MEgGA1UdIARBMD8wPQYIYIEchu8qAQIwMTAvBggrBgEFBQcCARYjaHR0cDovL3d3dy5jZmNhLmNvbS5jbi91cy91cy0xNS5odG0wOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovLzIxMC43NC40Mi4zL09DQTExL1NNMi9jcmwyOTMyOS5jcmwwCwYDVR0PBAQDAgPoMB0GA1UdDgQWBBRYhSR9g0x5JcfgN26TZ7hH6DimDDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwDAYIKoEcz1UBg3UFAANIADBFAiEA/ieBxlXaFMFylrmji2p/hqa3bsOu6y94x+a6gSoCxKMCIBwKAC/7+hFHb7Y8woimj1o12A2ROGtnxuz4F4Szu1PLMYHUMIHRAgEBMGYwXTELMAkGA1UEBhMCQ04xMDAuBgNVBAoMJ0NoaW5hIEZpbmFuY2lhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEcMBoGA1UEAwwTQ0ZDQSBURVNUIFNNMiBPQ0ExMQIFIGkHlTMwDAYIKoEcz1UBgxEFADANBgkqgRzPVQGCLQEFAARHMEUCIHpjkQo8s0JLhxccdx2LLutiJ331n91IHp392fPP7olFAiEA1SpAv3LW/0awyxmNSdbrF7/29Aw2096Sp92AxmkWPa8=";
String cert = api.getCertBySign(sign);
System.out.println(cert);
X509Certificate certificate = null;
String dn = "";
String serialNumber = "";
try {
certificate = CertUtil.convertToX509Cert(cert);
dn = certificate.getSubjectDN().toString();
serialNumber = certificate.getSerialNumber().toString();
} catch (Exception e) {
// log.warn("导入证书格式错误!");
}
System.out.println("DN:" + dn);
System.out.println("SN:" + serialNumber);
} }
@Test @Test
@ -374,6 +395,77 @@ public class Test4NongxinCW {
System.out.println(s); System.out.println(s);
} }
@Test
public void testAll() {
//国密证书
String cert = "-----BEGIN CERTIFICATE-----\n" +
"MIICMDCCAdagAwIBAgIJAOWoGwJCnjlLMAoGCCqBHM9VAYN1MGcxCzAJBgNVBAYT\n" +
"AkNOMRAwDgYDVQQIDAdCZWlqaW5nMRAwDgYDVQQHDAdIYWlEaWFuMRMwEQYDVQQK\n" +
"DApHTUNlcnQub3JnMR8wHQYDVQQDDBZHTUNlcnQgR00gUm9vdCBDQSAtIDAxMB4X\n" +
"DTI1MDUxMzAyMzUxM1oXDTI2MDUxMzAyMzUxM1owRTELMAkGA1UEBgwCQ04xCzAJ\n" +
"BgNVBAgMAnp6MQswCQYDVQQHDAJ6ejEMMAoGA1UECgwDenp6MQ4wDAYDVQQDDAV6\n" +
"enp6ejBZMBMGByqGSM49AgEGCCqBHM9VAYItA0IABK5fyRSACWPIBBr/3U+qvjvp\n" +
"niropv2PrA3ZLU1bG8vQpwAEMA0kwyqGgXURBPbvWdAhN7s9wfvHbJyMd9CMZGqj\n" +
"gYwwgYkwDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCB4AwLAYJYIZIAYb4QgENBB8W\n" +
"HUdNQ2VydC5vcmcgU2lnbmVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBSQB7UUqEuG\n" +
"kl4mrx3MAhKTptfbYjAfBgNVHSMEGDAWgBR/Wl47AIRZKg+YvqEObzmVQxBNBzAK\n" +
"BggqgRzPVQGDdQNIADBFAiEA4kgTdn/iA/XYfjTEeOcELwBXd0tTFghkpfP8DhBF\n" +
"KFQCIAXZTL6VPtW67tM/DF4ZgFt5S/YIiFombKa2bWOfL81u\n" +
"-----END CERTIFICATE-----";
List<String> masterNodes = new ArrayList<>();
masterNodes.add("172.1.1.1:8889");
int timeout = 100;
Map<String, String> map = new HashMap<>();
map.put("snmp.target.ip", "172.1.1.191");
map.put("snmp.target.port", "162");
map.put("enterprise.oid", "1.3.6.1.4.1.9999");
map.put("snmp.community", "public");
map.put("snmp.version", "1");
String snmpConfig = new Gson().toJson(map);
//导入证书并获取DN
SydApi4j sydApi4j = new SydApi4j();
String SM2dn = sydApi4j.importCertToServers(masterNodes, timeout, cert, "12345678", snmpConfig);
System.out.println("------------------------------------------------------------------------------------");
System.out.println("导入证书主题为:"+ SM2dn);
//主备模式设置
SydApi4j.SYD_Set_Parameter_HA("172.1.41.96", "172.1.1.2", 8889, 1000);
SydApi4j api = (SydApi4j) new SydApi4j();
//签名原始数据
byte[] orgData = new byte[1024];
//p1裸签名国密证书
byte[] nakedSign = api.SYD_NakedSign(orgData, SM2dn);
System.out.println("------------------------------------------------------------------------------------");
System.out.println("p1签名"+ Util.bytes2HexString(nakedSign));
//p1裸签验签国密证书
boolean ver = api.SYD_NakedVerify(orgData, nakedSign, SM2dn);
System.out.println("------------------------------------------------------------------------------------");
System.out.println("p1验签"+ ver);
//p7 detach签名(带公钥证书
String detachedSign = api.detachedSign(orgData, SM2dn);
System.out.println("------------------------------------------------------------------------------------");
System.out.println("p7 detach签名"+ detachedSign);
//p7 detach验签(带公钥证书
boolean ver1 = api.detachedVerify(orgData, detachedSign);
System.out.println("------------------------------------------------------------------------------------");
System.out.println("p7 detach验签"+ ver1);
//从p7签名数据中获取证书签名数据为base64编码格式
String cert1 = api.getCertBySign(detachedSign);
System.out.println("------------------------------------------------------------------------------------");
System.out.println("根据p7签名值获取的证书为" + cert1);
//根据证书DN从加密码机删除证书
// boolean delFlag = api.deleteCert(SM2dn);
// System.out.println("------------------------------------------------------------------------------------");
// System.out.println("删除证书成功:"+ delFlag);
}