基本介绍

本文介绍了itest(自研测试工具)的制作目的、测试范围、常用功能、测试方法。该工具目前处于开发阶段,仍有部分功能未实现,存在一些稳定性、兼容性的问题。

制作目的

进行linux系统测试时,需要进行系统信息抓取、功能性测试、性能测试、稳定性测试。其中信息抓取、性能测试、稳定性测试大部分情况下需要进行多轮次的测试。比如系统信息抓取包含系统软硬件信息的多个方面如 cpu信息、gcc信息等等;性能测试包括cpu、内存、内核等等;稳定性测试包括io、多线程、图形、内核等等;功能测试包括内核系统调用、常用服务/命令(主要包括目前自动化实现的部分)。这些可以自动化实现的测试,之前我们多多少少的都做了一些测试脚本进行了实现,itest制作的目的是为了整合这些测试,并且提供一个简单操作的GUI界面。主界面如下

测试范围

itest目前支持的测试包括:

  • 系统信息抓取 包括:硬件信息抓取和系统核心组件信息抓取。硬件信息主要包括:处理器、主板、BIOS、内存、北桥、南桥、显卡、网卡、无线网卡、SATA、硬盘、光驱、RAID、蓝牙、USB设备、键鼠等;核心组件信息包括:系统版本、内核版本、文件系统、GCC、GLIBC、桌面管理器、QT、XORG、MESA、Java、浏览器、北桥驱动、南桥驱动、显卡驱动、网卡驱动、声卡驱动、RAID卡驱动等信息。

  • 功能测试 目前只支持ltp内核功能测试。

  • 性能测试,包括:CPU运算(支持sysbench)、MEM操作(支持sysbench、stream)、I/0操作(支持iozone)、线程管理(支持pingpong )、系统基准(支持unixbench)、内核(支持lmbench)、浏览器(支持css、acid、V8、octane、html、dromaeo)、JAVA(支持specjvm)、2D(支持 x11perf、qtperf)、3D(gerars、GLmark)、网络(涉及两台机器,暂不支持)。

  • 压力测试,包括:系统压力测试、处理器压力测试、内存压力测试、多线程压力测试、IO压力测试、2D压力测试、3D压力测试。

itest常用功能

itest 常用功能包括测试工具存放定制、邮件订阅结果功能、测试项目选择、测试项目参数指定、测试结果查看、测试报告查看、测试报告制作、系统资源监控、测试日志查看等。下面分别介绍这些功能。

主界面如下图:

测试工具存放定制指的是,itest本身只是一个测试框架,并不包含测试过程中涉及的测试工具如iozone,这些工具是独立的。这就存在一个工具获取方式的问题,itest支持远程获取和本地目录两种形式,设置界面如下:

邮件订阅功能,性能测试和稳定性测试大部分需要较长的时间,而且都是无人值守的测试。为了实现第一时间掌握测试结果的需求,考虑实现邮件订阅功能,将需要了解测试结果人员的邮件添加到邮件订阅列表,测试完成后,itest会自动将测试报告以邮件的形式发送给订阅者,设置界面如下:

测试项目选择,itest可以根据自己的测试需求,选择对应的测试项目,如只进行性能测试中的cpu性能测试,只需勾选对应测试项目即可。如下图

部分测试项目包含多个测试工具或测试点,可以根据需要进行定制,如下图:

具体的测试项目同样支持测试参数的指定,如iozone,需要设置测试文件大小、测试模式、测试块大小、测试次数、测试线程数数等参数,设置方法如下图:

测试结果查看,测试完成后,可以进行测试结果的查看,如选择cpu性能测试中的sysbench进行测试,测试完成后,点击查看结果,会打开对应的结果管理器,结果如下图

测试报告查看,如果进行了多次测试并且保存了多个测试报告,itest提供测试报告的查阅功能,如下图:

测试报告制作,itest可以进行多次测试结果或不同系统测试结果进行对比测试报告的制作,计划支持的报告格式为html和xls,目前仅集成了html格式的报告,如下图:

系统资源监控,itest支持系统资源的实时监控,目前支持监控项目包括cpu负载、内存负载、SWAP负载、网络负载。在主界面点击查看负载,即可打开负载监视器,如下图:

其他功能,界面中包含了一个测试任务执行的进度条,可以初步判断测试执行的进行,一个测试日志显示窗口,该测试日志显示当前测试的项目和已经完成的测试项目。设计包括测试详细日志的查看功能,目前未实现。

工具其他说明

目前该工具已在桌面4.0系列的产品进行了测试验证,其他产品暂未进行兼容测试。该工具后台主要由python实现,前端由pyqt实现。对系统的主要依赖包括pyqt(UI界面)、pandoc(报告制作)、selenium(浏览器测试)等模块。测试时依赖网络(部分测试工具需要进行依赖包的安装,测试工具的下载)。

项目地址:

itest

已知bug

by 李鹏