脚本介绍
制作脚本的原因
最近做 mugen 测试时,发觉测试中许多时间都花在一些重复性的工作上
比如确定测试套测试用例,等待测试结果,写测试文档
为什么,我不能把这些重复的工作交给计算机呢?
语言
使用 python 和 shell 编写了很简单的脚本来帮我完成这繁琐无趣的过程
功能
目前还只能做到 运行测试用例,自动执行,自动保存 log 信息,和生成md模板这种简单的功能
目前尝试过十个测试用例,测试的结果与预期相符,应该是没问题的。
安装
脚本地址:飞飞肥/mugen-logs - 码云 - 开源中国 (gitee.com)这是我原先存放log的地方,大家只需要
这四个文件(假设包含于 ugen-logs 文件夹下)
create_md.py
create_task_list.py
start.sh
2403_mugen失败测试用例.xlsx(防止信息的暴露,只保留了两列数据,第一列:测试套,第二列测试用例)
使用时应将 mugen 与 mugen-logs 置于同一级文件夹下,确保 mugen 的测试环境正常运行
如果缺少相关库直接 pip install 就行
使用
cd mugen-logs
chmod +x start.sh
start.sh "测试套"
例:start.sh argus
[root@localhost mugen-logs]# tree
.
├── 2403_mugen失败测试用例.xlsx
├── create_md.py
├── create_task_list.py
├── QAteam
│ └── mugen
│ └── argus
│ └── alltest.log
│ └── testlist.txt
├── README.en.md
├── README.md
├── start.sh
└── x86_64
└── riscv64
会自动生成 QAteam/mugen/argus/alltest.log 与 QAteam/mugen/argus/testlist.txt
其中 alltest.log 中储存的时 mugen 测试时的标准输出
Executing command: ./mugen.sh -f argus -r oe_test_argus_01 -x
Tue May 28 23:27:41 2024 - INFO - start to run testcase:oe_test_argus_01.
Tue May 28 23:27:42 2024 - INFO - pkgs:(lshw) is already installed
Tue May 28 23:29:59 2024 - INFO - The case exit by code 0.
Tue May 28 23:29:59 2024 - INFO - End to run testcase:oe_test_argus_01.
Tue May 28 23:29:59 2024 - INFO - A total of 1 use cases were executed, with 1 successes 0 failures and 0 skips.
Executing command: ./mugen.sh -f argus -r oe_test_argus_02 -x
Tue May 28 23:29:59 2024 - INFO - start to run testcase:oe_test_argus_02.
Tue May 28 23:30:00 2024 - INFO - pkgs:(lshw) is already installed
Tue May 28 23:32:30 2024 - INFO - The case exit by code 0.
Tue May 28 23:32:30 2024 - INFO - End to run testcase:oe_test_argus_02.
Tue May 28 23:32:30 2024 - INFO - A total of 1 use cases were executed, with 1 successes 0 failures and 0 skips.
Executing command: ./mugen.sh -f argus -r oe_test_argus_03 -x
Tue May 28 23:32:30 2024 - INFO - start to run testcase:oe_test_argus_03.
Tue May 28 23:32:31 2024 - INFO - pkgs:(lshw) is already installed
Tue May 28 23:34:45 2024 - INFO - The case exit by code 0.
Tue May 28 23:34:45 2024 - INFO - End to run testcase:oe_test_argus_03.
Tue May 28 23:34:45 2024 - INFO - A total of 1 use cases were executed, with 1 successes 0 failures and 0 skips.
testlist.txt储存的则是测试语句
./mugen.sh -f argus -r oe_test_argus_01 -x
./mugen.sh -f argus -r oe_test_argus_02 -x
./mugen.sh -f argus -r oe_test_argus_03 -x
这里是为了让我直观的观察测试用例是否正确
当然也会自动化的将你测试的用例的log复制到相应架构的文件夹中 x86_64/riscv64
当然你也可以直接使用
create_task_list.py argus 来生成 testlist.txt
create_md.py会基于testlist.txt 的内容生成一个测试模板
模板如下
# argus
共 3个测例
## 测试结果速览
| 测试用例 | x86结果 | riscv结果 | pr/issue |
| ---------------- | ------- | --------- | -------- |
| oe_test_argus_01 | | | |
| oe_test_argus_02 | | | |
| oe_test_argus_03 | | | |
### 环境
#### x86
windows11下使用VMware -----> openEuler x86 24.03
x86镜像地址:http://121.36.84.172/dailybuild/EBS-openEuler-24.03-LTS/rc3_openeuler-2024-04-16-08-55-15/
#### riscv
Fedora Linux 40 -----> qemu openEuler riscv 24.03
riscv镜像地址:https://repo.tarsier-infra.isrc.ac.cn/openEuler-RISC-V/testing/2403LTS-test/v1/
qemu版本:8.2.0 (qemu版本差异也可能导致问题)
------
## 测试细节
### oe_test_argus_01
./mugen.sh -f argus -r oe_test_argus_01 -x
#### x86
#### riscv
-----
### oe_test_argus_02
./mugen.sh -f argus -r oe_test_argus_02 -x
#### x86
#### riscv
-----
### oe_test_argus_03
./mugen.sh -f argus -r oe_test_argus_03 -x
#### x86
#### riscv
-----
方便手动填入测试结果
md 文件位于
[root@localhost mugen-logs]# tree
.
├── 2403_mugen失败测试用例.xlsx
├── create_md.py
├── create_task_list.py
├── QAteam
│ └── mugen
│ └── argus
│ └── argus调研报告.md
│ └── testlist.txt
├── README.en.md
├── README.md
├── start.sh
└── x86_64
└── riscv64
修改脚本使生成的 md 符合你的预期,我只填写了基本的信息
后续想增添的功能
1.直接将测试结果输出到 md 里,不过这里涉及到两个架构的系统如何将md合并的问题
2.目前 alltest.log 中的信息并不会被覆盖(其实我也不想让其覆盖),期望可以按测试时间进行分类。
3.复制log时,期望可以提取log中的ERROR信息,帮助测试者快速分析。