npx caliper launch master --caliper-workspace . \
--caliper-benchconfig benchmarks/samples/fabric/fabcar/config.yaml \
--caliper-networkconfig networks/fabric/v1/v1.4.1/2org1peergoleveldb_raft/fabric-go-tls.yaml
从命令来分析一下测试的内容:
(过了很久没用了,最开始执行的时候前面没加“npx”,然后就报了“caliper:commond not found”,在这里卡了半天。因为之前记录的博客里面这条命令也忘了加“npx”,后来重新看了官方文档才发现。)
--caliper-workspace 指定了工作路径,因为是在/caliper-benchmarks路径下的命令行,因此用的 ./;
--caliper-benchconfig 指定了测试的配置文件,测试使用的是fabcar这个链码;
--caliper-networkconfig 指定了区块链网络配置文件,包括版本,节点,状态数据库等。
根据错误信息,应该是测试文件中出现了一个'length'属性,但是这个属性没有被定义,所以不能解析之类的。根据执行流程猜测,这个问题是从config.yaml文件中执行报错的,在这个文件中指定了fabcar测试的几个.js文件。
然后去fabcar下面的文件中找,发现下图的三个文件中有'length'这个属性。
下面这个截图是changeCarOwner.js的,owners是一个数组,为了读取它的长度,但是报错说没有这个属性,因此将这个owners.length 直接改成了长度的数值10。其他两个文件类似的修改。
重新执行命令,上一个错误已经没有了,但是发现如下错误:
又是一个'processes'属性没有定义,这次在fabcar文件夹下面搜了发现没有这个属性。再次回到config.yaml文件,对比了一下之前测试成功的config.yaml文件,发现区别,左边是fabcar里面的测试配置文件,右边是simple里面的测试配置文件,多了'process'相关的项,因此尝试将这些注释掉。
重新执行命令,上一个错误没有,但出现下面的错误:
错误信息很好理解,回到config.yaml文件,
应该是这种格式不对,将其改成下面这种形式。其他地方的这个格式也相应地修改。
重新执行命令,发现新的错误:
这个错误和错误3类似,是格式错误,因为rateControl下面type前面多了一个横线'-':
在错误3的截图中,就是去掉横线的情况。
然后重新执行命令,正常运行。
文件拉取下来之后,fabcar这部分的内容我之前没修改过,这次测试出现的这些问题可能是原来就没解决的。