Pruebas Servicio Web SOAP con Jmeter 2.6

JMeter es un proyecto de Apache que puede ser utilizado como una herramienta de prueba de carga para analizar y medir el desempeño de una variedad de servicios, con énfasis en aplicaciones web.
JMeter puede ser usado como una herramienta de pruebas unitarias para conexiones de bases de datos con JDBC, FTP, LDAP, Servicios web, JMS, HTTP y conexiones TCP genéricas. JMeter puede también ser configurado como un monitor, aunque es comúnmente considerado una solución ad-hoc respecto de soluciones avanzadas de monitoreo.
Mientras que JMeter es clasificado como una herramienta de "generación de carga", no es una descripción completa de la herramienta. JMeter soporta aserciones para asegurarse que los datos recibidos son correctos, por cookies de hilos, configuración de variables y una variedad de reportes.

La versión 2.6 trae la interfaz para agregar la prueba de WSDL.
para agregar : ir a Plan de Pruebas -> Añadir->request  WSDL 

Para la ejecucion de pruebas de un servicio se configuran un grupo de hilos que se ejecutaran la cantidad de veces que se estime, es importante Leer la respuesta SOAP para poder estimar si el servicio respondio la peticion. Si el dasarrollo esta terminado esta herramienta es capaz de graficar los resultados, para ello tiene opciones por defecto que se pueden agregar: Grafico de resultados, Reporte resumen, ver los resultados en un arbol. Estos se detallan a continuacion:





Pero tambien hay una serie de Plugins que agregar herramientas utiles que expanden las pruebas realizadas y para obtener un resultado mejor, mejores graficos y mejores reportes.
 JMETER PLUGINS

Esta pagina se pueden descargar los plugins que deben ser extraidos en el directorio de jmeter.
JMeterPlugins-Standard-1.1.3.zip, 1.11 MB, Feb 17, 2014, Download count: 955
Standard Set

ServerAgent-2.2.1.zip, 3.51 MB, Jul 12, 2013, Download count: 7356
PerfMon Agent to use with Standard Set

JMeterPlugins-Extras-1.1.3.zip, 1.22 MB, Feb 17, 2014, Download count: 499
Extras Set

JMeterPlugins-ExtrasLibs-1.1.3.zip, 4.75 MB, Feb 17, 2014, Download count: 373
Extras with Libs Set

JMeterPlugins-WebDriver-1.1.3.zip, 10.22 MB, Feb 17, 2014, Download count: 254
WebDriver Set

JMeterPlugins-Hadoop-1.1.2.zip, 10.84 MB, Oct 27, 2013, Download count: 1086
Hadoop Set



Importante para usar los plugins se debe tener la version 2.8 y JRE 1.6 o superior en ambos casos.

La instalacion:

  1. Extract archive contents to JMeter installation directory
  2. Restart JMeter to load new plugins
You can find JMeter installation directory as the upper directory of bin, where jmeter start scripts are located. Make sure it contains lib and lib/ext directories.

Para mas detalles

Una vez descomprimidos los plugins reiniciar jmeter y se pueden usar varias opciones adicionales, la que encuentro muy util es la grafico de transacciones por segundo, muy usada en desarrollos para poder estimar la carga que se le puede dar a un servicio.





Netbeans 7.4 How To package Native (windows)


Empaquetado Nativos se introdujo por primera vez como parte de  JavaFX SDK 2.2 que permite empaquetar una aplicación como paquete nativo y luego instalar y ejecutar la aplicación sin ningún tipo de dependencias externas de un JRE sistema o JavaFX SDK.

Software or ResourceVersion Required
NetBeans IDE7.4
Java Development Kit (JDK)7 update 25 or more recent
Inno Setup5.5 or more recent
WiX3.7 or more recent

To install Inno Setup:
  1. Download ispack-5.5.3.exe from the Inno Setup Downloads page.
  2. Double-click the file to launch the installer.
  3. Accept the Inno Setup license agreement and click Next.
  4. Follow the instructions in the install wizard for installing Inno Setup.
To install WiX:
  1. Download wix37.exe from the WiX Toolset - Download page.
  2. Double-click the file to launch the installer.
  3. Follow the instructions in the install wizard for installing WiX.
To add Inno Setup and/or WiX to the system Path variable:
  1. On Windows 7, select Start > Computer > System Properties > Advanced system settings.
  2. Select the Advanced tab and click the Environment Variables button.
  3. In the System Variables pane, double-click the Path variable.
  4. In the Edit System Variable dialog box, add a semicolon followed by a new path to the Variable value field (for example, C:\Program Files (x86)\Inno Setup 5 or C:\Program Files (x86)\WiX Toolset v3.6\bin).
  5. Click OK to close all the open dialog boxes.




En el build-native.xml que genera Netbeans agregar las siguientes lineas:

// fx:preferences
var pref = deploy.createPreferences();
pref.setProject(project);
pref.setShortcut(true);
pref.setMenu(true);

Con esto se consigue primero crear un acceso directo en el escritorio y agregar el nombre de la aplicacion al menu inicio de windows.
El build de netbeans construye el archivo descriptor a punta de Java Script.
Para personalizar el icono de la aplicacion, agregar el *.ico con el nombre del proyecto en un package que se llame:  "package/windows/${projectname}.ico"
Lo siguiente es agregar el classpath al Ant y automaticamente tomara el icono.

Ahora nose como agregar la opcion de lo lenguajes que permite Inno 5 Setup. Por Ej:



[Languages]
Name: "en"; MessagesFile: "compiler:Default.isl"
Name: "nl"; MessagesFile: "compiler:Languages\Dutch.isl"
No cacho como :(  desde el fx no hay tag que lo permita.
Asique el instalador esta por defecto en ingles.
Ojo que el instalador y el ejecutable creado dependeran de la maquina en donde tienen instalado el netbeans, si tiene unstalado el netbeans en 64 bits les creara instaladores y en 64 bits y si compilan con una maquina virtual de java en 64 bits sus aplicaciones seran en 64 bits.

Para evitar esto editar el /etc/netbeans.conf

--locale language[[[:country[[:variant | [:country[[:variant]]]
Ej:


# Options used by NetBeans launcher by default, can be overridden by explicit
# command line switches:
netbeans_default_options="-J-d32 -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-XX:MaxPermSize=200m 
-J-Dapple.laf.useScreenMenuBar=true -J-Dnetbeans.winsys.statusLine.in.menuBar=true -J-Dsun.java2d.noddraw=true"

# Default location of JDK, can be overridden by using --jdkhome :
netbeans_jdkhome="C:\Program Files\Java\jdk1.6.0_20"

How to Hibernate SQLQuery Native

Primero en hibernate se pueden ejecutar consultas con entidades, HQL y SQL nativo para querys mas rebuscadas (join , llamados a funciones, count ,etc). El ejemplo a continuación es un ejemplo de SQL nativo para un insert.


/**
     * Guarda nuevo registro en BD
     *
     * @param estado TO con datos del nuevoo estado a ingresar
     * @return
     * @throws TechnicalFault
     */
    public boolean persistTblEstado(Estado estado) throws TechnicalFault {
        boolean estadoInsert = false;
        Session sessionhb = null;
        Transaction tx = null;
        try {
            sessionhb = factory.openSession();
            tx = sessionhb.beginTransaction();
            Estado u = (Estado) consultaEstadoMovil(estado.getImei());
            if (u == null) {
                
                //Insert into TBL_ESTADOS ( CODIGO_COMPANIA , FECHA_SOLICITUD , FECHA_OPERADORA , FECHA_INGRESO , FECHA_DENUNCIA , TIPO_TECNOLOGIA , TIPO_COMUNICACION , TIPO_EQUIPO , TIPO_PLAN , ACCION , MOTIVO , CODIGO_OPERACION , CODIGO_SISTEMA , MARCA , MODELO , IMEI , MSISDN , IMSI , ICCID , USUARIO , CODIGO_IDD ) values (?,to_timestamp(?,''YYYYMMDDHH24MISS''),to_timestamp(?,''YYYYMMDDHH24MISS''),to_timestamp(?,''YYYYMMDDHH24MISSFF''),to_timestamp(?,''YYYYMMDDHH24MISS''),GETTECNOLOGIA(?,?),?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
                Query q = sessionhb.createSQLQuery(JDBC_INSERT_ESTADO);
                q.setInteger(0, estado.getCompania());
                q.setString(1, estado.getFechaSolicitud());
                q.setString(2, estado.getFechaOperadora());
                q.setString(3, estado.getFechaIngreso());
                q.setString(4, estado.getFechaDenuncia()); 
                q.setString(5, estado.getImei());
                q.setString(6, estado.getTecnologia());
                q.setString(7, estado.getComunicacion());
                q.setString(7, estado.getEquipo());
                q.setString(9, estado.getPlan());
                q.setString(10, estado.getAccion());
                q.setInteger(11, estado.getMotivo());
                q.setString(12, getCodigoOperacion(estado.getCodigoOperacion()));
                q.setInteger(13, estado.getSistema());
                q.setString(14, estado.getMarca());
                q.setString(15, estado.getModelo());
                q.setString(16, estado.getImei());
                q.setString(17, estado.getMsisdn());
                q.setLong(18, estado.getImsi());
                q.setLong(19, estado.getIccid());
                q.setString(20, estado.getUsuario());
                q.setInteger(21, estado.getCodigoIdd());
                q.executeUpdate();
                sessionhb.flush();//***********************
                tx.commit();
            } else {
                mergeTblEstado(estado);
            }
            estadoInsert = true;
        } catch (Exception e) {
            try {
                tx.rollback();
            } catch (RuntimeException rbe) {
                LanzaExcepcion.throwsTechnicalFault(JPA_ERROR_IN);
            }
            LanzaExcepcion.throwsTechnicalFault(JPA_ERROR_IN);
        } finally {
            if (sessionhb != null) {
                sessionhb.close();
            }
        }
        return estadoInsert;
    }

Evitar el ERROR perm gen space error in weblogic

Si alguna vez se esta deployando en weblogic y da este error:


Root cause of ServletException.
java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:335)
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:288)
Truncated. see log file for complete stacktrace

Ir al siguiente directorio:
\Middleware\user_projects\domains\fms_domain\bin\setDomainEnv.cmd

Editar la shell en el caso de windows, en Linux :
/Middleware/user_projects/domains/desarrollo/bin/setDomainEnv.sh

Cambiar las opciones de max pergen size de:

MEM_PERM_SIZE_64BIT="-XX:PermSize=128m"
export MEM_PERM_SIZE_64BIT

MEM_PERM_SIZE_32BIT="-XX:PermSize=48m"
export MEM_PERM_SIZE_32BIT


a:

MEM_MAX_PERM_SIZE_64BIT="-XX:MaxPermSize=512m"
export MEM_MAX_PERM_SIZE_64BIT

MEM_MAX_PERM_SIZE_32BIT="-XX:MaxPermSize=512m"
export MEM_MAX_PERM_SIZE_32BIT


 y problema resuelto.

HelloWorld Spring 3.0 en Weblogic 10.3.6 + Netbeans 7.4

Para comenzar como requisito deben tener instalado el servidor J2EE para este caso el weblogic 10.3.6 mas el Netbeans 7.4 j2ee que tiene incluidas las librerias de Spring MVC.

Primer se  crea un proyecto web

 Seleccionamos el servidor y la raiz del contexto
 En esta pestañan seleccionan el framework Spring MVC la version sera la 3.2.3 y tambien incluimos JSTL
 En la configuracion se da el nombre del descriptor XML que contiene los despachadores y le damos la extencion que van a tener las paginas en las URL, aunque sean paginas JSP se mostrara en la URL el *.htm
 una vez creado el proyecto

Luego creamos un package para el controlador:

y agregamos la clase controlador.


package cl.allware.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

/**
 *
 * @author luxo
 */
@Controller
@RequestMapping("/welcome")
public class HelloController {
    @RequestMapping(method = RequestMethod.GET)
 public String printWelcome(ModelMap model) {
 
  model.addAttribute("message", "Spring 3 MVC Hello World");
  return "hello";
 
 }
    
}

Ahora para poder resolver el controlador necesitamos agregar unas lineas en el despachador XML:



    

    
    
    
    
    

 

    
    




Y por ultimo el descriptor WEB.XML


    
        contextConfigLocation
        /WEB-INF/applicationContext.xml
    
    
        org.springframework.web.context.ContextLoaderListener
    
    
        dispatcher
        org.springframework.web.servlet.DispatcherServlet
        2
    
    
        dispatcher
        *.htm
    
    
        
            30
        
    
    
        redirect.jsp
    




En la capa vista crear una pagina :

<%-- 
    Document   : hello
    Created on : 03-02-2014, 10:45:49 AM
    Author     : luxo
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>


    
        
        JSP Page
    
 
 

Message : ${message}



ahora al hacer deploy en el servidor deberia aparecer el siguiente mensaje:

03-02-2014 12:21:48 PM org.springframework.web.context.ContextLoader initWebApplicationContext
INFO: Root WebApplicationContext: initialization started
03-02-2014 12:21:48 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing Root WebApplicationContext: startup date [Mon Feb 03 12:21:48 CLST 2014]; root of context hierarchy
03-02-2014 12:21:48 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml]
03-02-2014 12:21:48 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@885065: defining beans [helloBean]; root of factory hierarchy
03-02-2014 12:21:48 PM org.springframework.web.context.ContextLoader initWebApplicationContext
INFO: Root WebApplicationContext: initialization completed in 343 ms
03-02-2014 12:21:48 PM org.springframework.web.servlet.FrameworkServlet initServletBean
INFO: FrameworkServlet 'dispatcher': initialization started
03-02-2014 12:21:48 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing WebApplicationContext for namespace 'dispatcher-servlet': startup date [Mon Feb 03 12:21:48 CLST 2014]; parent: Root WebApplicationContext
03-02-2014 12:21:48 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/dispatcher-servlet.xml]
03-02-2014 12:21:49 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@36b863: defining beans [org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping#0,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,mvcContentNegotiationManager,org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0,org.springframework.format.support.FormattingConversionServiceFactoryBean#0,org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter#0,org.springframework.web.servlet.handler.MappedInterceptor#0,org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver#0,org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver#0,org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver#0,org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter,org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter,helloController,viewResolver,indexController,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; parent: org.springframework.beans.factory.support.DefaultListableBeanFactory@885065
03-02-2014 12:21:49 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/hello] onto handler 'helloController'
03-02-2014 12:21:49 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/hello/*] onto handler 'helloController'
03-02-2014 12:21:49 PM org.springframework.web.servlet.handler.AbstractHandlerMethodMapping registerHandlerMethod
INFO: Mapped "{[/welcome],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String cl.allware.controller.HelloController.printWelcome(org.springframework.ui.ModelMap)
03-02-2014 12:21:49 PM org.springframework.web.servlet.FrameworkServlet initServletBean
INFO: FrameworkServlet 'dispatcher': initialization completed in 730 ms


Y en la pagina se mostrara:

El proyecto netbeans se puede descargar en:


HelloSpring3.rar



Problemas de activación WIFI6 en LG_OLED55CXPSA

  Mi experiencia con este TV  ah sido impecable hasta ahora, llevaba un uso normal y no tenia que usar la conexión por wifi ya que tengo una...