python自动化测试框架选择
什么是框架?
框架(Framework)是整个或部分系统的可重用设计,
框架是用来解决代码的组织及运行控制问题的。
在我们编写自动化脚本的时候,经常需要读取配置文件,读取数据文件,发送请求,记录日志,连接并对比数据库数据。每个脚本里都重写一遍各种方法不仅工作量大而且易错。所以我们需要把公共的方法提取出来,封装成单独的模块,放到公用方法包里。另外配置文件,数据文件,日志等我们也需要分类存到不同的文件夹下。这种对公共方法的封装及对脚本及配置文件怎么组织的设计就叫做框架。
同时,一般框架除了完成对代码及配置文件的组织之外还要提供运行的控制功能。比如批量执行,分模块执行,生成报告,异常处理等等。
总结为以下3点:
- 封装公共方法
- 代码及配置文件的组织
- 执行控制
什么是测试框架?
一个完整的测试脚本(用例)一般包含以下几个步骤:
- 环境准备或检查
- 执行业务操作
- 断言结果
- 清理环境
而测试框架一般还要完成用例加载,批量执行,异常控制,结果输出等功能。基础的测试框架一般只提供执行控制方面的功能。
测试框架应具有的特点
- 易用性:编写用例,执行用例,生成报告及定位问题方便
- 健壮性:稳定,比如timeout机制等
- 扩展性:插件
- 灵活性:用例组织或执行的灵活性,Fixture功能(不同范围的setUp和tearDown)等
- 定制性:二次开发方便
框架介绍
pytest
pytest是一款强大的python测试工具,它具有易于上手,功能强大,第三方插件丰富,效率高,可扩展性好,兼容性强等特点,实际上,越来越多的项目开始放弃unittest和nose以及robot framework ,转而使用pytest,比如Mozilla和Dropbox.因为pytest可以提供更丰富功能,包括assert重写,第三方插件,以及其他测试工具无法比拟的fi