test serp seomofo scan google description checker check testing groovy automated-tests spock geb

testing - serp - Aprendiendo GEB y Spock



seomofo title (1)

Traté de compilar algunos elementos esenciales y algunos ''buenos para tener'' que encontré muy útiles cuando recogí Geb.

  1. Algo de Magia Groovy . La mayoría de todo lo que necesita para aprender Groovy está cubierto en este manual, pero por razones obvias, si se obsesiona con el idioma, es posible que desee considerar a Groovy en acción . Si bien Java no es necesario para elegir Groovy, si eres de Java (a excepción de cierres) o incluso de un fondo de Python, probablemente puedas echar un vistazo al tutorial durante 15 minutos y ya estás allí.

  2. Un poco de Selenio. Cuanto más, mejor, pero no tenga miedo, esta única página le dice todo lo que necesita saber sobre Selenium Webdriver que generalmente usaría. Pero para estresarse, cuanto más, mejor.

  3. selectores jQuery (todos dicen que es fácil, pero francamente, me refiero al manual al menos dos veces por hora. Soy tonto, así que ...). Si no está familiarizado con jQuery, debería comenzar desde los selectores básicos y hacer clic en el menú de navegación izquierdo para obtener más información. Tenga en cuenta que no todos los selectores de jQuery son aplicables para Geb, pero la sección de selectores del tutorial de Geb no fue muy exhaustiva y atractiva.

  4. Al final de mis casos de prueba, necesito generar un informe fantasioso que se extienda a través de múltiples casos de prueba y tuve dependencias entre las pruebas. Entonces, fui a TestNG en lugar de Spock. Francamente, no le di mucha oportunidad a Spock.

  5. PageObjects en realidad no es un requisito previo para Geb, pero los PageObjects son tan increíbles que nunca quisiste pensar en Geb fuera de él. PageObjects es un pequeño y lindo patrón que dice que envuelve la estructura de su página HTML en un objeto para que la prueba real no tenga que lidiar con ella. Hah. Te tengo. Déjame poner eso en claro inglés.

Supongamos que tiene un formulario de registro con un cuadro de texto de entrada que tiene una identificación de "nombre de texto". ¿Cómo obtendrías el manejo del cuadro de texto? En términos DOM, en javascript, simplemente harías un

document.getElementById("nametext")

En Selenium, harías algo muy similar

driver.findElement(By.id("nametext"))

Por lo tanto, si desea llenar Jason en su cuadro de texto en Selenio, haría una

driver.findElement(By.id("nametext")).sendKeys("Jason");

Si haces eso para todos tus campos de entrada, muy pronto tus pruebas se volverán feas y odiosas. En lugar de eso, en términos OO, encapsulas. Usted crea una nueva clase, digamos RegistrationPage y envuelve su findElement y sendKeys como en:

public class RegistrationPage{ … public RegistrationPage fillRegistrationForm(String name, String email){ driver.findElement(By.id("nametext")).sendKeys(name); driver.findElement(By.id("emailtext")).sendKeys(email); } }

y de tu caso de prueba, dirías

RegistrationPage regPage=new RegistrationPage(); regPage.fillRegistrationForm("Jason","[email protected]");

(Una idea aún mejor es ajustar los valores de entrada en una clase y pasarla al fillRegistrationForm)

De hecho, Geb aprovecha PageObjects de una manera mucho mejor: selectores jQuery al rescate

class InputFormPage extends Page{ … static content={ name {$("input", id:"entry_0")} emailAddress {$("input", id:"entry_1")} } }

y en tu caso de prueba, solo dirías

name.value ("Jason") emailAddress.value ("[email protected]")

Soy un tester manual que intenta aprender GEB y Spock. Para aprender esto, ¿tengo que tener conocimientos previos de Java o Groovy? He estado leyendo el libro de GEB. ¿Cuáles son los requisitos previos, libros o recursos de aprendizaje? Por favor ayuda. Gracias.