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

问题描述 投票:0回答:1

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

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

cURL 错误 60:SSL 证书问题:自签名证书(请参阅 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": "*" }
rest selenium drupal-7 behat
1个回答
3
投票

GitHub 上找到我的答案:

对于

Goutte 4+
(使用 Symfony 的
HttpClient
而不是 Guzzle):

extension:
  Behat\MinkExtension:
    goutte:
      server_parameters:
        verify_host: false
        verify_peer: false

对于

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
© www.soinside.com 2019 - 2024. All rights reserved.