自动化测试解决方案
前言
如果没有用到自动化测试,显得那么不与时俱进,但引入自动化测试,却是一件不是那么容易的事,在引入自动化测试后,可能需要面临一些问题,包括但不限于以下几点:
1, 具备脚本开发的测试人员少
2, 培训成本大,但成效不明显
3, 面临工具及开发技术的选择
4, UI,需求,功能发生变化后,基于UI的脚本维护大非常大
5, 线性脚本造成海量脚本,开发及维护工作量大
6, 没有自己的测试框,扩展性及移植性差
那么如果解决这些问题,有没有成功案例可借鉴呢,如何设计开发一套自动化测试平台或框架才能在测试团队快速高效的推广使用起来呢。基于个人经验,大概一套比较好的平台或框架需要以下这些必要的基础功能模块:
1, 一套框架管理多个被测系统,而不是为多个项目设计多个框架
这样做可以避免不同的项目系统采用的自动化测试技术不同,而造成技术成本。
2, 自动提交缺陷到缺陷管理系统
3, 连接被测系统的数据库,以方便做数据验证
4, 测试脚本与测试用例(数据)分离
测试用例可以独立完成(如果有专职设计测试用例,将会有更高的覆盖率)
5, 高复用性测试脚本
这可能包括两个部分,既然可以管理多个被测系统,那么每个被测系统具有独立的共享类和方法,而平台框架本身有自己的核心模块,也有提供给每个被测系统共享的类和方法。
6, 易维护性脚本
特别是基于UI的脚本,更是要将UI操作封装设计,这样可以最大限度减少UI变化引起的维护量,而测试脚本可以更关注于业务逻辑,而不是UI元素操作。
7, 一目了然的测试报告
管理人员可能希望看到某次测试的结果是测试了多少个用例场景,通过多少个,不通过多少个,通过率多少等这些数据。而测试人员或开发人员看到报错截图外,希望可以快速定位到当时的测试场景和数据,以便分析具体的问题。
2009年时设计开发了一套基于QTP的数据驱动框架:
框架从AutoTest.exe启动QTP工具,先首运行SystemTesting,SystemTesting是主Action,称为测试启动,用来管控整体测试,SystemTesting做了几个事情:
1,加载架框测试组件(框架组件是框架运行必要的,即公共方法)
2,加载业务组件(业务组件是用户自定义的,与被测系统相关的公共方法)
3,检测并连接数据库(包括缺陷数据库及被测系统的业务数据库)
4,检测并启动浏览器
5, 调用主函数T_main(所有的测试脚本都是通过主函数运行)
6, 统计测试脚本场景通过率
7, 生成测试报告
前7个步骤都是框架本身做的事,以下则是被测系统开发脚本做的事
7,加载测试用例数据,并运行测试脚本
所以测试人员(脚本开发人员)可以更关注与业务脚本的开发和测试数据的设计,其它的交给框架完成。
此框架不支持对象仓库,只支持描述性编程的测试脚本,所以使用此框架需要对vbscript有所了解。于由其培训成本和使用成本较低,该框架在我所在的公司中实际应用多年并应用于多个项目中且效果不错。
框架下载地址:AutoTestFrame.zip
在2018年时开始学习开源的东西,随后根据上面的设计思路,用python+selenium重新设计开发一套开源的框架。支持selenium和splinter,可能大家对selenium比较熟悉,对splinter比较陌生,splinter是基于selenium二次封装的,使其API接口更简单化,开发的脚本更加精简框架的入口,即启动测试放在StartTest.py中,该文件导入BaseClass目录的baseclass.py 模块,控制整个测试流程的执行。
baseclass.py作为框架的公共方法模块,读取框架配置文件和被测试项目的配置文件,读取测试用例数据,提交缺陷,操作被测试项目数据库,生成报告和发送邮件等。
Conf目录保存框架的配置文件:
TestConf.ini主要记录被测试项目,根据此记录的项目名称找到TestProject目录中的项目,BugDataBase.ini记录缺陷数据库信息。
TestProject目录可同时存放多个项目,每个项目包含四个目录及其文件,当你创建新的项目时,请拷贝conf和class目录到新的项目目录中并修改。
conf目录保存被测试项目配置信息,ProjectDataBase.ini保存项目数据库信息,ProjectTestConf.ini保存测试地址,浏览器等,ProjectScriptConf.ini保存要执行的脚本信息。
class目录是项目公共方法,可被该项目所有脚本调用,文件名一定要与项目名一致。
script目录保存测试脚本,直接调用baseclass.py框架方法,也可调用本项目的公共方法。
data目录保存测试用例数据,采用excel表格保存数据。
框架还存在许多可以改进和完善的地方,基于python开源的这套,可以尽情的发辉你的表演,基于QTP的,虽然是商业工具,但设计中都是在vbscript实现,完全可以支撑扩展,发辉你的想象吧。
框架下载地址:AutoTestFrame
该文章对你有帮助吗,求分享转发: 分享到QQ空间 分享给QQ好友