This book is all about using soapUI for functional and performance testing of service-oriented solutions. soapUI can be used to test various aspects of a service-oriented solution without merely playing the role of a web service invocation tool. We will follow a simple tutorial-style approach throughout the book in which we will explore all key features provided by soapUI based on a sample web services project. This book is ideally designed to guide readers to get more detailed insight on soapUI by doing a lot of hands-on exercises.
Web Services Testing with soapUI -
Charitha Kankanamge
Uma introdução regular
O autor inicia o livro com uma introdução sobre webservices muito boa, mas no decorrer da obra ele vai, infelizmente, perdendo o ritmo com em que começou. O livro peca por alguns erros de revisão, especialmente com relação ao código Java e Groovy. A parte prática também se torna um problema pois o autor assume que o leitor conheça Java (especialmente J2EE e JDBC) o que, na minha opinião, não deveria ser abordado, muito menos esperado, em um livro sobre uma ferramenta de testes de webservices que deveria, à rigor, ser independente de plataforma. Considerando que a proposta do livro é ser de cunho prático, o autor poderia ter providenciado um download com todo o aparato necessário para testar os webservices, incluindo o download dos instaladores (talvez uma VM?) o que evitaria problemas de configuração. Mesmo utilizando as versões recomendadas, eu tive problemas com o Axis2, como exemplo a impossibilidade de utilizar autenticação com o Rampart: Using JAVA_HOME C:\Program Files\Java\jdk1.7.0_17 Using AXIS2_HOME R:\axis2-1.6.2 [INFO] [SimpleAxisServer] Starting [INFO] [SimpleAxisServer] Using the Axis2 RepositoryR:\axis2-1.6.2\repository [SimpleAxisServer] Using the Axis2 RepositoryR:\axis2-1.6.2\repository [SimpleAxisServer] Using the Axis2 Configuration FileR:\axis2-1.6.2\conf\axis2.xml [INFO] Clustering has been disabled [INFO] Deploying module: addressing-1.6.2 - file:/R:/axis2-1.6.2/repository/modules/addressing-1.6.2.mar [INFO] Deploying module: metadataExchange-1.6.2 - file:/R:/axis2-1.6.2/repository/modules/mex-1.6.2.mar [INFO] Deploying module: mtompolicy-1.6.2 - file:/R:/axis2-1.6.2/repository/modules/mtompolicy-1.6.2.mar [INFO] Deploying module: ping-1.6.2 - file:/R:/axis2-1.6.2/repository/modules/ping-1.6.2.mar [INFO] Deploying module: rahas-1.6.2 - file:/R:/axis2-1.6.2/repository/modules/rahas-1.6.2.mar [INFO] Deploying module: rampart-1.6.2 - file:/R:/axis2-1.6.2/repository/modules/rampart-1.6.2.mar [INFO] Deploying module: script-1.6.2 - file:/R:/axis2-1.6.2/repository/modules/scripting-1.6.2.mar [INFO] Deploying module: soapmonitor-1.6.2 - file:/R:/axis2-1.6.2/repository/modules/soapmonitor-1.6.2.mar [INFO] Deploying Web service: HotelReservation.aar - file:/R:/axis2-1.6.2/repository/services/HotelReservation.aar [INFO] Deploying Web service: version.aar - file:/R:/axis2-1.6.2/repository/services/version.aar [INFO] Listening on port 8080 [INFO] [SimpleAxisServer] Started [SimpleAxisServer] Started [ERROR] The security token could not be authenticated or authorized org.apache.axis2.AxisFault: The security token could not be authenticated or authorized at org.apache.rampart.handler.RampartReceiver.setFaultCodeAndThrowAxisFault(RampartReceiver.java:180) at org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:95) at org.apache.axis2.engine.Phase.invokeHandler(Phase.java:340) at org.apache.axis2.engine.Phase.invoke(Phase.java:313) at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:262) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:168) at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172) at org.apache.axis2.transport.http.HTTPWorker.service(HTTPWorker.java:307) at org.apache.axis2.transport.http.server.AxisHttpService.doService(AxisHttpService.java:281) at org.apache.axis2.transport.http.server.AxisHttpService.handleRequest(AxisHttpService.java:187) at org.apache.axis2.transport.http.server.HttpServiceProcessor.run(HttpServiceProcessor.java:82) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722) Caused by: org.apache.ws.security.WSSecurityException: The security token could not be authenticated or authorized at org.apache.ws.security.validate.UsernameTokenValidator.verifyDigestPassword(UsernameTokenValidator.java:189) at org.apache.ws.security.validate.UsernameTokenValidator.verifyPlaintextPassword(UsernameTokenValidator.java:142) at org.apache.ws.security.validate.UsernameTokenValidator.validate(UsernameTokenValidator.java:100) at org.apache.ws.security.processor.UsernameTokenProcessor.handleUsernameToken(UsernameTokenProcessor.java:131) at org.apache.ws.security.processor.UsernameTokenProcessor.handleToken(UsernameTokenProcessor.java:65) at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:396) at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:304) at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:249) at org.apache.rampart.RampartEngine.process(RampartEngine.java:149) at org.apache.rampart.handler.RampartReceiver.invoke(RampartReceiver.java:92) ... 12 more [WARN] Deprecated usage of OMElement#declareNamespace(String,String) with empty prefix O autor disponibiliza o código necessário para a aplicação Java e scripts do banco de dados MySQL, mas o restante da configuração depende do leitor. Eu passei mais tento brigando com o ambiente do que estudando os detalhes do soapUI. A introdução sobre o Groovy deixou bastante a desejar também: ao invés de gastar tempo mostrando código Java para colocar os webservices funcionando, o autor deveria ter utilizado este espaço para explicar melhor os conceitos de Groovy. Como introdução sobre o soapUI, a obra tem seu valor, mas é limitada com relação a profundidade que aborda os temas.
Estatísticas
Avaliações
2 / 1- 5 estrelas0%
- 4 estrelas0%
- 3 estrelas0%
- 2 estrelas100%
- 1 estrelas0%
