以太坊兼容链性能测试3—开展测试

分享一下我是如何对以太坊兼容链进行性能测试的 这是第三步:运行jmeter开展测试

项目简介

项目地址:https://github.com/sunchengzhu/eth-jmeter

相关文章:以太坊兼容链性能测试1—准备工作以太坊兼容链性能测试2—性能数据统计

功能

  1. 使用jmeter开展rpc接口的压测,包含eth_getBalanceeth_getBlockByNumbereth_calleth_sendRawTransaction,其他接口有需要可以根据现有的代码改造。
  2. 根据助记词生成指定数量的账户循环发送交易和查询余额,用jmeter的Concurrency Thread Group插件控制测试时间和线程数。

设计

通过两个workflow开展压测,query.yml是非交易接口eth_getBalanceeth_getBlockByNumbereth_call的压测,而tx.yml则是原生转账和调用uniswap swapExactTokensForETH的交易接口eth_sendRawTransaction两个场景的压测。tx.yml会多一步触发eth_performace的ethStats.yml,统计交易性能数据。

查询

query.yml的接口是实时返回的,可以直接在客户端这边统计性能数据,我设置了5s秒打印一次summary,summary数据格式如下:

[INFO] summary +   4099 in 00:00:06 =  683.9/s Avg:   176 Min:   160 Max:   498 Err:     0 (0.00%) Active: 120 Started: 120 Finished: 0 

query.yml如果有error能直接在控制台打印出来,并体现在summary的Err数中:

<img src="https://typora-1304641378.cos.ap-shanghai.myqcloud.com/images/image-20230816215300025.png" alt="image-20230816215300025" style="zoom:80%;" />

交易

交易从同一助记词生成的一批账户发起(账户充值见前面的文章),账户数量通过下方的size配置,从第一个账户到最后一个账户按序签名并发送交易,在jmeter设置的执行时间内不断循环这个过程。

<img src="https://typora-1304641378.cos.ap-shanghai.myqcloud.com/images/image-20231107172145909.png" alt="image-20231107172145909" style="zoom:80%;" />

助记词的具体值mnemonicValue在Run workflow时由用户自己传入,以保护其不被泄漏。gasPriceValue等则配置在tx.yml中,不同环境设置其相应的值

image-20231107173931633

使用tx.yml

  1. fork到自己的仓库(需要fork项目到自己的仓库以使用Actions)

  2. 设置GitHub个人访问令牌,跟性能数据统计中的步骤一样,这里不再赘述。

  3. tx.yml新增fantom_testnet环境使用准备工作中得到的数据,这边已经配置完了

  4. 选择fantom_testnet环境,输入助记词strike gather blush lens excite ridge flock random empty remember text universe(这个助记词的账户有钱)和你自己的Gist ID触发workflow

  5. 可以在eth-performance的ethStats中看到交易性能数据

  6. 以上用了默认的jmeter线程配置,可以再建一个test分支,通过mvn jmeter:gui加载并修改jmx文件不断调整线程数,达到链的性能瓶颈。

    <img src="https://typora-1304641378.cos.ap-shanghai.myqcloud.com/images/image-20230816221940890.png" alt="image-20230816221940890" style="zoom:80%;" />

使用query.yml

  1. tx.yml新增fantom_testnet环境使用准备工作中得到的数据,这边已经配置完了
  2. 选择fantom_testnet环境,只有getBalance.jmx需要用到助记词,别的不需要直接点Run workflow就行。
点赞 1
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
小竹爱学习
小竹爱学习
江湖只有他的大名,没有他的介绍。