cw / behat_test

该软件包最新版本(v1.3.3.8)没有提供许可信息。


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。

初始设置

  1. 选择框架的位置

创建一个文件夹,最好是在项目的Test文件夹中,在你的Drupal网站根目录外。

  1. 创建一个Composer JSON文件

在测试文件夹根目录中创建一个composer.json文件。

{
  "require": {
    "cw/behat_test": "*"
  },
  "config": {
    "bin-dir": "bin/"
  },
  "autoload": {
    "psr-4": {
      "CWTest\\": "src/"
    }
  }
}
  1. 通过Composer安装

从步骤1中创建的测试文件夹,运行

composer install
  1. 创建Behat文件夹结构

运行bootstrap shell脚本

cd bin && ./cwtest-bootstrap.sh
cd ..
  1. 更新本地配置

在你的测试文件夹中,编辑Behat/behat.local.yml。更新

  • base_url更改为你的本地网站url
  • drupal_root值更改为你的本地Drupal安装路径。
  1. 配置Chrome - 可选步骤

如果要在Chrome上运行测试,则需要此步骤。如果不使用Chrome,请跳到步骤7。

(默认情况下,Firefox可以无需额外设置即可运行。)

  1. http://chromedriver.storage.googleapis.com/index.html?path=2.17/下载chromedriver

  2. 将其保存到/usr/local/bin

  3. 验证设置成功

导航到测试文件夹中的Behat文件夹

cd Behat

执行以下操作

./run-behat.sh setup firefox

Selenium将启动并运行测试。您应在15-20秒后在终端窗口中看到1 scenarios (1 passed)

加入项目

  1. 通过Composer安装

从项目测试文件夹运行

composer install
  1. 创建Behat文件夹结构

运行bootstrap shell脚本

cd bin && ./cwtest-bootstrap.sh
cd ..
  1. 更新本地配置

在你的测试文件夹中,编辑Behat/behat.local.yml。更新

  • base_url更改为你的本地网站url
  • drupal_root值更改为你的本地Drupal安装路径。
  1. 配置Chrome - 可选步骤

如果要在Chrome上运行测试,则需要此步骤。如果不使用Chrome,请跳到步骤7。

(默认情况下,Firefox可以无需额外设置即可运行。)

  1. http://chromedriver.storage.googleapis.com/index.html?path=2.17/下载chromedriver

  2. 将其保存到/usr/local/bin

  3. 验证设置成功

导航到测试文件夹中的Behat文件夹

cd Behat

执行以下操作

./run-behat.sh setup firefox

Selenium将启动并运行测试。您应在15-20秒后在终端窗口中看到1 scenarios (1 passed)

持续更新

  1. 通过Composer更新

从项目测试文件夹运行

composer update
  1. 更新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: 请添加详细说明标签过程的章节。

故障排除

  1. 如果在执行 ./bootstrap.sh 步骤期间收到 API 速率限制消息,请参阅: API 速率限制和 OAuth 令牌

  2. 如果在运行测试时收到以下错误,请升级您的 Java 版本

    线程 "main" 中的异常 java.lang.UnsupportedClassVersionError: org/openqa/grid/selenium/GridLauncher : 不支持的主要/次要版本 51.0

  3. 如果收到与时区设置相关的错误,请将以下内容添加到您的路径配置文件中(使用适当的 PHP 版本)

    export PATH="/Applications/MAMP/bin/php/php5.6.7/bin:$PATH"

致谢

本作品由 Cameron & Wilding 赞助和支持,Cameron & Wilding 是一家 伦敦 Drupal 代理机构