teaandcode/behat-guzzle-extension

使用 Guzzle 服务描述进行功能测试 API 端点的 Behat API 扩展

安装数: 17,671

依赖者: 0

建议者: 0

安全性: 0

星标: 10

关注者: 3

分支: 10

开放问题: 5

类型:behat-extension

v0.4.2 2017-06-22 10:16 UTC

README

Build Status

Scrutinizer Code Quality Code Coverage Build Status

Join the chat at https://gitter.im/teaandcode/behat-guzzle-extension

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_urlservice_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。

贡献者