什么是框架?
框架(Framework)是整个或部分系统的可重用设计,
框架是用来解决代码的组织及运行控制问题的。
在我们编写自动化脚本的时候,经常需要读取配置文件,读取数据文件,发送请求,记录日志,连接并对比数据库数据。每个脚本里都重写一遍各种方法不仅工作量大而且易错。所以我们需要把公共的方法提取出来,封装成单独的模块,放到公用方法包里。另外配置文件,数据文件,日志等我们也需要分类存到不同的文件夹下。这种对公共方法的封装及对脚本及配置文件怎么组织的设计就叫做框架。
同时,一般框架除了完成对代码及配置文件的组织之外还要提供运行的控制功能。比如批量执行,分模块执行,生成报告,异常处理等等。
总结为以下3点:
封装公共方法
代码及配置文件的组织
执行控制
什么是测试框架?
一个完整的测试脚本(用例)一般包含以下几个步骤:
环境准备或检查
执行业务操作
断言结果
清理环境
而测试框架一般还要完成用例加载,批量执行,异常控制,结果输出等功能。基础的测试框架一般只提供执行控制方面的功能。
测试框架应具有的特点
易用性:编写用例,执行用例,生成报告及定位问题方便
健壮性:稳定,比如timeout机制等
扩展性:插件
灵活性:用例组织或执行的灵活性,Fixture功能(不同范围的setUp和tearDown)等
定制性:二次开发方便
unittest,pytest,nose,robot framework简介
unittest: Python自带,最基础的单元测试框架
nose: 基于unittest开发,易用性好,有许多插件
pytest: 同样基于unittest开发,易用性好,信息更详细,插件众多
robot framework:一款基于Python语言的关键字驱动测试框架,有界面,功能完善,自带报告及log清晰美观
总结:总体来说,unittest比较基础,二次开发方便,适合高手使用;pytest/nose更加方便快捷,效率更高,适合小白及追求效率的公司;robot framework由于有界面及美观的报告,易用性更好,灵活性及可定制性略差。