# 测试用例检视规范 # 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的检视意见修改之后必须进行回复,无需修改也请给出理由,修改完之后需要上传用例执行成功结果截图(整个测试套跑成功)**;