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

标签 rest selenium drupal-7 behat

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

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

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

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

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

编辑:添加了 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

关于rest - Behat selenium 测试信任自签名 SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35637140/

相关文章:

java - 使用 Jackson Objectmapper 将整数列表从 json 反序列化为 java

javascript - Bitfinex REST API : how to check active orders until active, 然后在一个脚本中执行或取消后检查历史订单?

javascript - 多功能Drupal s.prop显示以前的轨迹数据

mysql - drupal 模块中的 Sql 查询 - 什么是节点?

css - Drupal megamenu : how to get rid of blue backgrounds on hover in IE8/9?

validation - 哪个更好? 403 状态代码或 422 状态代码以及验证和身份验证失败的负载?

java - 如何从 api url 获取本地货币代码?

Python selenium 如何获取父元素

java - Selenium FirefoxDriver - 如果使用 Geckodriver 单击关闭窗口,WebElement.click() 将被挂起

java - Cucumber:初始化然后在步骤定义之间传递数据?