jMeter - Plano de Teste de Serviço da Web
Neste capítulo, aprenderemos como criar um Plano de Teste para testar um WebService. Para o nosso propósito de teste, criamos um projeto de serviço da web simples e o implementamos no servidor Tomcat localmente.
Criar projeto de serviço web
Para criar um projeto de serviço da Web, usamos o IDE Eclipse. Primeiro escreva a Interface do Terminal de ServiçoHelloWorld sob o pacote com.tutorialspoint.ws. O conteúdo do HelloWorld.java é o seguinte -
package com.tutorialspoint.ws;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
//Service Endpoint Interface
@WebService
@SOAPBinding(style = Style.RPC)
public interface HelloWorld {
@WebMethod String getHelloWorldMessage(String string);
}
Este serviço tem um método getHelloWorldMessage que leva um parâmetro String.
Em seguida, crie a classe de implementação HelloWorldImpl.java sob o pacote com.tutorialspoint.ws.
package com.tutorialspoint.ws;
import javax.jws.WebService;
@WebService(endpointInterface="com.tutorialspoint.ws.HelloWorld")
public class HelloWorldImpl implements HelloWorld {
@Override
public String getHelloWorldMessage(String myName) {
return("Hello "+myName+" to JAX WS world");
}
}
Agora, vamos publicar esse serviço da web localmente, criando o editor do Endpoint e expondo o serviço no servidor.
O método de publicação leva dois parâmetros -
String do URL do endpoint.
Objeto implementador, neste caso a classe de implementação HelloWorld, que é exposta como um serviço da Web no ponto de extremidade identificado pela URL mencionada no parâmetro acima.
O conteúdo de HelloWorldPublisher.java é o seguinte -
package com.tutorialspoint.endpoint;
import javax.xml.ws.Endpoint;
import com.tutorialspoint.ws.HelloWorldImpl;
public class HelloWorldPublisher {
public static void main(String[] args) {
Endpoint.publish("http://localhost:9000/ws/hello", new HelloWorldImpl());
}
}
Modifique o conteúdo do web.xml conforme mostrado abaixo -
<?xml version = "1.0" encoding = "UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems,
Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
<listener>
<listener-class>
com.sun.xml.ws.transport.http.servlet.WSServletContextListener
</listener-class>
</listener>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>120</session-timeout>
</session-config>
</web-app>
Para implantar este aplicativo como um serviço da web, precisaríamos de outro arquivo de configuração sun-jaxws.xml. O conteúdo deste arquivo é o seguinte -
<?xml version = "1.0" encoding = "UTF-8"?>
<endpoints
xmlns = "http://java.sun.com/xml/ns/jax-ws/ri/runtime"
version = "2.0">
<endpoint name = "HelloWorld"
implementation = "com.tutorialspoint.ws.HelloWorldImpl"
url-pattern = "/hello"/>
</endpoints>
Agora que todos os arquivos estão prontos, a estrutura do diretório deve ser semelhante à mostrada na imagem a seguir -
Agora crie um arquivo WAR deste aplicativo.
Escolha o projeto → clique com o botão direito → Exportar → arquivo WAR.
Salvar como hello.war arquivo sob o webapps pasta do servidor Tomcat.
Agora inicie o servidor Tomcat.
Assim que o servidor for iniciado, você deverá conseguir acessar o serviço da web com a URL - http: // localhost: 8080 / hello / hello
Criar plano de teste JMeter
Agora vamos criar um plano de teste para testar o serviço da web acima.
Renomear o plano de teste
Abra a janela JMeter clicando em /home/manisha/apache-jmeter2.9/bin/jmeter.sh.
Clique no nó Plano de Teste.
Renomeie este nó do plano de teste como WebserviceTest.
Adicionar Grupo de Tópicos
Adicione um Thread Group, que é o espaço reservado para todos os outros elementos como Samplers, Controllers e Listeners.
Clique com o botão direito em WebserviceTest (nosso plano de teste) → Adicionar → Threads (usuários) → Grupo de threads. O Grupo de Threads será adicionado ao nó Plano de Teste (WebserviceTest).
A seguir, vamos modificar as propriedades padrão do Grupo de Threads para se adequar ao nosso teste. As seguintes propriedades são alteradas -
Name - usuário do webservice
Number of Threads (Users) - 2
Ramp-Up Period - deixe o valor padrão de 0 segundos.
Loop Count - 2
Adicionar Sampler - Solicitação SOAP / XML-RPC
Agora que definimos os usuários, é hora de definir as tarefas que eles executarão.
Vamos adicionar o elemento de solicitação SOAP / XML-RPC -
Clique com o botão direito do mouse para acessar o menu Adicionar.
Selecione Adicionar → Sampler → Solicitação SOAP / XML-RPC.
Selecione o elemento SOAP / XML-RPC Request na árvore
Edite as seguintes propriedades como na imagem abaixo -
Os seguintes detalhes são inseridos neste elemento -
Name − SOAP/XML-RPC Request
URL - http: // localhost: 8080 / hello / hello? Wsdl
Soap/XML-RPC Data - Insira o conteúdo abaixo
<soapenv:Envelope xmlns:soapenv = "http://schemas.xmlsoap.org/soap/envelope/"
xmlns:web = "http://ws.tutorialspoint.com/">
<soapenv:Header/>
<soapenv:Body>
<web:getHelloWorldMessage>
<arg0>Manisha</arg0>
</web:getHelloWorldMessage>
</soapenv:Body>
</soapenv:Envelope>
Adicionar ouvinte
O elemento final que você precisa adicionar ao seu plano de teste é um ouvinte. Este elemento é responsável por armazenar todos os resultados de suas solicitações HTTP em um arquivo e apresentar um modelo visual dos dados.
Selecione o elemento de usuário do serviço da web.
Adicione um ouvinte de Exibir árvore de resultados selecionando Adicionar → Listener → Exibir árvore de resultados.
Execute o plano de teste
Agora salve o plano de teste acima como test_webservice.jmx . Execute este plano de teste usando a opção Executar → Iniciar.
Veja o resultado
A seguinte saída pode ser vista no ouvinte.
Na última imagem, você pode ver a mensagem de resposta "Hello Manisha to JAX WS world".