本软件的设计思路为:由主程序控制整个流程,调用各个模块来运行。
考虑到系统的可维护性及扩展性,将功能进行了分离,最终期望可以使用户自定义crash及存储方式并自行编写相关程序直接导入即可工作。
自动化的测试过程由用户填写配置文件之后系统自动执行。
整个目录结构为:
ftest.py 主程序,包括以下功能函数:
testenv(): 调用 envtest.py
init(): 流程为:1.重命名已存在的/etc/kdump.conf,即将其转存
2.新建kdump.conf
3.从本软件的配置文件ftest.conf中读取相关数据
4.获取到关于存储的方式,并调用存在storefunc目录下的相关模块进行环境检测(如网络存储环境检测等)<span style="white-space:pre"> </span> 5.函数返回,返回值为读取到的crash方式
warn(): 询问用户是否确实开始触发crash
exe(fun): 执行crash,方式是调用/crashfunc下的相关函数.
conf.py 负责读取ftest.conf文件,获取存储方式与crash方式,调用storefunc目录下的相关文件对所需的环境进行检测,最后返回触发方式。
exception.py 所有自定义的异常
envtest.py 检测环境,包括所需的软件(kexec-tools, kernel-debuginfo, crash)是否安装
crashfunc:
__init__.py
sysrqc.py sysrq-c崩溃方式的实现
storefunc:
__init__.py
nfs.py nfs存储方式
ssh.py ssh存储方式
2.初始化,包括对配置文件的初始化、获取存储方式并检测可用性、得到崩溃方式信息,配置文件读写完成后重启服务
3.提示用户并执行