Escrita en Perl, WebInject es principalmente una herramienta de línea de comandos, aunque su autor proporciona una interfaz que al menos simplifica la ejecución de pruebas para quienes no quieren pasar mucho tiempo en la línea de comandos. Si no está familiarizado con Perl, no se asuste. WebInject está hecha de modo que puede construir sus pruebas sin tener que escribir ni un byte de código Perl. WebInject es realmente un motor de ejecución y generador de reportes. A diferencia de otras herramientas, no tiene una interfaz de usuario estilo IDE, por lo que las pruebas deben ser escritas en un editor externo. Esto lo hace sentir menos profesional, pero no entorpece la herramienta. Para añadir un caso de prueba, el usuario trabaja con su editor favorito, corta y pega y ajusta un poco, para alterar la plantilla para cumplir con la circunstancia específica, ¡y listo!, tendrá un nuevo caso de prueba. Cuando lanza WebInject, lee un archivo XML que contiene una descripción de los casos de prueba que va a ejecutar el motor. Cada uno es descrito por un conjunto de atributos. Cada caso de prueba es descrito por un juego de atributos dentro de un elemento de XML. Así, un sencillo caso de prueba que verifica que un método Web específico devuelve una lista de libros que incluya My Antonia debe verse así: soapListTest.xml” posttype=”text/xml” addheader=”SOAPaction: urn:getBookList” verifypositive=”My Antonia” /> El atributo “id” no solo proporciona un nombre único para el caso de prueba también identifica el orden de ejecución de los casos. El resto de los atributos son razonablemente inequívocos. El valor pasado por el atributo “postbody” le dice a WebInject que vaya a tomar un archivo XML llamado “soapListTest.xml” en el actual directorio y lo use para crear el contenido SOAP para el requerimiento. Si el resultado incluye la cadena “My Antonia”, esta prueba será exitosa. WebInject proporciona tres atributos adicionales “verifypositive”, y el valor de cada uno es tratado como una expresión regular. Esto significa que puede crear especificaciones de verificación bastante complejas – específicamente, puede construir un paso de prueba que pase solo después de que lo haya hecho a través de los filtros de cuatro expresiones regulares, una para cada atributo “verifypositive”. Un elemento de caso de prueba debe también incluir cuatro atributos “verifynegative” que funcionan de manera opuesta a “verifypositive”: El caso de prueba falla si alguna de las expresiones regulares coincide. En esencia, un “proyecto” WebInject no otra cosa que un archivo XML lleno de un juego de elementos encadenados uno tras otro. La estructura simple de WebInject lo deja construir pruebas con rapidez sorprendente. Debe, sin embargo, entender un buen conocimiento de los mecanismos de los protocolos SOAP así como una herramienta que le permita generar y capturar peticiones y respuestas HTTP/SOAP. Necesitará las peticiones para construir el cuerpo POST y las respuestas de modo que pueda crear expresiones regulares “verifypositive” y “verifynegative” apropiadas para checar el éxito o la falla. A medida que se ejecuta cada caso de prueba, la interfaz de usuario de WebInject muestra el estado (pasó o falló). Puede configurar WebInject para proporcionar una opción completa de todas las peticiones y respuestas, una función sumamente útil que ciertamente llamará cuando necesite depurar un caso de prueba fallido. Además, la interfaz de usuario producirá opcionalmente una gráfica en tiempo real del tiempo de respuesta (recorrido completo) para cada par de petición/respuesta, de modo que puede usar WebInject para construir y monitorear pruebas de desempeño. WebInject proporciona un plug-in para MRTG (Graficador de Tráfico Multi Ruta), una herramienta de monitoreo de red y recolección de información, permitiéndote ejecutar y capturar los resultados de los casos de prueba sobre un periodo de tiempo, así como examinar la información para detectar patrones y tendencias. La mayor característica de WebInject es su simplicidad. Una vez que ha logrado entender los comandos XML de WebInject, puede construir, modificar y extender los casos de prueba rápidamente.