diff --git a/README.md b/README.md
index 203bdce..3a42fa6 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,24 @@
# sydapi4j
加密机 java 接口,基于 jna。
+
+
+
+## 启动 Slave
+在作为负载机的 Slave 机器上进行配置,主要有两种方式:
+
+方法一:配置 jmeter.properties 文件
+编辑 $JMETER_HOME/bin/jmeter.properties 文件,确认或取消注释以下配置:
+```
+server.rmi.ssl.disable=true # 禁用SSL,简化内网配置
+server.rmi.localport=1099 # 固定RMI端口,方便防火墙放行
+java.rmi.server.hostname=Slave_IP # 绑定本机网卡IP,避免多网卡问题
+```
+
+配置完成后,在 Slave 的 bin 目录下启动服务:
+
+Windows: 双击 jmeter-server.bat
+Linux/Mac: 运行 ./jmeter-server
+
+
+
diff --git a/jmeter/boc 测试.jmx b/jmeter/boc 测试.jmx
new file mode 100644
index 0000000..9235b7f
--- /dev/null
+++ b/jmeter/boc 测试.jmx
@@ -0,0 +1,16 @@
+
+
+
+
+
+ false
+ true
+ false
+
+
+
+ D:\sunyard\sydapi-boc\Shujujiaohuan\pack\jar\dependences\bcpkix-jdk15on-1.65.jar,D:\sunyard\sydapi-boc\Shujujiaohuan\pack\jar\dependences\bcprov-jdk15on-1.65.jar,D:\sunyard\sydapi-boc\Shujujiaohuan\pack\jar\dependences\groovy-all-2.4.15.jar,D:\sunyard\sydapi-boc\Shujujiaohuan\pack\jar\dependences\hutool-core-5.8.4.M1.jar,D:\sunyard\sydapi-boc\Shujujiaohuan\pack\jar\dependences\proto-1.0.20220921.jar,D:\sunyard\sydapi-boc\Shujujiaohuan\pack\jar\dependences\sydapi4j-1.13.20221010.jar,D:\sunyard\sydapi-boc\Shujujiaohuan\pack\jar\cfitsignapi-1.0.jar
+
+
+
+
diff --git a/jmeter/招行测试计划.jmx b/jmeter/招行测试计划.jmx
new file mode 100644
index 0000000..0a261aa
--- /dev/null
+++ b/jmeter/招行测试计划.jmx
@@ -0,0 +1,749 @@
+
+
+
+
+
+ false
+ true
+ true
+
+
+
+
+
+
+ continue
+
+ false
+ 1000
+
+ 1
+ 1
+ false
+
+
+ true
+
+
+
+
+
+
+ function
+ sleep
+ =
+
+
+ sleep
+ 100
+ =
+
+
+ plainDataLen
+ 1024
+ =
+
+
+ publicKey4Ende
+
+ =
+
+
+ privateKey4Ende
+
+ =
+
+
+ ip
+ 192.168.100.145
+ =
+
+
+ ip2
+ 172.1.41.96
+ =
+
+
+ port
+ 8889
+ =
+
+
+ timeout
+ 3000
+ =
+
+
+
+ cmbpoc.JmeterTest
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+ 1000
+ false
+
+
+
+
+ false
+ false
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+ 500
+ false
+
+
+
+
+ false
+ false
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+ continue
+
+ false
+ 10000
+
+ 1
+ 1
+ false
+
+
+ true
+
+
+
+
+
+
+ function
+ sleep
+ =
+
+
+ sleep
+ 1
+ =
+
+
+ plainDataLen
+ 1024
+ =
+
+
+ publicKey4Ende
+
+ =
+
+
+ privateKey4Ende
+
+ =
+
+
+ ip
+ 192.168.100.145
+ =
+
+
+ ip2
+ 172.1.41.96
+ =
+
+
+ port
+ 8889
+ =
+
+
+ timeout
+ 3000
+ =
+
+
+
+ cmbpoc.JmeterTest
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+ 1000
+ false
+
+
+
+
+ false
+ false
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+ 500
+ false
+
+
+
+
+ false
+ false
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+ continue
+
+ false
+ 10
+
+ 1
+ 1
+ false
+
+
+ true
+
+
+
+
+
+
+ function
+ SYD_SM2_Encrypt
+ =
+
+
+ sleep
+ 1
+ =
+
+
+ plainDataLen
+ 2048
+ =
+
+
+ publicKey4Ende
+ 03420004AF3D4E55D26564C6C937E6EA9232691C01AC5E7916AD2136F788CE7C1E4D0AE8C4754DEC2F7F6A78962D51A171A6F5B4F11823390AEC8B5B0246CD2CCF8052B7
+ =
+
+
+ privateKey4Ende
+ 00010000963F7C3A98B7810F52D2861A060E18A9D4D59796CF33967DD61EEDA091E1AD9B0000000000000000000000000000000000000000000000000000000000000000
+ =
+
+
+ ip
+ 192.168.100.145
+ =
+
+
+ ip2
+ 172.1.41.96
+ =
+
+
+ port
+ 8889
+ =
+
+
+ timeout
+ 3000
+ =
+
+
+
+ cmbpoc.JmeterTest
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+ 500
+ false
+
+
+
+
+ false
+ false
+
+
+
+ false
+
+ saveConfig
+
+
+ true
+ true
+ true
+
+ true
+ true
+ true
+ true
+ false
+ true
+ true
+ false
+ false
+ false
+ true
+ false
+ false
+ false
+ true
+ 0
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+ 1000
+ false
+
+
+
+
+ false
+ false
+
+
+
+
+
+
diff --git a/src/test/java/cmbpoc/FunctionTest.java b/src/test/java/cmbpoc/FunctionTest.java
index aa40682..e9e85a4 100644
--- a/src/test/java/cmbpoc/FunctionTest.java
+++ b/src/test/java/cmbpoc/FunctionTest.java
@@ -120,7 +120,7 @@ public class FunctionTest {
@Test
public void SYD_SM2_Encrypt_2M(){
byte[] enData = this.api.SYD_SM2Encrypt(publicKey4Ende, orgData2M);
- System.out.println("密文=" + Util.bytes2HexString(enData));
+ System.out.println("密文长度=" + enData.length);
byte[] deData = this.api.SYD_SM2Decrypt(privateKey4Ende, enData);
Assert.assertArrayEquals(orgData2M, deData);
}
@@ -130,8 +130,8 @@ public class FunctionTest {
public void SYD_SM2_Encrypt_10M(){
byte[] enData = this.api.SYD_SM2Encrypt(publicKey4Ende, orgData10M);
System.out.println("密文=" + Util.bytes2HexString(enData));
-// byte[] deData = this.api.SYD_SM2Decrypt(privateKey4Ende, enData);
-// Assert.assertArrayEquals(orgData10M, deData);
+ byte[] deData = this.api.SYD_SM2Decrypt(privateKey4Ende, enData);
+ Assert.assertArrayEquals(orgData10M, deData);
}
}
diff --git a/src/test/java/cmbpoc/JmeterTest.java b/src/test/java/cmbpoc/JmeterTest.java
index 2309c00..f610bd0 100644
--- a/src/test/java/cmbpoc/JmeterTest.java
+++ b/src/test/java/cmbpoc/JmeterTest.java
@@ -100,7 +100,7 @@ public class JmeterTest extends AbstractJavaSamplerClient {
try {
switch (function) {
case "SYD_SM2_Encrypt":
- this.api.get().SYD_SM2Encrypt(privateKey4Ende, this.plainData);
+ this.api.get().SYD_SM2Encrypt(publicKey4Ende, this.plainData);
break;
case "SYD_SM2_Decrypt":
this.api.get().SYD_SM2Decrypt(privateKey4Ende, this.encryptedData);
diff --git a/src/test/java/cmbpoc/JmeterTestTest.java b/src/test/java/cmbpoc/JmeterTestTest.java
new file mode 100644
index 0000000..de11b89
--- /dev/null
+++ b/src/test/java/cmbpoc/JmeterTestTest.java
@@ -0,0 +1,51 @@
+package cmbpoc;
+
+import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
+
+
+import org.apache.jmeter.config.Arguments;
+import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
+import org.apache.jmeter.samplers.SampleResult;
+
+public class JmeterTestTest {
+
+ public static void main(String[] args) {
+ // 1. 创建 JMeter 参数集,并填入您提供的所有参数
+ Arguments jmeterArgs = new Arguments();
+ jmeterArgs.addArgument("function", "SYD_SM2_Encrypt");
+ jmeterArgs.addArgument("sleep", "1");
+ jmeterArgs.addArgument("plainDataLen", "2048");
+ jmeterArgs.addArgument("publicKey4Ende", "03420004AF3D4E55D26564C6C937E6EA9232691C01AC5E7916AD2136F788CE7C1E4D0AE8C4754DEC2F7F6A78962D51A171A6F5B4F11823390AEC8B5B0246CD2CCF8052B7");
+ jmeterArgs.addArgument("privateKey4Ende", "00010000963F7C3A98B7810F52D2861A060E18A9D4D59796CF33967DD61EEDA091E1AD9B0000000000000000000000000000000000000000000000000000000000000000");
+ jmeterArgs.addArgument("ip", "192.168.100.145");
+ jmeterArgs.addArgument("ip2", "172.1.41.96");
+ jmeterArgs.addArgument("port", "8889");
+ jmeterArgs.addArgument("timeout", "3000");
+
+ // 2. 基于参数集创建 JMeter 上下文对象
+ JavaSamplerContext context = new JavaSamplerContext(jmeterArgs);
+
+ // 3. 创建您的测试类实例
+ JmeterTest jmeterTest = new JmeterTest();
+
+ try {
+ // 4. 模拟 JMeter 执行周期:setup -> run -> teardown
+ jmeterTest.setupTest(context);
+
+ SampleResult result = jmeterTest.runTest(context);
+ if (result != null) {
+ System.out.println("SampleResult 状态: " + result.getResponseCode());
+ System.out.println("响应数据: " + result.getResponseDataAsString());
+ System.out.println("是否成功: " + result.isSuccessful());
+ } else {
+ System.out.println("runTest 返回 null,请检查实现逻辑");
+ }
+
+ jmeterTest.teardownTest(context);
+
+ } catch (Exception e) {
+ System.err.println("执行测试时发生异常:");
+ e.printStackTrace();
+ }
+ }
+}
\ No newline at end of file