Documentos de Académico
Documentos de Profesional
Documentos de Cultura
GRADLE
Configuración de equipo:
- Variables de entorno
Compile “net.serenity-bdd:serenity-screenplay:${serenity.version}”
Compile “net.serenity-bdd:serenity-screenplay-webdriver:${serenity.version}”
Para crear un proyecto con estructura del patrón screenplay necesitamos:
- 3 source folders.
o Src/main/java: contiene los paquetes:
Questions: contendrá las clases que obtienen los valores que se usaran para
validaciones (en estas clases no se realizan las validaciones, solo se obtienen
los objetos o valores que se usaran para validar)
- Background: Es una tarea que se ejecutara antes de los pasos Given, When Then del
feature, la forma más común de usarlo es para abrir páginas web o para hacer un logueo.
- Scenario Outline: Sirve para declarar varios casos de prueba en un solo escenario con
datos en una tabla, se correrá un caso de prueba pro cada fila en la tabla, para que esta
notación funcione el escenario debe tener la notación examples al final.
En este caso la tabla debajo del when es la que muestra que parámetros tomara el caso de
prueba, los valores encerrados en <> son los que traen los valores de los Examples como
variables, en este caso el escenario se correrá 4 veces por las 4 filas de la tabla.
Runner:
@RunWith: define que se lanzara la prueba con la clase de CucumberWithSerenity (se puede usar
con otras clases, pero en el caso de screenplay usa esta)
Se usan importes estáticos para mejorar la legibilidad de los métodos como en el caso de la
línea 32
- @Before: Son métodos que se ejecutaran antes de empezar la prueba, el actor se debe
definir en un @Before, también se puede hacer procesos como crear archivos en una
carpeta o lanzar un comando por consola, etc.
- @After: Son métodos que se ejecutaran después de terminar la prueba, se puede hacer
procesos como crear archivos en una carpeta o lanzar un comando por consola, etc.
Se puede notar que los métodos de este stepdefinitions corresponden con los pasos que
están en el feature que le corresponde, estos son los métodos creados por el runner
- (.*): esto es una expresión regular que sirve para pasar parámetros, en el paso then
el feature tiene el paso User sees the ‘ORDER PAYMENT’ window, en este caso
ORDER PAYMENT es el parámetro que estamos tomando del feature y que estamos
usando para validar
utils.drivers:
Se define la instancia de un driver para google Chrome
Userinterfaces:
Se definen los targets (objetos de una página web en este caso) para poder interactuar con
ellos en el momento que se necesite (el constructor privado vacío es para temas de código
limpio)
Tasks:
En esta tarea se realiza la compra de un producto y se usa un condicional para definir dos
flujos de compra diferentes, el metodo performAs es el metodo de la interfaz Task,
El metodo estatico es el metodo que se debe llamar desde el stepdefinition, este metodo
construye un objeto de la clase y recibe los parámetros enviados, luego ejecuta la tarea
necesaria (una tarea puede dentro de ella llamar una interaccion en este caso es Wait),
estos métodos deben nombrarse de forma que al llamarlos en el stepdefinitions formen un
texto legible
Questions:
1461329