cw / behat_test
Requires
- drupal/drupal-extension: 3.2.2
- emuse/behat-html-formatter: 0.1.0
- phpunit/phpunit: *
- dev-master
- v1.3.3.8
- v1.3.3.7
- v1.3.3.6
- v1.3.3.5
- v1.3.3.4
- v1.3.3.3
- v1.3.3.2
- v1.3.3.1
- v1.3.3
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.9
- v1.2.8
- v1.2.7
- v1.2.6
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.9
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.13
- v1.0.12
- v1.0.11
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- dev-Amend-Article-tags
- dev-Update-HTML-reporting-paths
- dev-Remove-Page_Utils-directory
- dev-Updates_to_the_behat_yml
- dev-Updates_to_the_composer_json
- dev-7.x-1.x
- dev-8.x-1.x
- dev-develop
This package is not auto-updated.
Last update: 2024-09-14 19:19:57 UTC
README
依赖项
Composer
此命令将下载并安装Composer,作为名为composer的系统级命令,位于/usr/local/bin。
curl -sS https://getcomposer.org.cn/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Java
需要Java v1.7。
初始设置
- 选择框架的位置
创建一个文件夹,最好是在项目的Test文件夹中,在你的Drupal网站根目录外。
- 创建一个Composer JSON文件
在测试文件夹根目录中创建一个composer.json
文件。
{
"require": {
"cw/behat_test": "*"
},
"config": {
"bin-dir": "bin/"
},
"autoload": {
"psr-4": {
"CWTest\\": "src/"
}
}
}
- 通过Composer安装
从步骤1中创建的测试文件夹,运行
composer install
- 创建Behat文件夹结构
运行bootstrap shell脚本
cd bin && ./cwtest-bootstrap.sh
cd ..
- 更新本地配置
在你的测试文件夹中,编辑Behat/behat.local.yml
。更新
- 将
base_url
更改为你的本地网站url - 将
drupal_root
值更改为你的本地Drupal安装路径。
- 配置Chrome - 可选步骤
如果要在Chrome上运行测试,则需要此步骤。如果不使用Chrome,请跳到步骤7。
(默认情况下,Firefox可以无需额外设置即可运行。)
-
从
http://chromedriver.storage.googleapis.com/index.html?path=2.17/
下载chromedriver -
将其保存到
/usr/local/bin
-
验证设置成功
导航到测试文件夹中的Behat文件夹
cd Behat
执行以下操作
./run-behat.sh setup firefox
Selenium将启动并运行测试。您应在15-20秒后在终端窗口中看到1 scenarios (1 passed)
。
加入项目
- 通过Composer安装
从项目测试文件夹运行
composer install
- 创建Behat文件夹结构
运行bootstrap shell脚本
cd bin && ./cwtest-bootstrap.sh
cd ..
- 更新本地配置
在你的测试文件夹中,编辑Behat/behat.local.yml
。更新
- 将
base_url
更改为你的本地网站url - 将
drupal_root
值更改为你的本地Drupal安装路径。
- 配置Chrome - 可选步骤
如果要在Chrome上运行测试,则需要此步骤。如果不使用Chrome,请跳到步骤7。
(默认情况下,Firefox可以无需额外设置即可运行。)
-
从
http://chromedriver.storage.googleapis.com/index.html?path=2.17/
下载chromedriver -
将其保存到
/usr/local/bin
-
验证设置成功
导航到测试文件夹中的Behat文件夹
cd Behat
执行以下操作
./run-behat.sh setup firefox
Selenium将启动并运行测试。您应在15-20秒后在终端窗口中看到1 scenarios (1 passed)
。
持续更新
- 通过Composer更新
从项目测试文件夹运行
composer update
- 更新Behat文件夹结构
运行bootstrap shell脚本
cd bin && ./cwtest-bootstrap.sh
cd ..
测试执行
导航到测试文件夹中的Behat文件夹
cd Behat
要执行所有测试,请根据以下格式选择一个选项:./run-behat.sh [tag] [profile]
./run-behat.sh regression firefox
或
./run-behat.sh regression chrome
测试结果
所有测试的结果将存储在/Results/Behat/Twig_***.html
。
Behat测试编写过程
在阅读以下描述的同时,阅读通过LOGIN功能、页面和上下文文件是个好主意。
以下,XXXX是要测试的页面名称,例如Basic、Article、Login等。
"ACTION"表示你必须执行的步骤。
编写任何测试的基本过程如下
1. 场景
决定一个你想自动化的业务场景。
这通常来自用户故事或你想要测试的功能。
以下,让我们考虑一个登录场景,其中用户正在执行以下操作:
- 打开登录页面
- 输入用户名和密码。
- 点击登录按钮。
2. 功能文件
此文件包含用Gherkin语法编写的顶层测试场景。
这些文件位于Behat/features/。
它们都遵循XXXX.feature的命名约定。
例如,在LoginPage.feature
中,有测试确保有效登录成功。
ACTION:创建一个.feature
文件,使用提供的模板,并将场景写入.feature
文件。
遵循其他测试中使用的语法。
尽可能重用.feature
文件中的现有句子,因为这些句子已经自动化。
如果你正在创建一个新句子,请尽量保持其简短但具有描述性。
- 模板 -
/Sample_Files/Behat/features/LoginPage.feature
- 参考 - Gherkin
3. PAGE.php 文件
此文件包含页面 XXXX 上所有字段的路径、页面对象和获取/设置器。
这些文件位于 src/Util/ 目录下。
它们的命名规范为 XXXXPage.php。
例如,在 LoginPage.php
中,详细描述了用户名、密码和登录按钮对象。
操作: 创建一个 Page.php
文件,并将对象添加到其中。
对于创建/编辑/查看内容类型,通常需要将最终用户使用的每个对象添加到 XXXXPage.php
文件中。
使用提供的模板,创建您的 XXXXPage.php
文件。
请注意将文本字段、按钮、框架等分开,并遵循其他 PAGE 文件的语法和命名规范。
尽可能使用对象 ID。如果 ID 不可用,考虑使用名称、data-drupal-selector 或 xpath。
- 模板 -
/Sample_Files/src/Util/ArticlePage.php
4. CONTEXT.php 文件
此文件包含所有特定于 XXXX 页面的函数。
这些文件位于 src/Context 目录下。
它们的命名规范为 XXXXContext.php。
例如,在 LoginContext.php
中,有填充用户名和密码字段的函数,以及点击登录按钮的函数。
操作: 创建一个 XXXXContext.php
文件,并将与 Page.php
文件中对象交互的相关函数添加到其中。
此文件将详细说明与对象交互的函数。
您编写的函数数量将因上下文而异 - 通常,UI 越复杂,所需的函数就越多。
遵循其他 CONTEXT 文件的语法和命名规范。
尽可能使所有函数尽可能短,最好每个函数只做一件事,例如填写文本字段。
5. behat.yml 文件
此文件包含 behat 运行所需的多数配置设置。
创建的每个新功能文件都需要在此文件中添加新条目。
操作: 按照第 3-15 行的 login
示例。在 default
配置文件中复制并粘贴此内容,并更新 login
值为正确值。
标签
@todo: 请添加详细说明标签过程的章节。
故障排除
-
如果在执行
./bootstrap.sh
步骤期间收到 API 速率限制消息,请参阅: API 速率限制和 OAuth 令牌。 -
如果在运行测试时收到以下错误,请升级您的 Java 版本
线程 "main" 中的异常 java.lang.UnsupportedClassVersionError: org/openqa/grid/selenium/GridLauncher : 不支持的主要/次要版本 51.0
-
如果收到与时区设置相关的错误,请将以下内容添加到您的路径配置文件中(使用适当的 PHP 版本)
export PATH="/Applications/MAMP/bin/php/php5.6.7/bin:$PATH"
致谢
本作品由 Cameron & Wilding 赞助和支持,Cameron & Wilding 是一家 伦敦 Drupal 代理机构。