Caliper 负载(Workload)详细解析
负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。
一、负载模块基本结构
一个典型的负载模块(如 workload.js)包含以下基本结构:
'use strict';
// 初始化函数(可选)
module.exports.init = async function(contract, context, args) {
// 测试前的初始化工作
// 例如: 部署合约、初始化数据等
};
// 运行函数(必须)
module.exports.run = async function(contract, context, args) {
// 主要的测试逻辑
// 每次调用都会执行这个函数
};
// 清理函数(可选)
module.exports.end = async function(contract, context, args) {
// 测试后的清理工作
};
二、负载模块核心参数
1. 输入参数
-
contract: 合约实例(通过contractFactory.getContract()获取) -
context: 测试上下文,包含:



















