Skip to content

Commit

Permalink
selenium 2024
Browse files Browse the repository at this point in the history
  • Loading branch information
ualjjcanada committed May 14, 2024
1 parent c03801f commit 2f1dcb9
Show file tree
Hide file tree
Showing 5 changed files with 86 additions and 165 deletions.
2 changes: 1 addition & 1 deletion docs/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ ifdef::backend-pdf[]
:toc!:
endif::[]

:page-component-display-version: curso.2023
:page-component-display-version: curso.2024

// :leveloffset: 1

Expand Down
44 changes: 6 additions & 38 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.18">
<meta name="generator" content="Asciidoctor 2.0.17">
<meta name="keywords" content="HMIS Selenium">
<title>Pruebas de aceptación con Selenium</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
Expand Down Expand Up @@ -85,10 +85,10 @@
ul,ol,dl{line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
ul,ol{margin-left:1.5em}
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0}
ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
ul.square{list-style-type:square}
ul.circle{list-style-type:circle}
ul.disc{list-style-type:disc}
ul.square{list-style-type:square}
ul.circle ul:not([class]),ul.disc ul:not([class]),ul.square ul:not([class]){list-style:inherit}
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
dl dt{margin-bottom:.3125em;font-weight:bold}
dl dd{margin-bottom:1.25em}
Expand Down Expand Up @@ -444,7 +444,7 @@ <h1>Pruebas de aceptación con Selenium</h1>
</div>
<div id="content">
<div class="paragraph">
<p><em>Version</em> <strong>curso.2023</strong></p>
<p><em>Version</em> <strong>curso.2024</strong></p>
</div>
<div class="olist arabic">
<ol class="arabic">
Expand All @@ -454,42 +454,10 @@ <h1>Pruebas de aceptación con Selenium</h1>
<li>
<p><a href="modules/ROOT/pages/selenium-ide-ejercicios-crud.html">Ejercicios Parte 1 - Proyecto Aplicación Web con base de datos</a></p>
</li>
<li>
<p><strong>Tutoriales de Aplicacion Web con Base de datos</strong> para los Ejercicios Parte 1 (adaptados de los <a href="https://learn.microsoft.com/es-es/azure/app-service/tutorial-dotnetcore-sqldb-app">tutoriales de Azure</a>)</p>
<div class="olist loweralpha">
<ol class="loweralpha" type="a">
<li>
<p><a href="modules/tutorial-dotnetcore-sql/pages/tutorial-dotnetcore.html">Aplicación Web DotNet Core con Base de datos SQL en Azure</a> &#8592; RECOMENDADO !!!</p>
</li>
<li>
<p><a href="modules/tutorial-aspnet-sql/pages/tutorial-aspnet.html">Aplicación Web ASP.NET con Base de datos SQL en Azure</a></p>
</li>
<li>
<p>Aplicación Web PHP con MySQL en Azure</p>
</li>
</ol>
</div>
<div class="olist loweralpha">
<ol class="loweralpha" type="a" start="4">
<li>
<p><a href="modules/tutorial-node-mongo/pages/tutorial-node-mongo.html">Aplicación web de Node.js y MongoDB en Azure</a></p>
</li>
<li>
<p>Aplicación Web Ruby con Postgres en Azure</p>
</li>
<li>
<p>Aplicación Web Python con Postgres en Azure</p>
</li>
<li>
<p>Aplicación Web Java Spring con Cosmos DB en Azure</p>
</li>
</ol>
</div>
</li>
</ol>
</div>
<div class="olist arabic">
<ol class="arabic" start="4">
<ol class="arabic" start="3">
<li>
<p><strong>Parte 2: Selenium WebDriver</strong></p>
<div class="olist loweralpha">
Expand All @@ -511,4 +479,4 @@ <h1>Pruebas de aceptación con Selenium</h1>
</div>
</div>
</body>
</html>
</html>
21 changes: 0 additions & 21 deletions docs/modules/ROOT/pages/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -19,28 +19,7 @@ _Version_ *{page-component-display-version}*

. link:{sectionPath}/selenium-ide-ejercicios-crud.html[Ejercicios Parte 1 - Proyecto Aplicación Web con base de datos]

. *Tutoriales de Aplicacion Web con Base de datos* para los Ejercicios Parte 1 (adaptados de los https://learn.microsoft.com/es-es/azure/app-service/tutorial-dotnetcore-sqldb-app[tutoriales de Azure])
+
:section: tutorial-dotnetcore-sql
:sectionPath: modules/{section}/pages
.. link:{sectionPath}/tutorial-dotnetcore.html[Aplicación Web DotNet Core con Base de datos SQL en Azure] <- RECOMENDADO !!!

+
[start=2]
.. link:modules/tutorial-aspnet-sql/pages/tutorial-aspnet.html[Aplicación Web ASP.NET con Base de datos SQL en Azure]
[start=3]
.. Aplicación Web PHP con MySQL en Azure

+
[start=4]
:section: tutorial-node-mongo
:sectionPath: modules/{section}/pages
.. link:{sectionPath}/tutorial-node-mongo.html[Aplicación web de Node.js y MongoDB en Azure]
.. Aplicación Web Ruby con Postgres en Azure
.. Aplicación Web Python con Postgres en Azure
.. Aplicación Web Java Spring con Cosmos DB en Azure

[start=4]
:section: ROOT
:sectionPath: modules/{section}/pages
. *Parte 2: Selenium WebDriver*
Expand Down
65 changes: 28 additions & 37 deletions docs/modules/ROOT/pages/selenium-ide-ejercicios-crud.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ ifdef::env-github[]
:figure-caption: Figura
endif::[]

:page-component-display-version: curso.2022
:page-component-display-version: curso.2024
_Version_ *{page-component-display-version}*

[abstract]
Expand Down Expand Up @@ -54,7 +54,7 @@ La realización de estas actividades se realizará *en equipo*. La entrega será

Realiza con Selenium IDE los tests de la web del equipo de la sesión 04 que verifiquen que la web incorpora todos los elementos que se pedían que se incluyeran en la misma.

Como siempre, crea un repositorio (privado) en GitHub para guardar los archivos creados. Se trata de una actividad en equipo, así que aplica el método de colaboración fork + pull request. Comparte el repositorio con el profesor para que pueda tener acceso al mismo.
Como siempre, crea un repositorio (privado) en GitHub para guardar los archivos creados. Se trata de una actividad en equipo, así que aplica el método de colaboración habitual. Comparte el repositorio con el profesor para que pueda tener acceso al mismo.


== Aplicación web con base de datos
Expand All @@ -64,51 +64,43 @@ Desde ahora hasta el final de la asignatura vamos a iniciar un proyecto de equip

=== Elige una plantilla

Os dejo aquí en enlace a la documentación oficial de https://docs.microsoft.com/es-es/azure/app-service/[Azure Web apps, window=_blank] varios ejemplos de plantillas de *aplicación web con base de datos*, en distintas tecnologías, que básicamente implementan una aplicación que permite crear tareas, listarlas, modificarlas y eliminarlas. Podrás encontralas en el menú _Tutoriales_ / _Aplicación con base de datos_.
*Vaadin*:
- Registro de usuarios
- Login de usuarios
- CRUD

.Tutoriales de Aplicación Web con base de datos
image::azure-tutoriales-basededatos.png[role="thumb", align="center"]

.Proyecto TO-DO - Opciones
****
Elige la tecnología que prefieras, os animo a elegir una que tengáis curiosidad por aprender. Seguramente seguirás usando esa tecnología para el proyecto hasta el final de la asignatura, así que tomad la decisión en equipo. En cualquier caso, si más adelante quieres cambiar de tecnología para alguna de las siguientes prácticas, no habrá problema.
Como alternativa, si lo deseas, puedes usar alguna otra plantilla que conozcas que no esté entre los tutoriales de Azure, incluso en otra tecnología (por ejemplo, Go). En ese caso, comentádmelo antes para validar que implemente la funcionalidad básica requerida (CRUD).
****

Sique las instrucciones del tutorial elegido, pero antes ten en cuenta lo siguiente:

- En la mayoría de los tutoriales te indicará los pasos para probar que la aplicación funciona _en local_ antes de subirla a la Web App de Azure. Cuando sea necesario, el tutorial te indicará unos *Prerrequitos* que tendrás que tener en tu PC local, y ofrecerá dos opciones:

* Use el entorno de Bash en https://docs.microsoft.com/es-es/azure/cloud-shell/quickstart[Azure Cloud Shell, window=_blank]: tiene la ventaja de que todo el software necesario ya está instalado en la Cloud Shell, por lo que no necesitarás instalar nada en local.

* Si prefieres ejecutar la aplicación localmente, esta opción implica que debes instalar todo el software indicado como prerrequisitos que aun no tengas en tu PC (php, node, python, etc).

- Comprueba el gasto que vas a realizar con la creación de la Web App y la base de datos del tutorial que elijas. El consumo de la Web App dependerá del tipo de SKU que crea tutorial. Los pasos para crear una web app gratuita (SKU Free) están buen detallados en el apartado https://docs.microsoft.com/es-es/azure/app-service/tutorial-dotnetcore-sqldb-app?tabs=azure-portal%2Cvisualstudio-deploy%2Cdeploy-instructions-azure-portal%2Cazure-portal-logs%2Cazure-portal-resources#2---create-the-app-service[2. Creación de la instancia de App Service] del tutorial de DotNet Core, así que consultalos si es necesario.

- Los comandos que aparencen en los tutoriales que comienzan por `az` permiten interactuar con los servicios Azure utilizando la CLI (Command Line Interface) de Azure. Básicamente, la CLI es una alternativa a usar el Portal de Azure, de manera que en lugar de operar forma interactiva sobre la interfaz web del Portal Azure, utilizarás los comandos de la CLI para crear y configurar los servicios. Los comandos `az` los podrás ejecutar https://docs.microsoft.com/es-es/azure/cloud-shell/quickstart[Azure Cloud Shell, window=_blank] (recomendado) o bien en local, y en este último caso (https://docs.microsoft.com/es-ES/cli/azure/install-azure-cli[instale la CLI de Azure, window=_blank]).
Azure deploy
consulta la siguiente documentación para desplegar la aplicación en Azure: https://vaadin.com/docs/latest/production/cloud-providers/azure


=== Usa tu propio proyecto
Como alternativa, si ya has desarrollado o estás desarrollando un proyecto similar en alguna tecnología que conozcas, y que implemente:

- la funcionalidad de listado, creación, modificación y eliminación (CRUD) sobre al menos una determinada entidad (por ejemplo: tareas, usuarios, eventos, etc.)
- Debe incluir la funcionalidad de registro y login de usuarios.
- La funcionalidad de listado, creación, modificación y eliminación (CRUD) sobre al menos una determinada entidad (por ejemplo: tareas, usuarios, eventos, etc.)


Pero asegúrate de que tu proyecto es *funcional*, es decir, implementa las características indicadas y estas funcionan, ya que el objetivo es probarlas con Selenium. Y además tu proyecto debe implementar los casos de error mediante los mensajes de validación oportunos. Si tu proyecto no es funcional, o no implementa esas características o los casos de error, entonces mejor usa una plantilla de las propuestas.

== Creación de los tests Selenium

Crear en Selenium los test cases necesarios para probar, tanto escenarios correctos como escenarios de error, de las siguientes funcionalidades:
Crear en Selenium los test cases necesarios para probar, tanto escenarios correctos como escenarios de error, de las siguientes funcionalidades CRUD sobre la entidad elegida:
****
- Listado de tareas (Caso correcto)
- Listado de tareas (Casos incorrectos)
- Creación de una tarea (Caso correcto)
- Creación de una tareas (Casos incorrectos)
- Modificación de una tarea (caso correcto)
- Modificación de una tarea (casos incorrectos)
- Eliminación de una tarea (caso correcto)
- Eliminación de una tarea (casos incorrectos)
- Registro de usuarios (caso correcto)
- Registro de usuarios (casos incorrectos)
- Login (caso correcto)
- Login (casos incorrectos)
CRUD sobre una entidad (por ejemplo, tareas, usuarios, eventos, etc.):
- Listado (Caso correcto)
- Listado (Casos incorrectos)
- Creación (Caso correcto)
- Creación (Casos incorrectos)
- Modificación (caso correcto)
- Modificación (casos incorrectos)
- Eliminación (caso correcto)
- Eliminación (casos incorrectos)
****
[NOTE]
====
Expand All @@ -118,11 +110,10 @@ Guardar los test cases en una test suite (formato `.side`).

Puesto que para realizar una prueba exhaustiva, cubriendo todos los posibles escenarios, el número de casos de prueba es elevado, la forma de trabajar es dividir las funcionalidades entre los miembros del equipo y así repartir el trabajo: Una persona que haga los tests de las dos primeras funcionalidades, y otra el resto.

Para *equipos de 3 personas*, se pide elegir dos tecnologías y crear los tests de selenium para los dos proyectos. Al ser más carga de trabajo, en este caso se deja como optativo los tests de _Modificación de una tarea_.

[WARNING]
====
Como *alternativa a la segunda tecnología* para los equipos de 3 personas, y evitar el gasto Azure, se puede probar el sitio demo disponible en https://opensource-demo.orangehrmlive.com, que es una aplicación web de gestión de recursos humanos. En este caso, se pide crear los tests de Selenium para las funcionalidades de _Login_, y _Change password_ para el usuario logueado.
Para *equipos de 3 personas*, se puede probar el sitio demo disponible en https://opensource-demo.orangehrmlive.com, que es una aplicación web de gestión de recursos humanos. En este caso, se pide crear los tests de Selenium para las funcionalidades de _Login_, y _Change password_ para el usuario logueado.
====

== Funciones avanzadas de Selenium IDE
Expand Down
Loading

0 comments on commit 2f1dcb9

Please sign in to comment.