本例只是示范怎么去用官方提供的测试代码去进行测试,测试的数据和参数仅提供参考
第一步:验证java版本,Java SDK Demo中的测试程序能够在部署有JDK 1.8 ~ JDK 14的环境中运行。
第二步:编译源码
# 下载源码
git clone https://github.com/FISCO-BCOS/java-sdk-demo
cd java-sdk-demo
# 切换到2.0版本
git checkout main-2.0
# 编译源码
./gradlew build
第三步:将节点证书,端口配置拷贝至java SDK Demo中的dist中
cd dist
cp -r ~/fisco/nodes/127.0.0.1/sdk/* conf
如果修改了Channel端口,则要去config.toml中*[network.peers]*进行修改
cp conf/config-example.toml conf/config.toml
第四步:执行压力测试程序
cd dist
Count:压测的交易总量,即要发送的交易请求数量。
Tps:每秒钟期望发送的交易数。
串行转账合约压测
java -cp ‘conf/:lib/:apps/’ org.fisco.bcos.sdk.demo.perf.PerformanceOk 5500 500 1
Count:5500
Tps:500
60%的交易在1-2s内完成,并且cpu达到满载,接近性能瓶颈
基于Solidity并行合约parallelok添加账户
java -cp ‘conf/:lib/:apps/’ org.fisco.bcos.sdk.demo.perf.ParallelOkPerf parallelok 1 add 10000 1000 accounts.txt
基于Solidity合约添加账户
Count:10000
Tps:1000
80%数据在1-2s之内完成,cpu也达到满载,接近性能瓶颈
基于Precompiled并行合约precompiled添加账户
java -cp ‘conf/:lib/:apps/’ org.fisco.bcos.sdk.demo.perf.ParallelOkPerf precompiled 1 add 10000 1000 precompiled_accounts.txt
Count:10000
Tps:1000
Cpu满载,接近新能瓶颈
# 基于Solidity并行合约parallelok发起转账交易压测
java -cp ‘conf/:lib/:apps/’ org.fisco.bcos.sdk.demo.perf.ParallelOkPerf parallelok 1 transfer 10000 1000 accounts.txt
用户数量为10000
Count:1000
Tps:1000
Cpu满载,接近新能瓶颈
# 基于Precompiled并行合约Precompiled发起转账压测
java -cp ‘conf/:lib/:apps/’ org.fisco.bcos.sdk.demo.perf.ParallelOkPerf precompiled 1 transfer 10000 1000 precompiled_accounts.txt
用户数量为10000
Count:10000
Tps:1500
Cpu满载,接近新能瓶颈
CURD
新增
java -cp ‘conf/:lib/:apps/’ org.fisco.bcos.sdk.demo.perf.PerformanceTable insert 10000 500 1
Count:10000
Tps:500
Cpu满载,接近新能瓶颈
修改
Count:10000
Tps:500
java -cp ‘conf/:lib/:apps/’ org.fisco.bcos.sdk.demo.perf.PerformanceTable update 10000 500 1
删除
java -cp ‘conf/:lib/:apps/’ org.fisco.bcos.sdk.demo.perf.PerformanceTable remove 10000 500 1
Count:10000
Tps:500
查询
java -cp ‘conf/:lib/:apps/’ org.fisco.bcos.sdk.demo.perf.PerformanceTable query 30 6 1
Count:30
Tps:6
在执行压力测试的时候,执行下面这部分码出现了问题
java -cp “apps/:lib/:conf/” org.fisco.bcos.sdk.demo.codegen.DemoSolcToJava com.exall
Exception in thread “main” java.lang.NullPointerException
at org.fisco.bcos.sdk.demo.codegen.DemoSolcToJava.compileSolToJava(DemoSolcToJava.java:85)
at org.fisco.bcos.sdk.demo.codegen.DemoSolcToJava.main(DemoSolcToJava.java:61)
.NullPointerException
at org.fisco.bcos.sdk.demo.codegen.DemoSolcToJava.compileSolToJava(DemoSolcToJava.java:85)
at org.fisco.bcos.sdk.demo.codegen.DemoSolcToJava.main(DemoSolcToJava.java:61)
然后仔细阅读这个指令的含义,发现是遍历整个文件夹找到带.sol后缀的文件转换为可执行的java文件,由于当前目录下没有.sol后缀的文件,所有会报错,没有需要转换的就不用理这条命令了