标签归档:监控框架

从PHP的自动测试想到的

从PHP的自动测试想到的

昨日,因TIPI项目而阅读了PHP的自动测试实现相关代码。于此,有些许感想,记录如下。

1、用自己测试自己,制定测试过程规范。
PHP的测试环境是用PHP实现的,这不得不说是一个创新之举。相对于编译型语言,作为动态语言的PHP在应对变化上有着不少的优势,而测试本来就是一个变化是非较多的地儿。其实用到了PHP的地方只是这个框架的控制器,即源码根目录下run-tests.php文件。作为控制器,它实现了整个测试过程的控制。以一个测试过程为例,总体上分为三个部分:准备、运行和显示结果。准备活动包括测试所必须的环境变量的读取与设置,对测试参数的解析,测试脚本名的解析,各种输出文件的准备 解析测试脚本中的各个段落等;运行活动包括构造测试语句,执行测试语句,得到实际运行结果;显示结果活动包括测试后的结果比对及输出,相关记录记录以及总的测试报告显示。

这个控制器就是PHP自动测试的规范,所有的逻辑都在这一个脚本文件中,在一个时间点上,这是一个不变的过程。对于测试中变化的内容如测试环境,测试输入数据、需要验证的内容以及针对不同输入和不同测试点应该得到的预期结果,这些都存储在PHPT文件中,以不同的标记作为段分开。这些文件按模块划分,一个用例就是一个文件,与将用例写成代码相比,优势不仅仅在于工作量,更多的是在于它的扩展性、可读性和可维护性。

2、简单监控框架

先确认我们这个监控框架的需求什么。现在我们要的是一个可以监控数据是否正常,数据的状态是否符合业务逻辑,并将监控的结果发给相关负责人。从这个简单的需求出发,我们可以发现这里变化的是监控的内容,而不变的是整个监控的流程:查询特定的数据源,根据具体业务确认数据的正确性和合理性,并将结果发送给相关责任人。

对于不变的因素,我们可以以公共模块的方式在代码中实现,如果汇报结果的形式有不同的分类和权限控制的话,我们可以将这些配置放到数据库,当然,我们还是需要在代码中实现这些汇报的方式。

对于变化的因素,我们可以学习PHP的测试过程,以某些特定的规则定义一个一个的监控,我们可以称之为监控用例。在用例中定义名称、输入、过程和预期结果。比如,我们可以定义–SQL–字段做数据源。当然,这些内容我们可以分散存储,也可以集中存储在数据库。

这样一种以测试的方式实现监控过程,也许可以试试。