4.0 KiB
测试用例检视规范
1 检视前提
必须有用例执行结果截图;
用例文件必须格式化;
每个用例中的测试命令控制在10个左右;
用例文件命名规范:
命名方式为:oe_test_包名.sh、oe_test_包名_序号.sh、oe_test_包名_命令.sh(用于同一个命令中参数比较多的场景)
用例拆分规范:
同一个命令中的参数超过10个以上,需要对用例进行拆分,命名方式为:oe_test_包名_命令1_序号.sh
用例合并规范(非必须):
软件包中有多个命令,并且所有命令行参数少于10个,命名方式可以为:oe_test_包名.sh、oe_test_包名_序号.sh
oe_test_包名软件包中有多个命令参数均小于3个,建议合并至一个用例中(用例描述中说明测试了哪些命令)
名词解释:
包名:当前测试软件包名 命令:rpm -ql 包名 | grep bin 序号:01,02 ...同理
针对同一个软件包不同版本命令参数有差异的用例结构及命名规范:
用例目录结构
testcases/cli-test/源码包名
用例名称
oe_test_rpm包名_base_命令(基线用例,多个软件包版本共同使用的用例)
oe_test_rpm包名_version1_命令
oe_test_rpm包名_version2_命令
测试套
suite2cases/源码包名_version1.json
oe_test_rpm包名_base_命令
oe_test_rpm包名_version1_命令
suite2cases/源码包名_version2.json
oe_test_rpm包名_base_命令
oe_test_rpm包名_version2_命令
2 检视规范
2.1 注释
代码中所有注释必须为英文描述;
2.2 命令和参数
测试软件包中的命令和参数要全部覆盖;
2.3 临时文件
临时文件放在/tmp目录下,或者在当前路径下创建临时目录(临时文件比较多的情况),post_test中需要清理;
2.4 其他
文件起始位置注释信息中年份必须为当前年份;
每个用例必须独立(每个用例执行互不依赖、互不影响);
config_test只放置预加载数据参数配置等操作代码,pre_test中只放置预置处理代码,run_test只放置测试代码,post_test只放置环境清理代码(必须清理完全,恢复初始使用环境),里面不能出现python xx的执行命令;
pre_test和post_test不能有CHECK_RESULT方法;
能归并在一起的语句,全部归并在一起。例如,多个rm命令,可以归并一个;
userdel删除用户,需要加-rf参数,连同用户目录一起删除;
代码中尽量使用框架提供的公共变量(参考conf/mugen.env)和公共方法,如NODE1_XX系列;
不要定义从不使用的变量,不要写无意义的代码;
DNF_INSTALL方法可同时安装多个包,安装多个包的调用方式为:DNF_INSTALL "xx1 xx2";
DNF_REMOVE与DNF_INSTALL配合同时使用时,DNF_REMOVE可以省略参数;
config_test,pre_test,post_test如无必要,不能在用例代码中出现;
mv命令必须加上-rf,防止目的文件存在时,命令有提示操作;
测试点必须加CHECK_RESULT,CHECK_ RESULT必须包含4个参数,日志信息必须正常易理解;
不能出现重复代码,尽量使用相对路径,不能出现语句逻辑性错误;
cp命令必须加上-f,防止目的文件存在时,命令有提示操作;
用例中用到的除用例以外的文件需要放在当前路径的common目录下,如果文件数量超过20个建议打包上传;
用例描述以及注释必须都是英文的;
每个命令参数都需对执行结果进行校验,参数不同校验结果也应有所不同;
格式化问题:用例中函数体内容缩进4个空格;命令参数、特殊符号前后一个空格;
判断文件是否存在建议使用test -f file;
在文件中查找关键词用grep xxx file;
获取当前路径:xxx=$(cd "$(dirname $0)" || exit 1 pwd)
查看命令的标准错误输出使用cmd 2>&1 | grep xxx;
根据pr的检视意见修改之后必须进行回复,无需修改也请给出理由,修改完之后需要上传用例执行成功结果截图(整个测试套跑成功);