4.5.2. AutoTest 使用方法
AutoTest 提供了一种灵活的自动化测试解决方案,支持通过配置文件 config.ini 自定义压测时长和测试次数,并允许用户根据需求扩展测试用例,以满足不同的测试需求。该工具在驱动单元测试的基础上开发,实现了自动化测试功能,同时与功能单元的独立测试相互独立,并充分复用现有代码资源。
4.5.2.1. AutoTest 目录结构
AutoTest 使用 startup.sh 脚本读取 config/config.ini 配置文件来启动测试。用户可以通过修改 config/config.ini 文件自定义测试内容。在需要进行多个功能的稳定性或压力测试时,这种方式能显著减少用户重复配置测试环境的工作量。目前,AutoTest 已经复用了驱动功能单元测试中的以下测试项。
#:~/sdk/app/samples/platform_samples/chip_base_test$ tree
.
├── 01_cpu_bpu_ddr
│ └── scripts
│ └── stress_test.sh # CPU-BPU-DDR 压力测试
├── 02_emmc
│ └── emmc_stability_test.sh # eMMC 稳定性测试
├── 03_nand_flash
│ └── nand_test.sh # QSPI NAND Flash 压力测试
├── 04_uart_test
│ └── uartstress.sh # 串口压力测试
├── 05_spi_test
│ └── spistress.sh # SPI 压力测试
├── config
│ └── config.ini # 自动化测试的配置文件
└── startup.sh # 配置自启动的脚本程序
4.5.2.2. config.ini 配置文件说明
config.ini 文件用于配置和管理 AutoTest 的测试项,通过调整其中的参数,用户可以快速选择需要执行的测试并指定测试参数。以下是文件结构及配置说明:
配置文件结构
每个测试项以 [测试项名称] 开头,包含以下字段:
Status: 启用状态,可设置为
enabled(启用)或disabled(禁用)。Description: 测试项的简要描述,说明测试内容。
ExecStart: 测试脚本的路径及运行参数,定义具体测试的执行方式。
配置文件示例
[CpuBoost]
Status=disabled
Description=Set the CPU to enter boost mode
[CpuAndBpu]
Status=enabled
Description=CPU, BPU, and DDR stress test
ExecStart=/app/platform_samples/chip_base_test/01_cpu_bpu_ddr/scripts/stress_test.sh -t 24h
[EmmcStablity]
Status=enabled
Description=eMMC stability test
ExecStart=/app/platform_samples/chip_base_test/02_emmc/emmc_stability_test.sh -t 24h
[NandFlash]
Status=disabled
Description=NAND flash stress test
ExecStart=/app/platform_samples/chip_base_test/03_nand_flash/nand_test.sh -t 24h
[UART]
Status=enabled
Description=UART stress test
ExecStart=/app/platform_samples/chip_base_test/04_uart_test/uartstress.sh -b 115200 -d /dev/ttyS2 -c 1000000
[SPI]
Status=enabled
Description=SPI stress test
ExecStart=/app/platform_samples/chip_base_test/05_spi_test/spistress.sh -d /dev/spidev2.0 -c 1000000
使用说明
编辑配置文件: 打开并编辑
config/config.ini文件,根据需要调整每个测试项的Status值:设置为
enabled:启用测试项。设置为
disabled:禁用测试项。
修改测试参数: 根据实际需求,调整
ExecStart中的命令和参数。例如:修改测试时长(如
-t 24h表示测试持续 24 小时)。调整设备路径(如
/dev/ttyS2或/dev/spidev2.0)。调整其他测试选项(如循环次数
-c或波特率-b)。目前支持的所有测试项的脚本程序都支持
-h选项,可以查阅命令帮助信息来调整参数。
CpuBoost 这一项是环境配置项,用来设置
CPU是否超频。
4.5.2.3. 使用 startup.sh 启动测试
在完成 config.ini 配置后,用户可以通过运行 startup.sh 脚本启动 AutoTest。脚本支持多种启动方式,以满足不同的使用需求:
手动启动或调试测试项
适用于使用官方系统镜像并需要手动运行或调试测试项的场景。执行以下命令启动测试:
/app/platform_samples/chip_base_test/startup.sh # 或者 cd /app/platform_samples/chip_base_test ./startup.sh
此方式便于调试单项测试内容或观察测试执行情况。
开发板启动时自动运行测试
适用于测试项已经配置完成且调试通过,需要开发板在上电后自动运行测试的场景。用户可通过创建软链接实现自动运行:
ln -s /app/platform_samples/chip_base_test/startup.sh /app/startup.sh
完成软链接创建后,开发板每次启动(上电或者 reboot 重启)都会自动执行 /app/startup.sh (由 /etc/init.d/S99auto_startup 服务调用),启动配置的测试流程。
通过以上两种方式,用户可以根据需求选择合适的启动模式,实现灵活的测试流程控制。
4.5.2.4. 查看测试日志
在测试运行期间,系统会生成相关日志文件,用户可以通过这些日志检查测试的进展或结果。默认情况下,日志文件保存在以下路径:
/app/platform_samples/chip_base_test/log
修改日志保存路径
用户可以通过以下两种方式更改日志的保存位置:
移动目录: 日志默认保存在
chip_base_test目录下。用户只需将整个chip_base_test目录移动到新的位置,例如:mv /app/platform_samples/chip_base_test /userdata/chip_base_test
移动后,日志文件将自动保存到新的路径,例如:
/userdata/chip_base_test/log
自定义日志输出路径 驱动单元测试程序的脚本支持通过
-o选项自定义日志目录。用户可以编辑config.ini配置文件,在对应测试项的ExecStart参数中添加-o选项。例如:ExecStart=/app/platform_samples/chip_base_test/01_cpu_bpu_ddr/scripts/stress_test.sh -t 24h -o /userdata/logs
此配置会将日志保存到
/userdata/logs目录下。
通过灵活调整日志保存路径,用户可以更方便地管理和查看测试结果,同时满足不同环境下的日志存储需求。
4.5.2.5. 新增测试项
AutoTest 支持通过配置 config.ini 文件和脚本灵活扩展测试项,用户可以根据需求添加新的测试功能。以下是新增测试项的操作步骤:
编写测试脚本
在新增测试项前,需要先编写或准备对应的测试脚本,并确保脚本可以独立运行。测试脚本应包含以下要素:
明确的输入参数(如测试时长、设备路径等)。
日志输出功能,建议支持
-o参数自定义日志路径。
将测试脚本保存到适当位置,例如:
/app/platform_samples/chip_base_test/new_test/new_test.sh
配置 config.ini 文件
在 config/config.ini 中新增测试项配置段落,定义以下字段:
Status: 设置为
enabled启用测试,或设置为disabled暂不启用。Description: 描述测试功能,方便识别测试项。
ExecStart: 填写测试脚本路径及其运行参数。
示例配置:
[NewTest]
Status=enabled
Description=New feature stability or stress test
ExecStart=/app/platform_samples/chip_base_test/new_test/new_test.sh -t 12h -o /userdata/new_test_logs
字段说明:
-t参数指定测试时长,例如12h表示 12 小时。-o参数指定日志保存路径,例如/userdata/new_test_logs。
启动测试
完成配置后,通过 startup.sh 脚本启动测试:
/app/platform_samples/chip_base_test/startup.sh
startup.sh 会根据 config.ini 文件中的配置自动加载并运行新增的测试项。
验证测试项
运行测试后,检查以下内容以确保新增测试项正常工作:
日志文件是否按预期生成,且内容记录完整。
测试结果是否符合功能预期。
config.ini配置的参数是否正确生效。