Behat selenium 测试信任自签名 SSL 证书

Behat selenium tests trust self signed SSL cerificate

对于我们的 Drupal 站点的自动化测试,我们使用 Behat 测试脚本。在我们的本地开发机器上,我们使用由 Acquia Devdesktop 创建的自签名 SSL 证书。 运行 使用 Behat 在不同浏览器中的测试没有问题,因为您可以信任浏览器本身的证书。但是,对于没有打开浏览器的 REST 界面,情况就不同了。 Behat 不会接受自签名证书,因为它是 "unsecure".

当 运行 REST 测试时,这是我们得到的错误:

cURL error 60: SSL certificate problem: self signed certificate (see http://curl.haxx.se/libcurl/c/libcurl-errors.html) (GuzzleHttp\Exception\RequestException)

测试用例本身没有问题,因为它在我们启用 SSL 证书之前就可以正常工作。我们尝试使用文档和其他 tickets 中的选项编辑配置 .yml 文件,但没有成功。

有没有办法信任用于 REST 接口测试的自签名证书?如果您需要更多信息,请告诉我。

编辑:添加了 YML 配置和 composer.json 文件

//composer.json
{
      "require": {
              "drupal/drupal-extension": "~3.0",
              "emuse/behat-html-formatter": "dev-master",
              "behatch/contexts": "*",
              "guzzlehttp/guzzle": "dev-master",
              "behat/mink-goutte-driver": "dev-master"
          },
          "config": {
                  "bin-dir": "bin/"
          }
}

注意我从下面的 yml 文件中删除了我的 url。

default:
    suites:
        default:
            contexts:
                - FeatureContextDrupal
                - behatch:browser
                - Drupal\DrupalExtension\Context\MinkContext
                - Drupal\DrupalExtension\Context\DrupalContext
                - Drupal\DrupalExtension\Context\DrushContext
                - Drupal\DrupalExtension\Context\MessageContext
                - behatch:debug
                - behatch:system
                - behatch:json
                - behatch:table
                - behatch:rest
                - behatch:xml
            formatters:
                html:
                    output_path: %paths.base%/build/html/behat
    extensions:
        Sanpi\Behatch\Extension: ~
        emuse\BehatHTMLFormatter\BehatHTMLFormatterExtension:
            name: html
        Behat\MinkExtension:
            goutte:
                guzzle_parameters:
                    verify: false
                    ssl.certificate_authority: false
            selenium2:
                wd_host: http://localhost:4444/wd/hub
            base_url: "https://myurl.devcloud.acquia-sites.com/"
        Drupal\DrupalExtension:
            blackbox: ~
            api_driver: 'drupal'
            drush:
                alias: 'ns-test'
            drupal:
                drupal_root: '/var/www/html/utcfs.dev/docroot'


chrome:
  extensions:
    Behat\MinkExtension:
      selenium2:
        browser: chrome
        capabilities: { "browser": "chrome", "browserName": "chrome", "version": "*", "browserVersion": "*" }

iexplore:
  extensions:
    Behat\MinkExtension:
      selenium2:
        browser: internet explorer
        capabilities: { "browser": "internet explorer", "browserName": "internet explorer", "version": "*", "browserVersion": "*" }

GitHub 上找到我的答案:

对于Behat3/MinkExtension2.2

extensions:
    Behat\MinkExtension:
      base_url: 'https://localhost'
      sessions:
        default:
          goutte:
            guzzle_parameters:
              defaults:
                verify: false

较低版本 (1.x)

  extensions:
    Behat\MinkExtension:
      goutte:
        guzzle_parameters:
          verify: false