Declarative http://testing library

gabbi的Python项目详细描述


https://travis-ci.org/cdent/gabbi.svg?branch=masterDocumentation Status

加比

Release Notes

gabbi是一个运行http测试的工具,其中请求和响应 以声明性的基于yaml的形式表示。最简单的测试 看起来像这样:

tests:
- name: A test
  GET: /api/resources/id

有关的许多功能和格式的详细信息,请参见docs。 设置请求头和正文并评估响应。

gabbi使用python 2.7、3.5、3.6、3.7和pypypy进行测试。

可以使用unittest样式的测试运行程序pytest运行测试 或者使用gabbi-run脚本从命令行执行。

有一个gabbi-demo存储库,它通过 它的承诺历史。演示使用gabbi构建一个简单的api 促进测试驱动的开发。

目的

gabbi致力于弥合人类可读的yaml文件之间的鸿沟 表示http请求和预期响应以及 基于python的、面向对象的unittest风格的单元测试 模及其衍生物。

每个yaml文件都表示http请求的有序列表,以及 预期的反应。这允许单个文件表示 正在测试的API中的进程。例如:

  • 创建资源。
  • 检索资源。
  • 删除资源。
  • 再次检索资源以确认它已消失。

同时,仍然可以让加比只跑一个 请求。如果它是在一系列的测试中,在它之前的那些测试 将按顺序运行yaml文件。在任何单一过程中任何测试 只运行一次。处理并发时,一个文件 在一个进程中运行。

这些特性意味着可以创建 对两个人都有用(作为改进和开发api的工具) 以及自动化的ci系统。

测试和开发gabbi

要开始,在克隆repository之后,您应该安装 开发依赖性:

$ pip install -r requirements-dev.txt

如果您希望保持隔离,可以创建一个虚拟 环境:

$ virtualenv gabbi-venv
$ . gabbi-venv/bin/activate
$ pip install -r requirements-dev.txt

GABBI将使用tox(通过 requirements-dev.txt)。运行内置测试(yaml文件 在目录gabbi/tests/gabbits_*中并由文件加载 gabbi/test_*.py,您可以调用tox

tox -epep8,py27,py34

如果安装了依赖项(或预热了 可以手动运行测试并在第一次退出 失败:

python -m subunit.run discover -f gabbi | subunit2pyunit

测试可以通过指定单个模块来限制 毒物调用后:

tox -epep8,py27,py34 -- test_driver test_handlers

如果您希望避免运行连接到Internet主机的测试, 将GABBI_SKIP_NETWORK设置为True

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java提高机器学习Rest服务性能   java反转字符的字符串顺序,并使用构造函数将其放入LinkedList   继承为什么Java不支持在方法签名中添加“throws”?   执行DDL alter table if exists任务时发生java错误。城市   java在eclipse中使用CREATETXT并打包在jar中   java AES256与3DES 256密钥检测   具有两个相同类型字段的java JPA实体   java Webapp日志记录设置被忽略   java KeyEventDispatcher可以在一个应用程序中工作,但不能在另一个应用程序中工作   带有Swing和OpenJDK的java PinchZoom   未涉及java AspectJ注释切入点(对于任何注释类型)   java如何在FuseBAI中获取日志文件详细信息   java在Linux上将wstring转换为jstring