声明式HTTP测试库
项目描述
Gabbi
Gabbi是一个运行HTTP测试的工具,请求和响应以基于YAML的声明性形式表示。最简单的测试如下所示
tests: - name: A test GET: /api/resources/id
有关设置请求头和体以及评估响应的许多特性和格式的详细信息,请参阅文档。
Gabbi已在Python 3.7、3.8、3.9、3.10、3.11、3.12和pypy3上进行了测试。
可以使用unittest风格测试运行器、pytest或通过命令行使用gabbi-run脚本运行测试。
存在一个gabbi-demo仓库,它通过其提交历史提供了一个教程。该示例使用gabbi构建了一个简单的API,以促进测试驱动开发。
目的
Gabbi旨在弥合表示HTTP请求和预期响应的人可读YAML文件与基于Python的、面向对象的单元测试领域(类似于unittest模块及其派生模块)之间的差距。
每个YAML文件代表一个按顺序排列的HTTP请求列表以及预期的响应。这使得一个文件可以代表正在测试的API中的一个过程。例如
创建一个资源。
检索一个资源。
删除一个资源。
再次检索一个资源以确认它已删除。
同时,还可以要求gabbi只运行一个请求。如果它在测试序列中,YAML文件中先于它的测试将被运行(按顺序)。在单个过程中,任何测试只运行一次。并发处理确保一个文件在一个进程中运行。
这些功能意味着可以创建对人类(作为改进和开发API的工具)和自动化CI系统都很有用的测试。
测试和开发Gabbi
要开始,在克隆仓库后,您应该安装开发依赖项
$ 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,py37
如果您已安装依赖项(或预热了虚拟环境),您可以手动运行测试并在第一次失败时退出
python -m subunit.run discover -f gabbi | subunit2pyunit
可以通过在tox调用后指定它们来限制测试到单个模块
tox -epep8,py37 -- test_driver test_handlers
如果您希望避免运行连接到互联网主机的测试,将GABBI_SKIP_NETWORK
设置为True
。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。
源分发
构建分发
gabbi-3.0.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ccff4fb5bcacb262b3bf2ccf179d9ac54755b159ad70c498452069df8759f0fc |
|
MD5 | 0b50f3846a3fa9f508c9bb7426cbc61c |
|
BLAKE2b-256 | 4c337f2e417e6610262b7181c46d0ce884df490d92cf9520fc1baefcd68697fe |
gabbi-3.0.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9d6d7c9b03757dc327f0670fed73e7fc05ccf8963bc55301275d4266d1b7b8c9 |
|
MD5 | a155863ed4d9c5ed2b054c46b42623d6 |
|
BLAKE2b-256 | c4334117ba68ebbfb87c8a9d2d2c32f34bce64ad08136cd50e2f77db3ca9c6f6 |