烟雾测试框架
gdc-smoker的Python项目详细描述
关于
Smoker(又名Smoke测试框架)是一个用于分布式执行Python模块、shell命令或外部工具的框架。 它根据请求或周期性地执行配置的插件,统一输出,并通过rest api为其命令行或其他客户端提供输出。
它也是免费软件,根据BSD许可条款授权-请随意贡献!
用途和用途
它是在gooddata中开发的,以满足单个用例的需要——能够快速方便地检查所有服务和组件是否都是功能完整的集群。 如果您有使用统一通信协议的类似服务,那么这可能很简单。但是,如果您有许多服务和组件,它们是用多种语言编写的,包括java、perl、erlang和python,那么您需要更可定制的方法,因为每种语言都有其特定的测试方法。
例如..如果您有用java编写的服务,可以使用jmx接口来执行测试函数并获得结果。 对于使用rest api的服务,您可能希望调用它的api来获得结果。 当然,您还想测试系统服务。例如,通过执行varnishadm'debug.health'检查Varnish后端运行状况。或者通过运行自定义python插件或shell脚本来检查mongo的配置是否正确。
所有这些测试都会返回不同的东西——您可以从REST API获得JSON响应,从Java服务获得XML,从Python插件或简单的STDUD/STDRR和shell脚本的退出值获得更复杂的数据结构。Smoker服务器将统一所有这些输出,并通过rest api提供结果,这样您就可以通过cli客户端进行连接,找出集群中的错误。
这些测试可以定期执行,也可以在客户要求时执行。 也支持操作-你可以编写自己的操作插件,分析结果,决定并执行一些操作。例如,您可以通过nsca将状态发送到nagios系统。或者在服务不工作时重新启动它。
但是吸烟者可以做更多的事情——如果你想执行任何工作,并以可读的方式看到它的结果,你可以使用它。出于某些目的,它可能比cron更适合。
- 通用用例简而言之:
- 在新部署的系统上执行烟雾测试
- 定期执行检查,将输出发送到监控系统(如Nagios)
- 执行需要注意结果或输出的作业(如cron,它具有存储结果的能力)