使用 drush 驱动程序提高行为性能
Increase behat performance with drush driver
我在 drupal 安装中 运行 behat inside vagrant。
当我使用 drush 驱动程序时,例如为了对管理员进行身份验证,测试运行得非常慢(2')。
我的 behat.yml 是:
default:
suites:
default:
contexts:
- FeatureMinkContext
- FeatureContext:
- "/vagrant/images/behat"
- 813
- 1855
- Drupal\DrupalExtension\Context\DrupalContext
- Drupal\DrupalExtension\Context\MinkContext
- Drupal\DrupalExtension\Context\MessageContext
- Drupal\DrupalExtension\Context\DrushContext
extensions:
Behat\MinkExtension:
selenium2: ~
javascript_session: 'selenium2'
browser_name: firefox
base_url: http://solar.com/ # Replace with your site's URL
Drupal\DrupalExtension:
blackbox: ~
region_map:
search: ".form-search"
api_driver: 'drush'
drush:
root: /vagrant/drupal
selectors:
message_selector: '.messages'
error_message_selector: '.messages.messages-error'
success_message_selector: '.messages.messages-status'
drupal:
# Replace with your real Drupal root.
drupal_root: "/vagrant/drupal"
测试结构:
@javascript @api
Feature: Tests google maps and pois
@maps
Scenario: My tests
Given I am logged in as a user with the "administrator" role
...
没用过 drush 但是,
您需要做的第一件事是确定瓶颈,可能是服务器速度较慢,可能是您使用的某些方法速度较慢,或者您可能有一些不正确的等待。
如果管理员身份验证需要 2',肯定有问题。
运行 场景,调试直到缩小到有问题的方法。
您可以做的其他一些事情是:
- 从不使用盲目等待,只使用条件等待
- 如果您必须填写大表格,请尝试使用 javascript 方法进行填写,速度会非常快
- 尝试不同的浏览器,在我的例子中chrome稍微快一些
是本地站点设置吗?如果是,那么与在实际站点上 运行 相比,Drupal 的 behat 脚本在本地 运行 有点慢。我几乎在每个项目中都遇到过这个问题。对我来说,管理员身份验证的第一步有时需要 5 分钟。增加 RAM 大小在一定程度上减少了这个问题。
我在 drupal 安装中 运行 behat inside vagrant。 当我使用 drush 驱动程序时,例如为了对管理员进行身份验证,测试运行得非常慢(2')。 我的 behat.yml 是:
default:
suites:
default:
contexts:
- FeatureMinkContext
- FeatureContext:
- "/vagrant/images/behat"
- 813
- 1855
- Drupal\DrupalExtension\Context\DrupalContext
- Drupal\DrupalExtension\Context\MinkContext
- Drupal\DrupalExtension\Context\MessageContext
- Drupal\DrupalExtension\Context\DrushContext
extensions:
Behat\MinkExtension:
selenium2: ~
javascript_session: 'selenium2'
browser_name: firefox
base_url: http://solar.com/ # Replace with your site's URL
Drupal\DrupalExtension:
blackbox: ~
region_map:
search: ".form-search"
api_driver: 'drush'
drush:
root: /vagrant/drupal
selectors:
message_selector: '.messages'
error_message_selector: '.messages.messages-error'
success_message_selector: '.messages.messages-status'
drupal:
# Replace with your real Drupal root.
drupal_root: "/vagrant/drupal"
测试结构:
@javascript @api
Feature: Tests google maps and pois
@maps
Scenario: My tests
Given I am logged in as a user with the "administrator" role
...
没用过 drush 但是,
您需要做的第一件事是确定瓶颈,可能是服务器速度较慢,可能是您使用的某些方法速度较慢,或者您可能有一些不正确的等待。
如果管理员身份验证需要 2',肯定有问题。
运行 场景,调试直到缩小到有问题的方法。
您可以做的其他一些事情是:
- 从不使用盲目等待,只使用条件等待
- 如果您必须填写大表格,请尝试使用 javascript 方法进行填写,速度会非常快
- 尝试不同的浏览器,在我的例子中chrome稍微快一些
是本地站点设置吗?如果是,那么与在实际站点上 运行 相比,Drupal 的 behat 脚本在本地 运行 有点慢。我几乎在每个项目中都遇到过这个问题。对我来说,管理员身份验证的第一步有时需要 5 分钟。增加 RAM 大小在一定程度上减少了这个问题。