[ Foro de Java ]

Duda sobre QA automation en Java

08-Feb-2023 20:10
Invitado (Carlos)
2 Respuestas

¡Qué tal a todos!

Primero que nada, aclarar que soy nuevo en esto de la programación y, actualmente me encuentro en un entrenamiento que una empresa me esta dando para el puesto de QA automation, sin embargo, se me ha estado dificultando el entender qué y cómo hacer las tareas que me dejan, así que, les pediría de favor si me pudiesen ayudar a entender qué es lo que me están dejando hacer.
Estoy usnando JAVA para esto con selenium y webdriver, todo esto en intellij.

Básicamente, lo que me piden hacer es lo siguiente:
Task: Implement framework classes:
- BaseForm
- BaseElement
- Button
And refactor task #1 sources to use these classes.
Test Case #1. Help form.
# Step
1.- Navigate to main page by URL: https://userinyerface.com
Expected results: Main page is open.
2.- Click Here link.
Expected results: Game page is open.
3.- Click Help button on the Help form.
Expected results: Help response is displayed.
Test Case #2. Timer.
# Step
1.- Navigate to main page by URL: (la misma URL que la del principio)
Expected results: Main page is open.
2.- Click Here link.
Expected results: Game page is open. The timer starts from zero.

Básicamente, es esto lo que me piden, yo de momento, ya investigue por mi parte, y por supuesto que ya tengo un codigo para todo eso, el cual es el siguiente:

package org.Test;


import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;


public class TaskTwo {

   public WebDriver driver;

   @BeforeMethod
   public void beforeMethod() {
       System.setProperty("webdriver.chrome.driver", "E:\\QA Test Java\\a1qa practices\\SeleniumTest\\src\\main\\resources\\drivers\\chromedriver.exe");
       driver = new ChromeDriver();
   }

   @Test
   public void testCase1_HelpForm() {
       driver.get("https://userinyerface.com"); //Go to the specified page using a URL
       driver.findElement(By.xpath("//*[@id=\"app\"]/div[1]/div/div[4]/p/a")).click(); //click the "CLICK HERE button" by using the xpath
       driver.findElement(By.xpath("//*[@id=\"app\"]/div[1]/div[3]/div/div[1]/div[1]/a")).click(); //click the "HELP button" by using the xpath
       String actualUrl = driver.getCurrentUrl();
       Assert.assertEquals(actualUrl, "https://userinyerface.com/help", "Incorrect URL after clicking help button");
       driver.close(); //The pages will be closed when all the previous tasks have been completed.
   }

   @Test
   public void testCase2_Timer() {
       driver.get("https://userinyerface.com");
       driver.findElement(By.xpath("//*[@id=\"app\"]/div[1]/div/div[4]/p/a")).click();
   }
}

Perdónen si esta en ingles, pero así viene las tareas. Por cierto, la parte que dice "And refactor task #1", la "task #1" de la que habla, es el código que acabo de pegar arriba el cual, y aclaro, yo lo hice. Espero de corazón, me puedan medio explicar qué es lo que me estan pidiendo hacer, por que no entedí que son las (BaseForm, BaseElement y Button)

Por cierto, aclaro que no estoy pidiendo que me resuelvan el ejercicio, solo quiero saber maso menos que se me explique, qué es lo que medio debo de hacer.


27-Feb-2023 18:30
Luis Rodrguez

Hola, amigo. ¿Lograste resolver el ejercicio? Yo llevo días y no he podido; siempre me salta una excepción diciendo que no se puede localizar el enlace para pasar a la página siguiente.

Agradecería mucho tu ayuda.


14-Mar-2023 22:36
Invitado (Alejandro Andrade)

¡Hola! Entiendo que estás aprendiendo a utilizar Selenium WebDriver y a automatizar pruebas de software en Java.

En cuanto a la tarea que te han asignado, se te pide que implementes ciertas clases de un framework de automatización de pruebas. Estas clases son: BaseForm, BaseElement y Button.

BaseForm y BaseElement son clases base que pueden utilizarse para representar páginas web o formularios. Button es una clase específica que representa un botón.

Refactorizar significa reorganizar el código existente para que use estas nuevas clases. En otras palabras, debes modificar el código que ya tienes para utilizar las nuevas clases que se te piden. El objetivo de la refactorización es mejorar la estructura del código y hacerlo más fácil de mantener.

Para implementar estas clases, deberás crear un archivo separado para cada una de ellas. Por ejemplo, puedes crear un archivo llamado "BaseForm.java" que contenga la implementación de la clase BaseForm. Lo mismo para BaseElement y Button.

Luego, deberás modificar el código que ya tienes para utilizar estas nuevas clases. Por ejemplo, en lugar de buscar elementos por su xpath en cada test, puedes crear un objeto de tipo BaseElement que represente ese elemento, y luego usar los métodos que esta clase ofrece para interactuar con el elemento.

Espero que esto te ayude a entender mejor lo que se te pide hacer en la tarea.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)