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
对于我们的 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