Los JOB en oracle se pueden crear por script de base de datos
SYS.DBMS_JOB.SUBMIT
( job => X
,what => ''DECLARE
P_ANNYO NUMBER;
RETURN_VALUE NUMBER;
BEGIN
P_valor:= 0;
RETURN_VALUE := NULL;
XXXX.P_TUProdecmiento( P_valor, RETURN_VALUE );
dbms_output.put_line(RETURN_VALUE );
COMMIT;
END; ''
,next_date => to_date(''13/01/2019 09:00:00'',''dd/mm/yyyy hh24:mi:ss'')
,interval => ''TRUNC(SYSDATE+365)''
,no_parse => TRUE
);
SYS.DBMS_OUTPUT.PUT_LINE(''Job Number is: '' || to_char(x));
Si se ejecuta desde el esquema del SYSTEM. Si quieres que se ejecute con el usuario del esquema hay que añadir
select NLS_ENV into NLS from dba_jobs where job=x;
sys.DBMS_IJOB.change_env(x,''XXXX',''XXXX','XXXX' ,NLS);
viernes, 28 de diciembre de 2018
viernes, 21 de diciembre de 2018
Pruebas unitarias Selenium
Para hacer pruebas unitarias de una aplicación de web, he usado el componente de Selenium. Lo bueno es que son pruebas que se se pueden ejecutar una otra vez y que puedes hacer una traducción casi automática a cualquier lenguaje.
Y la mejor opción :
https://a9t9.com/howto/getseleniumide
Ojo desactiva la opciones de actualizar automáticamente o usa la versión portable
Pero yo quería código C# y que la traducción fuera lo más rápida posible. Desde el complemento del FireFox ( desde Chrome no me da esa opción). Hay que ir a opciones y activar la carteristas experimental
Y cuando lo tienes ya puedes ver el código generado para para prueba
El código es automático y funciona bastante bien pero no hay que retocar algunas cosas
- Si tienes un combo (lista deplegable) . El generador de código pone SelectElement. Para que compile hay que añadir el paquete del Selenium.Support
- Opciones invisibles. Yo tenia el típico menú que cuando el ratón se posiciona sobre la opción principal se se despliega las sub opciones. Parece que cuando no esta visible no funciona el evento click.
Actions builder = new Actions(driver);
builder.MoveToElement(driver.FindElement(By.LinkText("menu1"))).Build().Perform();
driver.FindElement(By.LinkText("subMenu1.1")).Click();
- Tiempos de espera. Mi aplicación, como casi todas de la actualidad, tiene llamadas asíncronas. El código para aplicar un tiempo de espera hay que codificarlo
WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0, 0, 5));
wait.Until(w => driver.FindElements(By.CssSelector("[type='submit']")).ToList().Any(o => o.Displayed));
- Ventanas/pestañas emergentes . En mi caso los informes salen todos en pestañas nuevas. Por supuesto no es posible saber si el informe sale correctamente.
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(20));
ReadOnlyCollection<String> handles = null;
wait.Until((d) => (handles = driver.WindowHandles).Count > 1);
driver.SwitchTo().Window(handles[handles.IndexOf(driver.CurrentWindowHandle) ^ 1]);
Los paquetes necesarios para mi aplicación de test fueron
Todo esto era cierto en las otras versiones del Selenimu. Pero ya no están disponibles
Opciones :
- https://www.seleniumhq.org/docs/05_selenium_rc.jsp
- https://www.katalon.com/download/
Opciones :
- https://www.seleniumhq.org/docs/05_selenium_rc.jsp
- https://www.katalon.com/download/
Y la mejor opción :
https://a9t9.com/howto/getseleniumide
Ojo desactiva la opciones de actualizar automáticamente o usa la versión portable
Suscribirse a:
Entradas (Atom)