@@ -11,11 +11,43 @@ sidebar_label: "集成测试"
1111
1212## 本地测试环境
1313
14- 本地通过一台专用的服务器来执行测试任务,服务器通过相应接口与各个开发板直接相连,执行测试脚本 。同时,本地服务器上还需要部署各种软件服务端,以便为开发板提供资源 。
14+ 本地通过一台运行 Ubuntu 24.04 LTS 系统的专用的服务器来执行测试任务,服务器通过相应接口与各个测试设备直接相连,执行测试过程 。同时,本地服务器上还需要部署各种软件服务端,以便为各种开发板提供资源 。
1515
1616![ Server] ( ./images_test/server.jpg )
1717
18- 当测试运行时,服务器上的测试工具会将 AxVisor 固件通过 Debug 接口加载到开发板中运行,同时,通过串口将运行日志输出到本地服务器。当测试结束,测试工具会将测试结果汇总,并生成测试报告。
18+ 当测试运行时,服务器上的测试工具会将 AxVisor 固件通过 Debug 接口加载到开发板中运行,同时,通过串口将运行日志输出到本地服务器。
19+
20+ ### 设备链接
21+
22+ 1 . 电源控制模块通过 USB 转 RS485 模块与本地测试服务器相连。
23+
24+ 2 . 测试设备通过本身的 Debug 接口经过 USB 转 TTL 工具与本地测试服务器相连。同时,由于不同开发板测试方式的不同,对某些开发板,还需要通过网口与本地测试服务器相连。
25+
26+ ### 供电控制
27+
28+ 在测试过程中,我们需要给测试设备执行重新上电等操作,因此,我们需要实现在本地测试服务器中通过命令手动控制测试设备上电的功能。我们需要一个电源控制模块,通过 USB 接口与本地测试服务器相连,通过串口与测试设备相连,实现上电和断电功能。
29+
30+ ![ Power] ( ./images_test/power.png )
31+
32+ ### 断路器
33+
34+ 最上级的断路器是整个测试环境的电源开关,用于控制整个测试环境的供电,同时也防止在出现短路情况时会影响外部环境。因此,该断路器的额定功率需要精心选择,否则无法满足测试的保护要求。
35+
36+ #### 继电器
37+
38+ 我们选择了中盛科技的数字量输入输出 IO 模块作为电源控制单元。该控制模块采用可选的 6 ~ 36V/24V/12V 直流供电,继电器输出测额定电流 5A/10A/16A/30A 可选。针对我们的测试环境,我们选择的是 6 ~ 36V 直流供电,继电器测输出 10A 电流的配置。
39+
40+ ![ power1] ( ./images_test/power1.png )
41+
42+ 该数字量输入输出 IO 模块根据对外继电器接口不同提供了 RS485 和 RS232 两种通信方式,为了确保每个测试设备都能独立控制,我们为每个测试设备都配置了一个 1 路输出的电源控制模块,对于 1 路接口的模块,只有 RS485 通信接口可选。
43+
44+ #### 控制程序
45+
46+ 中盛科技的数字量输入输出 IO 模块支持通过标准的 Modbus RTU 协议经 RS485 通信,通过串口与电源控制模块相连。在 Linux 中,有一个名为 ` mbpoll ` 的工具可以方便地通过 Modbus RTU 协议与设备进行通信。
47+
48+ ![ mbpoll] ( ./images_test/mbpoll.png )
49+
50+ 因此,我们只需要在当前测试服务器中安装 ` mbpoll ` 工具即可通过串口与电源控制模块相连,实现上电和断电功能,而无需手动编写控制程序。
1951
2052### 测试设备
2153
@@ -71,21 +103,6 @@ x86 平台的引导程序(BIOS)各厂家通常差别较大,但是,他们
71103
72104x86 架构的引导程序(BIOS)中一般都集成了 PXE 客户端,我们需要提供一个服务端。目前,在 Linux 下没有类似于 Windows 下的 All in One 的工具,只能是分别搭建!
73105
74- ### 供电控制
75-
76- 在目前的测试过程中,我们需要给测试设备重新上电,因此,我们需要实现在本地测试服务器中通过命令手动控制测试设备上电的功能。因此,我们需要一个电源控制模块,通过 USB 接口与本地测试服务器相连,通过串口与测试设备相连,实现上电和断电功能。
77-
78- ![ Power] ( ./images_test/power.png )
79-
80- #### 继电器
81-
82- 我们选择了中盛科技的数字量输入输出 IO 模块作为控制单元。该模块支持最多 8 路继电器,支持 RS232 和 RS485 通信接口,支持 12V/24V 电源输入,支持 5A 电流输出。
83-
84- #### 控制程序
85-
86- 要控制带有 RS232 或 RS485 通信口的继电器,我们需要按照厂家提供的协议来实现一个基本工具。
87-
88-
89106## 注册 Runner 服务器
90107
91108为了实现自动化测试,我们可以将本地服务器注册为 Github Actions 的 Runner 服务器。Github Actions 本身支持使用自定义服务器(Runners)来运行所有的 Action 命令。我们可以选择为仓库单独注册自定义服务器,也可以为组织注册全局的自定义服务器,然后分配给该组织下的所有或者部分仓库使用。官方也有详细的教程 https://docs.github.com/zh/actions/how-tos/manage-runners/self-hosted-runners/configure-the-application
@@ -206,3 +223,7 @@ jobs:
206223- 如果作业排队的时间超过 24 小时,则作业将失败。
207224
208225> 注意,要正常运行 Actions 过程,需要在自定义服务器上安装一些依赖包
226+
227+ # # 遗留问题
228+
229+ 1. 由于测试过程需要共用硬件资源,因此需要实现多个测试任务之间的资源隔离,防止相互干扰。
0 commit comments