“工欲善其事必先利其器”。无论是哪个行业,这都是一句至理名言,软件测试当然也不例外。这也正是分布式测试框架(下文简称DST)设计的初衷。
DST是海量数据项目背景下,为了解决测试集管理、运行、查询和测试执行、控制以及监控、日志数据的收集整理的一个通用型测试与分析平台。这个平台既包含了传统测试框架的特点也包含了自身的开创性思想。作为DST从前端界面到后端服务的亲身经历和开发者,下面我将从技术选型、架构设计、功能点分析、使用场景以及周边支持工具这几个角度来对DST测试平台做一个总结,进一步思考和回顾,以便发现不足和需要改进之处。
--------------------------------------------------------------------------------
第一篇 技术选型
对于一个好的软件来说,技术选型无疑是最重要的一步,这将决定软件是否有良好的扩展性、健壮性、可靠性以及可维护性。对于DST来说,传统的B/S是一个显而易见的架构性选择,那么从前端到后端都需要有良好的Framework以及清晰的技术轨道与之配合。
好的技术选型可以大大缩短开发周期,并提高代码的质量,减少bug产出率,优良的技术往往是具有清晰的结构化框架的,便于追踪问题,以及向其他开发者分享代码。
技术选型贯穿了整个DST的设计与开发始终,并经历了多次回滚调整,最终采用现在的技术轨道并非是一件一帆风顺的事情。下表列举的是DST使用到的相关技术:
名称 | 描述 |
Webx | 基于经典MVC设计模式的WEB框架,构建前端UI的主要骨骼脉络,具有清晰地层次化构造,良好的扩展机制。 |
Velocity | 基于java的模板引擎,允许仅仅简单的使用模板语言(template language)来引用由java代码定义的页面对象。 |
ibatis | 持久层框架包括SQL Maps和Data Access Objects(DAO),是一种“半自动化”的ORM(Object/Relation Mapping)实现。 |
Jeasyui | jQuery Easyui,基于jQuery的前端页面和javascript设计框架,简单且易于上手,封装的AJAX简洁易用。 |
HBase | 一个分布式的、面向列的开源nosql数据库,DST利用其实现海量监控和日志数据的存取。 |
Mysql | 持久化前端以及测试数据。 |
HighCharts | 一套界面美观的纯Javascript图表库。 |
RESTful | REST (REpresentational State Transfer)描述了一个架构样式的网络系统。 |
Ueditor | 一个百度开源的富文本编辑器。 |
AJAX | 交互式网页应用的网页开发技术。 |
SyntaxHighlighter | 高亮显示代码用的Javascript库。 |
Thrift | Facebook开发的一个软件框架,用来进行可扩展且跨语言的服务的开发。 |
Jetty | 开源的servlet容器。 |
其他还有一些例如SimpleTip(浮动标签)、MapReduce(用来做nosql数据的定期备份)等技术,由于涉及不多,不再列举。