Python下那些让人相见恨晚的自动化测试库
Unittest- Python原生自动化测试库
Unittest原名是PyUnit、是由java的JUnit衍生而来、对于单元测试、需要预先设置条件、然后对比预期结果和实际测试结果。
unittest库:提供了test cases, test suites, test fixtures,test runner:
test case :通过继承TestCase类,我们可以创建一个test,或者一组tests
test suites : 测试套件
test fixtures : setup + test case + teardown结构
test runner
Pytest- 一个成熟的全功能 Python 测试工具:
与Python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。根据Pytest的官方网站介绍,它具有如下特点:
非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考
能够支持简单的单元测试和复杂的功能测试
支持参数化
执行测试过程中可以将某些测试跳过,或者对某些预期失败的case标记成失败
支持重复执行失败的case
支持运行由nose, unittest编写的测试case
具有很多第三方插件,并且可以自定义扩展
方便的和持续集成工具集成
Robot Framework – 一个通用的自动化测试框架。
Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发
测试用例使用文本文件(TXT或者TSV文件)保存,使用制表符分隔数据。
可以方便的使用任何文本编辑器,或者EXCEL编辑测试用例。
可以使用HTML格式创建用例。
测试用例中支持变量使用,可以使用IF语句和FOR循环语句。
可以利用“标签”功能对测试用例进行分类和有选择执行。
支持关键字驱动、数据驱动和行为驱动。
利用已有的关键字,测试人员可以创建自己需要的关键字,形成更高级别的行为。
测试执行报告和日志是HTML格式,容易阅读。
PyAutoGUI – PyAutoGUI 是一个人性化的跨平台 GUI 自动测试模块;
PyAutoGUI是用Python写的一个模块,使用它可以控制鼠标和键盘。利用它可以实现自动化任务,只要你人工能操作的都可以用PyAutoGui来完成自动化。
PyAutoGUI
可以模拟鼠标的移动、点击、拖拽
可以键盘按键输入、按住操作,以及鼠标+键盘的热键同时按住
可以识别图片、通过图片来识别GUI上的按钮位置并做出相应的操作
Selenium – Selenium WebDriver 的 Python 绑定;
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE,Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。
框架底层使用JavaScript模拟真实用户对浏览器进行操作。
测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作、就像真实用户所做的一样。
使浏览器兼容性测试自动化成为可能,尽管在不同的浏览器上依然有细微的差别。
使用简单,可使用Java,Python等多种语言编写用例脚本。