Referencia de Allure Behat
Estos son los atributos y métodos que puedes utilizar para integrar tus pruebas de Behat con el informe de Allure.
Severity
Establece la severidad de la prueba.
Para habilitar esto, especifica la opción de configuración severity_key
. Usa esta clave como prefijo en las etiquetas Gherkin, seguida de uno de los valores: "trivial", "menor", "normal", "crítico" o "bloqueador".
El ejemplo siguiente asume que has configurado severity:
como prefijo.
Feature: Labels
@severity:critical
Scenario: Crear nueva etiqueta para usuario autorizado
When I open labels page
And I create label with title "hello"
Then I should see label with title "hello"
Link
Añade enlaces relacionados con la prueba mediante etiquetas Gherkin. Se admiten dos tipos de enlaces: enlaces a incidencias y enlaces a TMS.
Para habilitar esto, especifica las opciones de configuración issue_tag_prefix
y test_id_tag_prefix
.
El ejemplo siguiente asume que has configurado issue:
y tms:
como los prefijos.
Feature: Labels
@issue:https://issues.example.org/AUTH-123
@tms:https://tms.example.org/TMS-456
Scenario: Crear nueva etiqueta para usuario autorizado
When I open labels page
And I create label with title "hello"
Then I should see label with title "hello"
Jerarquía basada en el comportamiento
Cualquier etiqueta Gherkin se considera la historia de usuario de la prueba para la jerarquía basada en el comportamiento de Allure, a menos que la etiqueta tenga un prefijo conocido o sea ignorada, según la configuración.
@UI @Labels
Feature: Labels
Scenario: Crear nueva etiqueta para usuario autorizado
When I open labels page
And I create label with title "hello"
Then I should see label with title "hello"
Sub-pasos de prueba
StepSupport::executeStep($name, $logic, $title = null)
Para dividir un paso de Gherkin en sub-pasos:
En tu clase de contexto, añade el rasgo
StepSupport
.En la implementación del paso, pasa una función lambda o una referencia de método a
$this->executeStep()
.La función o método no debe aceptar argumentos. Durante la ejecución de un sub-paso, puedes llamar a
$this->executeStep()
nuevamente para dividirlo en más sub-pasos.
use Behat\Behat\Context\Context;
use Yandex\Allure\Adapter\Support\StepSupport;
class MyContext implements Context
{
use StepSupport;
/**
* @When I go to the registration form
*/
public function goToRegistrationForm()
{
$this->executeStep('Step 1', [$this, 'step1']);
$this->executeStep('Step 2', [$this, 'step2']);
}
public function step1()
{
$this->executeStep('Step 1.1', function () {
// ...
});
$this->executeStep('Step 1.2', function () {
// ...
});
}
public function step2()
{
$this->executeStep('Step 2.1', function () {
// ...
});
$this->executeStep('Step 2.2', function () {
// ...
});
}
}
Pruebas parametrizadas
En Gherkin, un Scenario Outline
(o una Scenario Template
) implementa el patrón de pruebas parametrizadas. Un esquema de escenario debe contener una tabla Examples
, de la cual Behat carga conjuntos de parámetros, uno tras otro. Behat ejecuta todos los pasos del esquema varias veces, una por cada conjunto de parámetros.
El siguiente ejemplo muestra un archivo Gherkin y un archivo de implementación PHP de una prueba. En este ejemplo, en el informe de la prueba, esta incluirá los tres pasos ejecutados con el primer conjunto de parámetros, y luego los tres pasos ejecutados con el segundo conjunto de parámetros.
Feature: Gestión de usuarios
Scenario Outline: Registro
When I go to the registration form
And I enter my details: "<login>", "<password>", "<name>", "<birthday>"
Then the profile should be created
Examples:
| login | password | name | birthday |
| johndoe | qwerty | John Doe | 1970-01-01 |
| janedoe | 123456 | Jane Doe | 1111-11-11 |
use Behat\Behat\Context\Context;
class MyContext implements Context
{
/**
* @When I go to the registration form
*/
public function goToRegistrationForm()
{
}
/**
* @When I enter my details: :login, :password, :name, :birthday
*/
public function enterDetails($login, $password, $name, $birthday)
{
}
/**
* @When I go to the registration form
*/
public function profileShouldBeCreated()
{
}
}
Adjuntos
AttachmentSupport::addAttachment($filePathOrContents, $caption, $type = null)
Para crear un adjunto, añade el rasgo AttachmentSupport
a tu clase de contexto y llama a $this->addAttachment()
en cualquier punto de tu prueba. Pasa ya sea la cadena de contenido o la ruta desde la que se leerán los datos.
Para asegurarte de que el navegador web del lector muestre los adjuntos correctamente, se recomienda especificar el tipo de cada adjunto. Para hacerlo, pasa el tipo de medio del contenido como $type
. El tipo de medio afecta cómo se mostrará el dato en el informe de la prueba, mientras que la extensión del archivo se agrega al nombre del archivo cuando el usuario desea guardar el archivo. Si no se especifica, Allure Behat intentará adivinar el tipo automáticamente según el contenido.
use Behat\Behat\Context\Context;
use Yandex\Allure\Adapter\Support\AttachmentSupport;
class MyContext implements Context
{
use AttachmentSupport;
/**
* @When I go to the registration form
*/
public function profileShouldBeCreated()
{
$this->addAttachment('/path/to/image.png', 'Screenshot', 'image/png');
}
}