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".