一. 为何需要软件自动化测试框架
软件测试框架是软件测试自动化规模发展到一定阶段的必然需求,因为自
动化测试将会面临如下问题:
1. 如何定义脚本的规范,使之具有良好的可复用性和可维护性。
2. 众多脚本的管理问题,如何管理不同版本的测试脚本以及测试脚本之间
的关联关系。
3. 众多脚本的执行问题,如何无人值守地执行测试脚本,以节约测试时间
4. 如何获得最大的自动化测试收益,怎样调整测试策略来达到最高的automation效益。
目前在微软,IBM等自动化测试比较成熟的公司,都已经实现并应用了软件自动化测试框架。可以说,框架是自动化测试的趋势。
二.软件自动化测试框架架构思想
其实MS也好,IBM也好,自动化测试框架虽然形式各有不同,但思想却大同小异。总体来说,成熟的自动化测试框架必须提供以下几个功能:
1. controller-agent的拓扑结构。此点最妙之处是扩展性极强,在空间上能够兼容各种类型测试程序及脚本,在时间上能够并发执行测试任务。
2. 内嵌灵活的自动化测试案例的管理策略。此处可根据企业实际具体应用定义相应的测试组件
3. 强大的测试报告和日志展现。一份好的自动化测试报告能满足不同人的口味和需要,比如给老板以清晰直观的测试图表分析;给开发人员以强大的日志debug分析;给测试人员以bug自动关联作用。
下面以automation center为例,分析一下自动化测试框架的设计

展现层:
给终端用户提供基于Web页面的四大功能模块
· 测试任务
发起安装/测试任务,并对任务状态进行实时监控
· 测试结果
展现测试结果,生成测试报告,邮件通知,提交bug全程自动化
· 日志分析
SMB协议访问日志服务器,轻松获得automation执行时的日志和抓图
· AC管理
脚本管理策略
测试组件策略
测试实例生成
Agent 资源管理,添加/删除
Server资源管理,添加/删除
AC核心设置
控制层:
controller是AC核心,负责如下工作
· 接收并处理用户发送的任务请求
· 管理和控制安装/测试Agent
· 分析和整理测试结果
· 内嵌测试报表/邮件逻辑
· 连接数据库,日志服务器和脚本服务器
Agent层:
Agent 安装在任务机上,负责:
· 执行安装任务
· 执行测试任务
· 生成log/抓图数据,供后续分析
框架应用策略
1. 自动化测试框架是代码,流程,策略的集合(这句话已经耳熟能详了,但能深刻理解并能成功地用到工作实践中却不容易)
2. 当你有超过10个自动化测试案例时,就应该开始考虑自动化测试框架的实施了(规范,管理,执行策略等等)
3. 实现框架的语言以编译语言为优先选择(我看过用vbscrīpt编写的上万行的框架代码,惨不忍睹,维护和扩展那是相当滴困难)
4. 在设计时,框架和案例要分工清楚明确(框架,纲举目张也,不宜管得太多太细,否则案例丧失了灵活性,框架推广起来就步履维艰了,嘿嘿)