【发布时间】:2016-02-25 20:00:34
【问题描述】:
对于我们的 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": "*" }
【问题讨论】:
-
我使用了相同的 behat 配置,但删除了与 drupal 相关的部分,并使用 "verify: false" 和 "verify: true" 对 self-signed.badssl.com 进行了测试,如果是真的,它会给出相同的错误,但是当我切换到false,它没有失败。我也从你的 composer.json 安装了包,你有没有机会分享你正在使用的测试用例?
标签: rest selenium drupal-7 behat