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


     如下代码,

    以第一个场景 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根据配置找到最优值后使用固定值

  • 相关阅读:
    含文档+PPT+源码等]精品基于SSM的公交线路查询系统[包运行成功]Java毕业设计SSM项目源码论文
    Django系列5-请求和响应
    C++入门学习2-指针与整型数组(Clion)
    uniapp接入萤石微信小程序插件
    阿里云宣布核心产品全面 Serverless 化
    java面试题
    17. Letter Combinations of a Phone Number
    Streamline PDF Signing with Signature
    Go学习笔记 -- 控制协程执行顺序
    性能测试和自动化测试有什么区别?
  • 原文地址:https://blog.csdn.net/fvafuc/article/details/133991024