Generación de cadena aleatoria con un patrón
Menos mal que esto es en español y me puedo explicar mejor. Los foros en general están en ingles y me temo que no me entienden. Soy Ingeniero de pruebas y estoy utilizando Selenium ide para automatizar pruebas. Mi conocimiento de programación en general es básico aunque intento ir mejorando.
En muchos casos el escenario es que he de introducir una cadena con un formato dado y además no se puede repetir. Cada vez que lanzo la prueba he de cambiar el valor y volverlo a lanzar. Eso es muy pesado cuando se han de lanzar muchas pruebas automáticas. Me interesaría que se generara un valor aleatorio con el formato correcto y que se lanzara la prueba sin necesidad de otros cambios.
Lo que quiero es que, si la cadena que quiero introducir es del tipo XXXNNNNN, que son tres caracteres alfabéticos (en mayúsculas) y cinco números, esto lo almacene en una variable y después Selenium, al lanzar la prueba, la cargue. Eso creo que es una expresión regular del tipo /^[A-Z]{3}\d{5}$/ pero de ahí ha hacerla aleatoria se me escapa de mis conocimientos.
Incluyo aquí el script exportado desde selenium a junit (espero que algún experto conozca selenium IDE para que sepa de lo que hablo :-P ).
package com.example.tests;
import com.thoughtworks.selenium.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.regex.Pattern;
public class crea_agente extends SeleneseTestCase {
@Before
public void setUp() throws Exception {
selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://daisy-w2003.hi.inet/CustomerSupport");
selenium.start();
}
@Test
public void testCrea_agente() throws Exception {
selenium.open("/CustomerSupport/Account");
selenium.click("//div[@id='content']/ul/li[2]/a");
selenium.click("link=Crear agente");
selenium.type("//div[@id='content']/ul/li[2]/ul/li[3]/div/div/div[2]/form/div[1]/input", "AGE10000");
selenium.type("Name", "Agente Luis");
selenium.type("Description", "Agente Luis");
selenium.type("Password", "TEst%%00");
selenium.type("PasswordConfirm", "TEst%%00");
selenium.click("//div[@id='content']/ul/li[2]/ul/li[3]/div/div/div[2]/form/div[8]/a/span[2]");
selenium.click("//div[@id='content']/ul/li[2]/ul/li[3]/div/div/div[2]/form/div[10]/span/a[1]/span[2]");
verifyTrue(selenium.isElementPresent("//div[@id='content']/ul/li[2]/ul/li[3]/div/div/div[2]/div[1]/p"));
}
@After
public void tearDown() throws Exception {
selenium.stop();
}
}
En muchos casos el escenario es que he de introducir una cadena con un formato dado y además no se puede repetir. Cada vez que lanzo la prueba he de cambiar el valor y volverlo a lanzar. Eso es muy pesado cuando se han de lanzar muchas pruebas automáticas. Me interesaría que se generara un valor aleatorio con el formato correcto y que se lanzara la prueba sin necesidad de otros cambios.
Lo que quiero es que, si la cadena que quiero introducir es del tipo XXXNNNNN, que son tres caracteres alfabéticos (en mayúsculas) y cinco números, esto lo almacene en una variable y después Selenium, al lanzar la prueba, la cargue. Eso creo que es una expresión regular del tipo /^[A-Z]{3}\d{5}$/ pero de ahí ha hacerla aleatoria se me escapa de mis conocimientos.
Incluyo aquí el script exportado desde selenium a junit (espero que algún experto conozca selenium IDE para que sepa de lo que hablo :-P ).
package com.example.tests;
import com.thoughtworks.selenium.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.regex.Pattern;
public class crea_agente extends SeleneseTestCase {
@Before
public void setUp() throws Exception {
selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://daisy-w2003.hi.inet/CustomerSupport");
selenium.start();
}
@Test
public void testCrea_agente() throws Exception {
selenium.open("/CustomerSupport/Account");
selenium.click("//div[@id='content']/ul/li[2]/a");
selenium.click("link=Crear agente");
selenium.type("//div[@id='content']/ul/li[2]/ul/li[3]/div/div/div[2]/form/div[1]/input", "AGE10000");
selenium.type("Name", "Agente Luis");
selenium.type("Description", "Agente Luis");
selenium.type("Password", "TEst%%00");
selenium.type("PasswordConfirm", "TEst%%00");
selenium.click("//div[@id='content']/ul/li[2]/ul/li[3]/div/div/div[2]/form/div[8]/a/span[2]");
selenium.click("//div[@id='content']/ul/li[2]/ul/li[3]/div/div/div[2]/form/div[10]/span/a[1]/span[2]");
verifyTrue(selenium.isElementPresent("//div[@id='content']/ul/li[2]/ul/li[3]/div/div/div[2]/div[1]/p"));
}
@After
public void tearDown() throws Exception {
selenium.stop();
}
}
1 Respuesta
Respuesta de abetop
1