【原文链接】openQA----openQA的架构
openQA简介
openQA是一款用于完整的操作系统安装测试的测试工具,它通过创建虚拟机的方式执行测试过程并在每一个测试步骤中检查控制台回显和屏幕结果,并可以通过按键或者命令进入下一个步骤。openQA可以检查操作系统是否可以安装,是否可以正常运行,应用是否可以正常运行,并且对安装过程中的每个安装选项和命令是否能正确响应。此外,对于每次操作系统更新openQA可以执行多次组合测试,并且能够组合测试不同硬件、不同安装选项、不同类型的操作系统。
openQA的架构
openQA架构图如下图所示,测试引擎的核心是os-autoinst组件,os-autoinst组件负责创建虚拟机并去执行测试脚本,它将产生视频、截图以及执行结果的json文件。
openQA Web Application 调度work分布式执行测试脚本,一台虚拟机可以部署多个worker,由openQA Web Application统一调度,openQA Web Application和worker可以部署在一台虚拟机上,也可以部署在多个节点上。
简单总结一下就是,用户在openQA Web页面提交测试任务后,openQA Web 会根据测试任务以及worker的类型进行分配调度worker执行,然后os-autoinst组件则根据测试任务的描述创建被测环境即虚拟机,然后执行测试脚本,同时能提供视频、截图以及json格式的测试结果,最终openQA Web 页面将执行结果展示。
openQA中的常见概念
- test: 测试用例
- modules: 测试模块
- test suite: 测试模块的集合,一个test suite内的所有modules都串行执行
- job: 测试执任务
- test run: 等同于job
- test result: 测试结果
- test step :测试步骤
- product:产品
- job group:测试任务组
- version: 版本号
- flavor: 镜像格式,比如DVD
- arch: 架构
- machine: 机器类型
- scenario: 格式为: ----<test_suite>@, 比如 “openSUSE-Tumbleweed-DVD-x86_64-gnome@64bit”
- build: 构建