2009-03-06 23 views
39

He usado esta herramienta que se incluye con Microsoft Visual Studio porque es rápido y sucio¿Cuál es la mejor manera de probar los servicios de WCF?

http://msdn.microsoft.com/en-us/library/bb552364.aspx

Pero es un poco torpe y difícil de trabajar. ¿Hay algún otro cliente de prueba útil que use y no requiera crear un nuevo proyecto de estudio visual y código de compilación?

EDIT: Estoy buscando más una herramienta de prueba gráfica que pueda usar para hacer pruebas rápidas ad-hoc de sistemas en nuestros diferentes entornos sin tener que escribir muchas pruebas diferentes.

Respuesta

16

SoapUI es otra herramienta de prueba del servicio web. Lo recomiendo encarecidamente

+0

Busco más que servicios web, estamos utilizando una gran cantidad de enlaces de net.tcp en WCF – Nick

+0

Sólo tiene que añadir un punto final basicHttpBinding adicional a su servicio y darle de comer a SoapUI. –

+2

que no estaría probando los NetTcpBindings que tenemos, que es el propósito total – Nick

8

No va a encontrar ninguna herramienta mejor para crear pruebas automatizadas de servicios WCF que usar su marco de pruebas de unidad favorito y escribir pruebas. El cliente de prueba ni soapUI crearán una prueba que se pueda ejecutar en un escenario de integración continua.

+7

@John, estoy usando SoapUI en compilaciones de integración continua todos los días: http://www.soapui.org/userguide/commandline/functional.html –

+1

Gracias por publicarlo. Si usa jUnit para probar los servicios de WCF, entonces debe publicarlo en algún lugar. La mayoría de la gente no usaría Java para probar el código .NET. –

+2

No mencioné que uso JUnit. Con SoapUI puedes escribir pruebas web y definir expectativas. Estas pruebas se pueden ejecutar en la línea de comandos y los resultados se escribirán en un archivo de texto estándar que se puede interpretar durante la compilación. –

1

Bueno, termino escribiendo pruebas unitarias en la prueba MS. Antes de cada prueba, el servicio es alojado por el ensamblaje de prueba y desglosado después. Claro que no se trata de pruebas unitarias, por lo que los puristas se estremecerán, pero significa que puedo realizar pruebas con la frecuencia que desee.

+1

Junto con las "pruebas de unidad de servicio" convencionales que llaman a las interfaces de servicio directamente, burlándose del nivel de dominio, también tenemos "pruebas de autohospedaje de servicio" que alojan el servicio en el marco de prueba de unidad pero que también simulan el nivel de dominio. Estas son una especie de mezcla entre las pruebas de integración y las pruebas unitarias, pero demuestran que nuestro marshalling y serialización funcionan correctamente, algo que de otra manera es complicado de lograr. –

0

Si necesita probar la lógica del cliente: Puede usar el marco de simulación/aislamiento para unir las llamadas reales al servidor y usar un marco de prueba unitario para escribir Pruebas unitarias correctas.

Probar la lógica del servidor puede ser incluso más fácil: todo lo que necesita es probar la llamada a la lógica de negocios y las llamadas internas a los componentes externos (es decir, la base de datos).

No existe un beneficio real de la prueba unitaria de la interacción total entre el cliente y el servidor porque usted sabe que WCF funciona, en cambio, agrega pruebas de integración de todo el entorno en un servidor/clientes dedicados.

+0

Existe un beneficio en un entorno TDD, y está cambiando sus enlaces –

+0

, por lo que hay pruebas de lógica del cliente (proxy) y prueba del servicio en sí, los métodos que llaman a los métodos de capa empresarial ¿no? entonces realmente necesitas 2 sets y niños de pruebas aquí para un servicio. – PositiveGuy

1

No quise dar a entender que soapUI no funciona para un servicio WCF expuesto utilizando basicHttpBinding. Usar basicHttpBinding funcionaría porque el servicio funcionaría como un servicio web legaxy ASMX. Sin embargo, si se trata de cambiar el enlace (o usar enlaces múltiples) a netTcpBinding por ejemplo, no creo que todavía sea posible invocar los métodos de ese servicio usando soapUI. El escenario que estoy describiendo es bastante común en el que tiene un servicio WCF expuesto en la web utilizando el punto final básico de conexión HTTP para una interoperabilidad máxima, y ​​otro punto final como netTcpBinding (para un rendimiento máximo) utilizado solo internamente.

1

Hay este nuevo cliente de prueba llamado SOA Cleaner, te recomiendo que lo pruebes. Es compatible con WCF. se puede encontrar en: http://xyrow.com.

+0

¿Puedes decir más al respecto? ¿Qué hay de bueno en eso? ¿Lo que es malo? –

+0

Es una aplicación .NET. Es muy simple y liviano; no necesito ninguna instalación. – Clangon

1

Ejecuto WcfStorm con su evaluación de 15 días y estoy impresionado con él. Conéctese al servicio y todos los métodos están expuestos. Haga clic en un método y puede crear múltiples casos de prueba. Después de que haya terminado, puede guardar estas pruebas (las mías se mantendrán como un archivo de solución con el servicio) y, a medida que realiza cambios, puede ejecutar todas las pruebas que satisfagan las pruebas continuas. También tiene una línea de comando que debería permitirle integrarse en su máquina de construcción para realizar verdaderas pruebas continuas.

También es compatible con IronPython, por lo que es posible que pueda crear secuencias de comandos de la prueba agregada si es bueno con ese lenguaje de scripting.

0

Increíble WCFStorm, pero creo que es demasiado caro para un desarrollador independiente.

Como dijo Darin, también recomiendo soapUI.

Pero hay un caso especial, que soapUI no respalda la solicitud JSON cuando utiliza REST en WCF y envía la solicitud como un mensaje POST.

En ese caso, puede utilizar una herramienta que encontré aquí:

WCF RESTful JSON automated testing

+0

¿Podría ser más específico de lo que es el caso especial? –

5

WCFStorm es útil para probar la forma en que está describiendo.

Cuestiones relacionadas