基于QT的整机测试工具1-软件介绍

概述

编写TestSOP整机测试软件的初衷是方便对装有linux系统的设备进行整机遍历式测试,包括接口、性能和稳定性等。因为单独对一台设备测试时,不使用辅助软件的情况下,很容易漏测,同时某些测试结果不宜保存,对多台设备进行测试后也不利于对结果进行对比分析。
集整机接口与功能/性能测试为一体的软件BurnTest算是整机测试类软件的集大成者,本篇博文最终目标也是以它作为参照对象,当然,其中需要花费的时间与精力确是难以评估的,只能是先写写看,最终软件的成型,且蹉跎且前行。
本系列博客中涉及到的代码完全开源,最终成型的工程代码也会同步到码云的git上。

软件形态

测试软件分为从机端与主机端。其中从机端主要做测试工作,暂且命名为Testsop,主机端做监控以及对比分析之类的工作,暂且命名为SystestServer
从机端软件Testsop运行在装有Linux系统的的设备上,可以不依赖主机端,进行独立测试,运行时可以评测该设备的端口功能完整性、性能跑分以及系统稳定性。从机端软件由于是主跑测试,设计时应力求运行稳定、资源消耗低和功能丰富,这里选用QT widget开发方式。
而主机端软件SystestServer主要起到监控和分析数据的作用,并不限制其运行的系统平台。主机端可以与从机端进行通信,然后更改测试序列,发送测试命令,记录从机的运行状态与测试结果。主机端软件主跑监控与数据分析,其运算资源要更为丰富,这里选用QT qml开发方式,以便获得更友好的用户界面。
从机与主机为多对一的关系,通过网络进行通信,拟采用UDP广播报文加TCP通信结合的方式。

测试介绍

这里针对主机常做的测试类型,分为接口功能测试,性能测试以及稳定性测试来进行介绍。

接口测试

一般主机常扩展出留给用户使用的有PCIE、USB、SATA、网口、串口、CAMERA、视频等接口,有些接口需要做设备识别测试,如PCIE/USB,设备识别中需要判定有无设备枚举到,以及判断设备是否link到正确的速率,有些接口则需要对其所接的设备做相对应的读写测试才能判断接口是否正常,如磁盘和串口等,更多情况下识别与读写需要结合完成,如网口、SATA、音视频接口等。
PCIE接口与USB接口存在层级关系,因为它们均可做桥接扩展,所以适合用树形的方式展开。比如PCIE接口可以通过PCIE桥芯片往下级扩展更多的PCIE接口,如下图所示,PCIE接口[00:00.0]接了一个桥控制器[01:00.0],扩展出了8个PCIE接口,而下面的8个接口,有的接了PCIE设备,有的则没有。
基于QT的整机测试工具1-软件介绍_第1张图片
USB也可以通过USB-HUB往下级扩展更多的USB接口。如下图,该主机共有4个USB3.0的接口,其中接口1接了一个USB3.0-HUB,扩展了4个USB3.0接口,接口2接了一个声卡,接口3空,接口4接了一个USB2.0的HUB。
基于QT的整机测试工具1-软件介绍_第2张图片
SATA接口、串口和网口等需要做对应的读写测试。SATA接口测试前接好硬盘,测试过程种挂载硬盘分区,进行读写测试即可,串口可以测试自收发。网口视主机网络接口多少而定,一般单网口ping网关,双网口做回环测试,多网口也可以只做回环测试或者采用回环加桥接的形式。这些接口可以事先接好对应的设备和连接线,运行测试软件就行。
有的接口则需要人工干预,很难或者根本不能自动化完成测试。比如音频接口、显示接口等,需要在测试过程中通过人来判断该接口是否正常。一般音频接口的输出端可以接耳机/音响,播放一段音频,由测试人员听到音频选择对应的文字来判断音频播放功能是否正常,音频的输入则要求测试中录入指定的音频。显示接口则需要在主机连接的多个显示器上显示对应的图样,由测试人员判断显示接口是否正常。

性能测试

性能测试一般包括系统性能基准、CPU运算、内存访存带宽、显卡、磁盘IO、网络IO等。我们设计软件时这些测试工具没必要再重复实现,因为linux下针对这些测试都以及有了对应的工具,比如Unixbench、coremark、stream、glmark、aio、iperf等。我们写测试软件时只需要调用对应的测试工具,待其完成测试后提取其中的结果即可。针对性能测试,这里推荐一个测试集成套件phoronix-test-suite,它里面包含了各种测试工具,可以通过它完成各个模块的性能测试,也能做不同软硬件平台的对比分析,后续我会专门写一篇关于phoronix-test-suite测试套件如何使用的博客。

稳定性测试

稳定性测试除了运行的测试软件外,一般还有其对应的环境要求,如高低温、高湿热等。这里不讨论硬件的测试环境,仅考虑测试软件的实现。一般稳定性测试需要在测试主机端运行相应的一系列压力测试软件,如stress、ltp等,运行过程中,可以通过串口/网络/显示器检测其运行状态。我们这里专门编写一个监控软件SystestServer,与整机接口功能测试软件区分开来。监控主机端可以同时显示多台测试机的状态,并配置测试脚本与测试例程,暂定测试界面如下图所示。
基于QT的整机测试工具1-软件介绍_第3张图片
监控主机端可以配置稳定性测试的测试指令序列,并控制测试进程,监控多台从机的测试状态,在整个测试周期运行完后,分析测试数据,并生成测试报告。

代码说明

本系列博客首先分章节介绍测试的功能模块,比如各个接口功能测试块的实现、界面UI实现、通信协议制定等,并随文档上传各个模块的代码,待稍微形成一个基本版软件后,将工程代码上传到git上,后续功能添加就以git版本记录的形式。

你可能感兴趣的:(system,&,tester,linux,主机测试,接口测试,性能测试,qt)