

一般而言,自动化测试框架必须包含测试用例编写和管理、测试执行、测试报告等主要组成部分。鉴于区块链公链本身的一些特殊性,又需要考虑环境的准备,比如环境的部署、智能合约的准备等等。
一般而言,自动化测试框架必须包含测试用例编写和管理、测试执行、测试报告等主要组成部分。鉴于区块链公链本身的一些特殊性,又需要考虑环境的准备,比如环境的部署、智能合约的准备等等。
以下是一个典型的测试框架的示意图:

点击查看大图
该自动化测试主要包含三个模块:环境管理、测试用例与测试执行管理,以及测试报告管理。
环境管理模块
1. 初始化环境
首次初始化环境,需要创建docker镜像,Dockerfile如下:
FROM phusion/baseimage:0.9.18
MAINTAINER will<[email protected]>
ARG branch='test'
ARG debug='-debug'
# Install prerequisites componets
RUN add-apt-repository ppa:bitcoin/bitcoin -y && apt-get update
ADD prepare_prerequisites.sh /tmp/
RUN apt-get install sudo
RUN sh /tmp/prepare_prerequisites.sh
# Create workdir
RUN mkdir -p /opt/src && cd /opt/src
RUN git config --global user.email "[email protected]"
RUN git config --global user.name "will-lzx"
RUN cd /opt/src && git clone -b $branch 'https://github.com/WaykiChain/WaykiChain.git' --recursive
RUN cd /opt/src/WaykiChain/linuxshell && sh ./linux.sh \
&& cd /opt/src/WaykiChain/ && sh ./autogen-coin-man.sh "coin${debug}"
WORKDIR /opt/src/WaykiChain/
CMD bash
▲向左滑动查看完整代码
2. 生成build镜像
$ docker build -t wick-build .
测试用例和测试执行管理
1. 测试用例
测试用例管理包含后台自动更新所包含所有测试用例,每次刷新页面自动加载,可以根据模块和测试用例查看具体的用例内容。
2. 测试执行
选择测试模块或者测试用例;
选择执行环境,build最新版本coind:
$ docker run -i --rm -v `pwd`/waykichain/:/tmp/waykichain \
wicc-build \
sh -c " git pull || true && git reset --hard origin/test && sh ./autogen-coin-man.sh coin && make && strip ./src/coind && mv ./src/coind /tmp/waykichain/"
▲向左滑动查看完整代码
选择执行的频率(包含立即执行和指定时间来执行);
后台执行通过定时任务来完成;
定时任务通过celery+redis 配合django框架来实现。
测试报告管理
1. 报告生成
通过以下命令行执行
RUN_ENV=$ENV pytest -s --alluredir=$reportdir/allure-results --junit-xml=$reportdir/junit-xml/test_result.xml --html=$reportdir/index.html
▲向左滑动查看完整代码
生成report以xml、html格式,在mysqldb中存储报告文件的目录,方便索引。
2.报告格式
测试报告使用pytest自动生成的html格式,也可以使用pytest-allure插件来生成测试报告,本文以html格式显示。测试报告如下图:
