• 使用正交表设计测试用例


     如下代码,

    以第一个场景 parameter_normal为例: 

    列表的每一项,代表这个项可取的范围,例如block_tx_capacity可以是2000,也可以是10000

    max_txpool_size的取值为自定义计算,和无上限两种。

    经过正交计算,第一个场景可以使用4个场景进行覆盖。 

    1. from allpairspy import AllPairs
    2. parameters_normal = [
    3. ["block_tx_capacity=2000", "block_tx_capacity=10000"],
    4. ["max_txpool_size=自定义计算", "max_txpool_size=无上限"],
    5. ["TBFT_blocks_per_proposer=0", "TBFT_blocks_per_proposer=1"],
    6. ]
    7. parameters_batch1 = [
    8. ["block_tx_capacity=2000"],
    9. ["max_txpool_size=自定义计算", "max_txpool_size=无上限"],
    10. ["TBFT_blocks_per_proposer=0", "TBFT_blocks_per_proposer=1"],
    11. ["batch_max_size=200", "batch_max_size=500", "batch_max_size=1000", "batch_max_size=2000"],
    12. ["batch_create_timeout=50", "batch_create_timeout=200"],
    13. ]
    14. parameters_batch2 = [
    15. ["block_tx_capacity=10000"],
    16. ["max_txpool_size=自定义计算", "max_txpool_size=无上限"],
    17. ["TBFT_blocks_per_proposer=0", "TBFT_blocks_per_proposer=1"],
    18. ["batch_max_size=100", "batch_max_size=500", "batch_max_size=1000", "batch_max_size=2000"],
    19. ["batch_create_timeout=50", "batch_create_timeout=200"],
    20. ]
    21. print("normal交易池 PAIRWISE:")
    22. for i, pairs in enumerate(AllPairs(parameters_normal)):
    23. print("{:2d}: {}".format(i, pairs))
    24. print("batch交易池 区块容量2000 PAIRWISE:")
    25. for i, pairs in enumerate(AllPairs(parameters_batch1)):
    26. print("{:2d}: {}".format(i, pairs))
    27. print("batch交易池 区块容量10000 PAIRWISE:")
    28. for i, pairs in enumerate(AllPairs(parameters_batch2)):
    29. print("{:2d}: {}".format(i, pairs))
    30. print("【logdb_segment_size和maxconcurrency根据配置找到最优值后使用固定值】")

    运行结果

    1. normal交易池 PAIRWISE:
    2. 0: ['block_tx_capacity=2000', 'max_txpool_size=自定义计算', 'TBFT_blocks_per_proposer=0']
    3. 1: ['block_tx_capacity=10000', 'max_txpool_size=无上限', 'TBFT_blocks_per_proposer=0']
    4. 2: ['block_tx_capacity=10000', 'max_txpool_size=自定义计算', 'TBFT_blocks_per_proposer=1']
    5. 3: ['block_tx_capacity=2000', 'max_txpool_size=无上限', 'TBFT_blocks_per_proposer=1']
    6. batch交易池 区块容量2000 PAIRWISE:
    7. 0: ['block_tx_capacity=2000', 'max_txpool_size=自定义计算', 'TBFT_blocks_per_proposer=0', 'batch_max_size=200', 'batch_create_timeout=50']
    8. 1: ['block_tx_capacity=2000', 'max_txpool_size=无上限', 'TBFT_blocks_per_proposer=1', 'batch_max_size=500', 'batch_create_timeout=200']
    9. 2: ['block_tx_capacity=2000', 'max_txpool_size=无上限', 'TBFT_blocks_per_proposer=0', 'batch_max_size=1000', 'batch_create_timeout=200']
    10. 3: ['block_tx_capacity=2000', 'max_txpool_size=自定义计算', 'TBFT_blocks_per_proposer=1', 'batch_max_size=2000', 'batch_create_timeout=200']
    11. 4: ['block_tx_capacity=2000', 'max_txpool_size=无上限', 'TBFT_blocks_per_proposer=1', 'batch_max_size=200', 'batch_create_timeout=50']
    12. 5: ['block_tx_capacity=2000', 'max_txpool_size=自定义计算', 'TBFT_blocks_per_proposer=0', 'batch_max_size=500', 'batch_create_timeout=50']
    13. 6: ['block_tx_capacity=2000', 'max_txpool_size=自定义计算', 'TBFT_blocks_per_proposer=0', 'batch_max_size=2000', 'batch_create_timeout=50']
    14. 7: ['block_tx_capacity=2000', 'max_txpool_size=自定义计算', 'TBFT_blocks_per_proposer=1', 'batch_max_size=1000', 'batch_create_timeout=50']
    15. 8: ['block_tx_capacity=2000', 'max_txpool_size=无上限', 'TBFT_blocks_per_proposer=1', 'batch_max_size=2000', 'batch_create_timeout=50']
    16. 9: ['block_tx_capacity=2000', 'max_txpool_size=自定义计算', 'TBFT_blocks_per_proposer=1', 'batch_max_size=200', 'batch_create_timeout=200']
    17. batch交易池 区块容量10000 PAIRWISE:
    18. 0: ['block_tx_capacity=10000', 'max_txpool_size=自定义计算', 'TBFT_blocks_per_proposer=0', 'batch_max_size=100', 'batch_create_timeout=50']
    19. 1: ['block_tx_capacity=10000', 'max_txpool_size=无上限', 'TBFT_blocks_per_proposer=1', 'batch_max_size=500', 'batch_create_timeout=200']
    20. 2: ['block_tx_capacity=10000', 'max_txpool_size=无上限', 'TBFT_blocks_per_proposer=0', 'batch_max_size=1000', 'batch_create_timeout=200']
    21. 3: ['block_tx_capacity=10000', 'max_txpool_size=自定义计算', 'TBFT_blocks_per_proposer=1', 'batch_max_size=2000', 'batch_create_timeout=200']
    22. 4: ['block_tx_capacity=10000', 'max_txpool_size=无上限', 'TBFT_blocks_per_proposer=1', 'batch_max_size=100', 'batch_create_timeout=50']
    23. 5: ['block_tx_capacity=10000', 'max_txpool_size=自定义计算', 'TBFT_blocks_per_proposer=0', 'batch_max_size=500', 'batch_create_timeout=50']
    24. 6: ['block_tx_capacity=10000', 'max_txpool_size=自定义计算', 'TBFT_blocks_per_proposer=0', 'batch_max_size=2000', 'batch_create_timeout=50']
    25. 7: ['block_tx_capacity=10000', 'max_txpool_size=自定义计算', 'TBFT_blocks_per_proposer=1', 'batch_max_size=1000', 'batch_create_timeout=50']
    26. 8: ['block_tx_capacity=10000', 'max_txpool_size=无上限', 'TBFT_blocks_per_proposer=1', 'batch_max_size=2000', 'batch_create_timeout=50']
    27. 9: ['block_tx_capacity=10000', 'max_txpool_size=自定义计算', 'TBFT_blocks_per_proposer=1', 'batch_max_size=100', 'batch_create_timeout=200']
    28. 【logdb_segment_size和maxconcurrency根据配置找到最优值后使用固定值

  • 相关阅读:
    MySQL - 触发器
    [spring]spring的使用笔记大全
    2.12 IC类元器件的封装应该怎么创建?
    研发效能最佳实践:持续集成应用实践丨IDCF
    巴黎时装周儿童单元深圳站完美落幕
    H5互动游戏推荐,适合和产品结合的小游戏
    力扣(LeetCode)775. 全局倒置与局部倒置(C++)
    【SpringMVC笔记14】SpringMVC集成Jackson和FastJson两种方式处理json数据
    QFusion数据库管理平台数据库集群创建及管理
    使用cephadm部署单节点ceph集群,后期可扩容(基于官方文档,靠谱,读起来舒服)
  • 原文地址:https://blog.csdn.net/fvafuc/article/details/133991024