teaandcode / behat-guzzle-extension
使用 Guzzle 服务描述进行功能测试 API 端点的 Behat API 扩展
Requires
- php: >=5.3.3
- behat/behat: ~3.0,>=3.0.5
- guzzle/guzzle: >=3.5
- symfony/config: >=2.2 <3.3
Requires (Dev)
- henrikbjorn/phpspec-code-coverage: ~0.2
- phpspec/phpspec: ~2.0
This package is not auto-updated.
Last update: 2024-09-14 17:53:31 UTC
README
Guzzle 扩展 Behat 是 Behat 3.0+ 和 Guzzle 3.5+ 之间的集成层,它提供
- 为 Behat 提供额外的服务(
Guzzle
)。 Behat\GuzzleExtension\Context\GuzzleAwareContext
,它为您的上下文提供Guzzle
实例。- 基于
Behat\GuzzleExtension\Context\GuzzleContext
的上下文,它为您的上下文或子上下文提供基础步骤定义和钩子。或者它甚至可以作为上下文本身使用。
安装
使用 Composer (dev) 将其添加到您的项目中
php composer.phar require --dev teaandcode/behat-guzzle-extension
配置
该扩展设计为需要非常少的配置,它仅需要的两个字段是 base_url
和 service_descriptions
文件位置。
base_url
是包含您要为其实施测试的 API 的主机名或 IP 地址的根 URL,只需确保它是一个完全限定的 URL(尾部斜杠不是必需的),例如 http://127.0.0.1
service_descriptions
文件位置是必需的,因为该扩展旨在使用 Guzzle 服务描述文件,这意味着您要测试的所有端点和相关字段都应该在文件中以 JSON 格式列出,以便扩展能够工作。
如果您想了解更多关于如何使用 Guzzle 服务描述 文件的信息,请点击此处提供的链接,或查看以下示例 Guzzle 服务描述文件摘录。
behat.yml 中的示例配置
default: extensions: Behat\GuzzleExtension: base_url: http://127.0.0.1 service_descriptions: %paths.base%/app/config/service.json suites: default: contexts: - Behat\GuzzleExtension\Context\GuzzleContext: users: test.user.1: B8E...1AF test.user.2: A6B...8E6
示例 Guzzle 服务描述文件
{ "name": "Travis API", "operations": { "GetReposBuilds": { "httpMethod": "GET", "uri": "repos/{slug}/builds", "summary": "Gets the last build for repo", "parameters": { "slug": { "location": "uri", "description": "Repo slug from GitHub", "required": true }, "number": { "location": "query" } } } } }
进一步配置
如您在上述示例配置中看到的那样,您可以将与 HTTP 标头授权 Bearer 令牌相关联的用户名或电子邮件地址列表传递给 GuzzleContext,这意味着您能够测试 API 的安全部分。只需在 behat.yml 文件中指定如上所示的 GuzzleContext,并提供一个使用用户名/电子邮件地址作为键、Bearer 令牌作为值的用户数组。
预定义步骤
待办事项:在此期间,请检查 features 目录中的 repo.feature 文件以及 src/Behat/GuzzleExtension/Context 目录中 GuzzleContext.php 文件中每个方法上方的 docblocks。
待办事项
- 添加文档
- 添加语言支持
版权
版权所有 (c) 2015 Dave Nash(knasher)。有关详细信息,请参阅 LICENSE。
贡献者
- Dave Nash knasher [主要开发者]
- 其他 [出色的开发者] (https://github.com/teaandcode/behat-guzzle-extension/graphs/contributors)