python测试框架&&数据生成&&工具最全资源汇总-程序员宅基地

技术标签: ui  操作系统  移动开发  

xUnit frameworks 单元测试框架

  • frameworks 框架
    • unittest - python自带的单元测试库,开箱即用
    • unittest2 - 加强版的单元测试框架,适用于Python 2.7以及后续版本
    • pytest - 成熟且功能强大的单元测试框架
    • plugincompat - pytest的执行及兼容性插件
    • nosetests - 让python测试更容易一点
    • slash - python实现的单元测试框架

 

  • extensions 扩展
    • proboscis - 仿TestNG扩展了unittest模块以及Nose的功能
    • grail - 可以让你一步一步编写测试用例的库
    • testify - 单元测试框架,提供了加强型fixture,用例切割并行运行,testrunner高亮及详尽的log和report功能
    • trial - unittest模块的扩展,提供了命令行的testrunner工具以及代码覆盖率的整合,跟nose差不多
    • subunit - 提供了unittest在另一个进程执行用例并汇总测试数据的能力
    • testresources - 提供了多用例间管理测试数据的机制,兼容unittest
    • testtools - 为Twisted和Bazaar提供的unittest扩展
    • Sancho - 运行用例,并为失败的用例提供报告,但仅限于此
    • zope.testing - testrunner,提供了不错的debuge能力,并且集成了代码覆盖率。可以跟zope项目使用,也可以用在非zope项目上
    • pythoscope - 自动或半自动为遗留的python系统创建测试用例的工具
    • testlib - 更强大的unittest,更多的断言,支持module级的setup/teardown,skip test等...
    • dutest - An object oriented interface to retrieve unittest test cases out of doctests. Hides initialization from doctests by allowing setUp and tearDown for each interactive example. Allows control over all the options provided by doctest. Specialized classes allow selective test discovery across a package hierarchy.
    • green - Green是一个简洁多彩的testrunner,跟nose很像
    • ddt - 让unittest 支持 Data-Driven
    • pytractor Selenium python bindings的扩展. 目的是让angular项目的测试更简单

 

TDD ATDD BDD 测试框架

 

  • Assertions 断言
    • pyshould - 基于pyhamcrest的Should style断言
    • pyhamcrest - python版的Hamcrest matchers
    • sure -python实现的测试库,提供了强大灵活的断言
    • assertpy - 巨简单的python单元测试断言库,提供了优雅流利的API. 支持Python 2 和 3.

 

  • Mocking
    • mock - python实现的Mocking和Patching库
    • Ludibrio - 用python实现的优雅的test doubles框架(mocks, stubs, spy, and dummies).
    • responses - mock请求的 Python测试工具库
    • doublex - 强大的 test doubles 框架
    • freezegun - 通过mocking datetime模块实现时光穿梭
    • httpretty - HTTP请求的mock工具
    • httmock - requests的mock工具,支持Python 2.6+ and 3.2+.
    • pretenders - 测试用的fake server
    • mock-server - 简单的mock sever,支持REST and XML-RPC API,还有基于tornado的管理界面
    • VCR.py - 自动 mock HTTP 交互 让测试更简单快速

Test Data manipulation 测试数据的操作和处理

Code analysis 代码扫描及分析

  • pysonar2 - 类型推断

  • coverage - 覆盖率
  • pycallgraph - 流程可视化
  • Flake8 - The modular source code checker: pep8, pyflakes and co.
  • pylama - Python and JavaScript的代码审查工具
  • Pylint - 源代码分析器
  • hacking - OpenStack Hacking Style Checks (flake8 plugins).
  • prospector - 代码分析工具,可以输出错误信息,潜在问题,不规范的代码以及代码复杂度

Web UI test automation Web UI 自动化

  • libraries 各种库
    • selenium webdriver - 浏览器自动化工具
    • splinter - 简单的web自动化工具,让元素定位,表单提交等更加容易
    • mechanize - 有状态可编程的浏览器

 

 

frameworks and wrappers 框架和封装

 

  • py.saunter - 有主见的自动化测试框架,使用了selenium RC和webdriver api
  • moz-web-qa - py.test的插件,为Mozilla的WebQA项目提供了额外功能
  • testutils sst - A web test framework that uses Python to generate functional browser-based tests.
  • wtframework - 让web测试可以配置的框架
  • holmium.core - Page Object及其他工具库支持
  • robotframework-selenium2library - Robot Framework的selenium扩展
  • gocept.selenium - selenium RC的API, 适合编写基于WSGI, Plone, Zope 2, ZTK, or Grok 应用的测试用例
  • webium - 基于python的一个Page Object实现
  • robotframework-anywherelibrary - Robot Framework的扩展库,使用selenium2测试web应用,使用appium测试移动应用
  • robotframework-pageobjects - 一个不错的Page Object实现,可以脱离robot framework单独使用。 具体看这里
  • elementium - 用jQuery风格的语法糖来实现浏览器的自动化测试用例
  • slickqa - slick-webdriver-python 项目是python selenium binding的一个封装
  • selene - Concise UI 测试用例,使用python实现支持Ajax,PageObjects和Widgets
  • hitch - 编写基于service的应用的测试用例
  • Needle - Needle是基于图片比对的测试工作,它可以对web应用的一部分进行截图,然后跟预期结果的图片进行比对
  • PyPOM - PyPOM是另一个Page Object库,适用于Selenium和Splinter测试
  • POM - POM是Page-Object-Model 微框架,目的是让Web UI测试更加简单,快速和有乐趣
  • websmith - Web测试的一套DSL
  • pages - 轻量的page object库和组建
  • widgetastic - RedHat UI widget 组建框架
  • navmazing - PageObjects based navigation from RedHat
  • nightwatch - 基于python和selenium的UI 自动化测试框架. 灵感来源于nightwatch.js

 

  • extensions 扩展
    • webdriver_manager - 主要目的是让不同版本的浏览器driver管理起来更加方便
    • pytest_splinter - pytest spinter 和 selenium的集成
    • lettuce_webdriver - Selenium webdriver 的 lettuce封装
    • Browsermob Proxy - python的Browsermob Proxy封装
    • FireRobot - 一个Firefox的扩展,让你可以更高效的编写基于robot framework的selenium用例
    • pytractor - Python的selenium扩展,以便更好的测试angular.js应用
    • Selenium-Requests - 扩展 Selenium WebDriver类,包含了Requests库的一些功能,可以更方便的处理cookie和请求头
    • selenium-respectful - selenium的封装,可以并行访问站点

 

Mobile test automation 移动端自动化测试工具

  • appium - 开源的自动化测试框架,可以测试native/hybrid/mobile web应用。核心是基于webdriver协议进行了扩展
  • Winium.StoreApps - 开源的自动化测试用具,用来测试Windows Store应用,实现了Selenium Remote WebDriver
  • robotframework-androidlibrary - Robot Framework用来测试android应用的扩展库
  • robotframework-appiumlibrary - appium的RobotFramework扩展
  • robotframework-ioslibrary -Robot的ios测试扩展库
  • uiautomator - Android uiautomator的python封装, 支持 Android 4.1+
  • ATX - 智能机自动化测试工具. 支持 iOS, Android, WebApp 和游戏

 

Windows UI test automation Windows的UI测试工具

  • Winium.Desktop - 测试Windows应用(主要是基于WinForms和WPF平台)的自动化测试工具. 实现了Selenium Remote WebDriver协议
  • PyAutoGUI - 跨平台的GUI测试工具,支持通过python脚本控制键盘和鼠标
  • robotframework-autoitlibrary - Robot Framework的windows GUI测试扩展
  • autopy - 简单跨平台的GUI测试工具集
  • UISoup - 支持windows和MacOS平台的UI自动化(仅工作在x86平台)
  • pywinauto - 非常有python面向对象风格的GUI测试库,现已支持64位机器以及py2和py3
  • SikuliX - 基于OpenCV的 GUI 测试框架, 使用图片识别技术,支持python2.7

 

Unix \ Linux UI test automation

  • ldtp - 跨平台的linux GUI测试项目
  • fMBT - 支持多平台的python GUI测试库
  • SikuliX - 基于OpenCV的 GUI 测试框架, 使用图片识别技术,支持python2.7

 

MacOS UI test automation MacOS UI自动化测试工具

  • ATOMac - 通过Apple Accessibility API来测试Mac应用的python库
  • PyAutoGUI - 跨平台的GUI测试工具,支持通过python脚本控制键盘和鼠标
  • SikuliX - 基于OpenCV的 GUI 测试框架, 使用图片识别技术,支持python2.7

REST API Testing REST API测试

  • Rester - 测试RESTful API的框架

  • pyresttest - REST以及API microbenchmarking工具

  • siesta - Python REST 客户端

Virtual environments 虚拟环境

  • virtualenv - 创建隔离的python开发环境的工具

  • virtualenvwrapper - virtualenv的一些扩展

  • tox - 虚拟环境管理,可以在不同的python版本上进行测试和截图

  • pew - 一些管理虚拟环境的工具

  • Vex - 在命名的虚拟环境运行命令

  • PyRun - 单文件无需按照的python版本

  • pyenv - 简单的python版本管理

  • Tapper - all-embracing test infrastructure.

Performance & stress & load 性能测试

  • Multi-Mechanize - 开源的性能测试框架

  • locust - 可扩展的python性能测试工具

  • Yandex.Tank - 性能及benchmark工具

  • pytest-benchmark - py.test的benchmark工具

  • Airspeed Velocity - 简单的Python benchmarking工具自带基于web的报告

  • The Grinder - 支持分布式的负载测试框架. 包含一些常规用例,比如 HTTP web servers, SOAP and REST web services, 和 application servers (CORBA, RMI, JMS, EJBs),以及定制化的协议. 测试脚本使用Jython和Clojure实现

  • Tsung - 开源,支持多协议的分布式性能测试工具. 可以测试 HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP 和 Jabber/XMPP 服务

  • taurus - 自动化友好的持续测试工具

Security checking 安全扫描

  • sparta - 支持gui的网络扫描工具

  • OWASP ZAP - 用python实现的OWASP ZAP-features API

  • pythem - pythem是多用途的安全测试工具

转载于:https://www.cnblogs.com/duxf100/p/10251155.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/diananqiang3216/article/details/101240871

智能推荐

python爬取安居客房屋价格用地图表示出来_pyqt房价地图-程序员宅基地

文章浏览阅读1.5k次,点赞4次,收藏18次。1. 房屋价格地图1.1 项目思路主要分成三个步骤首先利用python爬取安居客网站上个区的房屋价格,并把房屋所在小区进行归类,求出小区均价。然后利用百度地图api中的地理编码,我们可以获取小区所在的经纬度,注意这里不是所有小区都能准确获取的,存在一定数量的小区无法获取精确的地理坐标。最后利用BDP线上分析可以绘制出如下小区均价地图。效果如下:1.2 项目目录get_data:用于python爬取安居客房屋价格并整理get_lnglat:用于百度地图api中地理编码,获取小区的经纬_pyqt房价地图

2008年专转本计算机试卷解,2005-2008年专转本计算机真题及答案-程序员宅基地

文章浏览阅读583次。A. 在窗口中显示所有文件的属性 B. 一次打开多个文件C. 一次复制或移动多个不连续的文件 D. 一次删除多个不连续的文件 E. 不按任何键,直接拖动鼠标在不同磁盘之间移动文件 5. 关于Windows系统下的中文输入,描述正确的有。 A. 按[Ctrl+Space]组合键,不可进行中英文输入的切换 B. 按[Ctrl+Shift]组合键,可进行中文输入的切换 C..._15.windows操作系统为方便用户操作,提供了一些系统默认的组合键,如ctrl+a、ctrl+v

mysql int多长 int(1)类型的值范围是多少呢_mysqlint的取值范围 代表显示-程序员宅基地

文章浏览阅读3.1k次。int(n)中不论n指定为多少,范围都一样-2~31~2^31-1,都能插入9位数字。n只是用来控制显示而已,如果为int(4),插入一个1,显示时也会用空格补齐到4个字节请问所有mysql中的数据类型中的(n)都是表示显示位数吗?并非如此,NUMERIC(4)就限定了取值范围,超过4位就不允许写入了。因此如果你想限定数字的取值范围,最好是用NUMERIC来定义。在MySQL的数据类型中,Tinyint的取值范围是:带符号的范围是-128到127。无符号的范围是0到255(见官方《MySQL_mysqlint的取值范围 代表显示

池州学院大一计算机基础试题,微机份问题的计算机求解_池州学院:数学分析_ppt_大学课件预览_高等教育资讯网...-程序员宅基地

文章浏览阅读163次。《数学分析》实验课第二部分微积分问题的计算机求解《数学分析》实验课前言? Newton 和 Leibnitz 创立的微积分学是很多科学科学的基础,本课程将借助MATLAB 语言的符号运算工具箱可以直接对微积分学中最常见的问题,如单变量与多变量微积分、极限、级数求和、Taylor幂级数展开,Fourier 级数展开等问题直接求解。《数学分析》实验课目录? Matlab符号工具箱简介? 极限问题? 导..._matlab 池州学院

【工控老马】详解OPC协议-工业控制和自动化领域的接口标准_opc接口-程序员宅基地

文章浏览阅读2.6k次,点赞4次,收藏10次。OPC全称是OLE for Process Control,即用于过程控制的OLE,是针对现场控制系统的一个工业标准接口,是工业控制和生产自动化领域中使用的硬件和软件的接口标准。基于微软的OLE(现在的Active X)、COM (部件对象模型)和DCOM (分布式部件对象模型)技术,OPC包括自动化应用中使用的一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。提供工业自动化系统中独立单元之间标准化的互联互通,顺应了自动化系统向开放、互操作、网络化、标准化方向发展的趋势。OPC规范OPC规_opc接口

线程共享所带来的问题_线程共享问题-程序员宅基地

文章浏览阅读130次。假设两个线程共享一个计数变量,线程1对计数变量自增5000,线程2对计数变量自减5000,最终的结果是0吗?不一定,会发生线程不安全问题。import lombok.extern.slf4j.Slf4j;@Slf4jpublic class Test共享问题 { private static int count = 0; public static void main(String[] args) throws InterruptedException { Th_线程共享问题

随便推点

二叉树的构造、非递归遍历、查找叶子节点【Java实现】_java 树形结构找出次叶子节点-程序员宅基地

文章浏览阅读3.3k次,点赞3次,收藏9次。二叉树的构造方法不一,这里根据存储结点次序的数字关系来构造父节点和孩子结点的关系(parentIndex*2+1==leftChildIndex,parentIndex*2+2==leftRightIndex),关于二叉树非递归遍历的详细介绍请看 二叉树的建立与遍历,下面程序还实现了查找叶子节点、查找某一元素是否存在的功能。import java.util.LinkedList;impor..._java 树形结构找出次叶子节点

微信小程序云开发-初学者 开通云开发、创建环境_开通云开发、创建环境,给出截图-程序员宅基地

文章浏览阅读1.8k次。微信小程序云开发文档新建云开发模板新建项目选择一个空目录,填入 AppID,勾选创建 “云开发 QuickStart 项目”,点击创建即可得到一个展示云开发基础能力的示例小程序。开通云开发、创建环境在使用云开发能力之前需要先开通云开发。在开发者工具工具栏左侧,点击 “云开发” 按钮即可打开云控制台体验小程序查看控制台以上小程序开发文档都有..._开通云开发、创建环境,给出截图

入会领京豆Python脚本_移动端领京豆脚本python-程序员宅基地

文章浏览阅读5.7k次,点赞4次,收藏29次。京东入会领京豆Python脚本代码地址:<AntonVanke/JDBrandMember: 京东自动入会获取京豆 (github.com)>_移动端领京豆脚本python

页框回收算法(PFRA)——2_bypfra-程序员宅基地

文章浏览阅读455次。页框回收中的反向映射PFRA的目的之一就是能释放共享页框,为了达到这个目的Linux2.6内核能够快速定位指向同一页框的所有页表项,这个过程就叫做反向映射。反向映射简单来说就是在页描述符中加入附加字段,这样就把某个页描述符它所确定的页框对应的全部页表项联接起来,但是这样的话一旦对该链表更新会有很大的开销。所有就有一种成熟的技术出现,Linux2.6就有叫做面向对象的反向映射的技术。实际上对于任何可以回收的用户态页面,内核保留系统中该页所在所有线性区(对象)的反向链接,每个线性区描述符存放一个指针指向一个_bypfra

JS_js数据导出excel文件_js 读取 .po文件 msgstr的值为空,就把msgstr对应的msgid,导出为xlsx文件-程序员宅基地

文章浏览阅读142次。<html> <head> <div>以Table格式导为xls文件 <button onclick='TableToExcel()'>导出</button></div> <div>导出CSV文件 <button onclick='toCSV()'>导出</button></div> <div>大量数据导出CSV <button oncli_js 读取 .po文件 msgstr的值为空,就把msgstr对应的msgid,导出为xlsx文件

如何创建一个镜像_创建镜像jx,请将代码写出来(或操作流程)-程序员宅基地

文章浏览阅读1.3k次。思路:基于官方下载的镜像,进行编辑步骤1:下载镜像docker pull或docker load&lt;hello-nginx.tar步骤2:运行镜像,得到容器docker run -d --name=容器名称 镜像名称步骤3:使用终端连接容器docker exec -it 容器名称 /bin/bash步骤4:在容器中运行命令,安装需要的软件 echo ‘hello’&gt;hello.t..._创建镜像jx,请将代码写出来(或操作流程)