В этой главе мы узнаем, как создать план тестирования для тестирования WebService. Для нашего теста мы создали простой проект веб-сервиса и развернули его на сервере Tomcat локально.
Создать проект веб-сервиса
Для создания проекта веб-сервиса мы использовали Eclipse IDE. Сначала напишите интерфейс конечной точки службы HelloWorld в пакете com.tutorialspoint.ws . Содержимое HelloWorld.java выглядит следующим образом:
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); }
Этот сервис имеет метод getHelloWorldMessage, который принимает параметр String.
Затем создайте класс реализации HelloWorldImpl.java в пакете 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"); } }
Давайте теперь опубликуем этот веб-сервис локально, создав издателя Endpoint и выставив сервис на сервере.
Метод публикации принимает два параметра —
-
Строка URL конечной точки.
-
Объект реализатора, в данном случае класс реализации HelloWorld, который предоставляется в качестве веб-службы в конечной точке, идентифицируемой URL-адресом, указанным в приведенном выше параметре.
Строка URL конечной точки.
Объект реализатора, в данном случае класс реализации HelloWorld, который предоставляется в качестве веб-службы в конечной точке, идентифицируемой URL-адресом, указанным в приведенном выше параметре.
Содержимое HelloWorldPublisher.java выглядит следующим образом:
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()); } }
Измените содержимое web.xml, как показано ниже —
<?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>
Чтобы развернуть это приложение как веб-сервис , нам понадобится другой файл конфигурации sun-jaxws.xml . Содержимое этого файла выглядит следующим образом —
<?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>
Теперь, когда все файлы готовы, структура каталогов будет выглядеть так, как показано на следующем снимке экрана —
-
Теперь создайте WAR-файл этого приложения.
-
Выберите проект → щелкните правой кнопкой мыши → Экспорт → WAR-файл.
-
Сохраните его как файл hello.war в папке webapps сервера Tomcat.
-
Теперь запустите сервер Tomcat.
-
После запуска сервера вы сможете получить доступ к веб-сервису с помощью URL — http: // localhost: 8080 / hello / hello
Теперь создайте WAR-файл этого приложения.
Выберите проект → щелкните правой кнопкой мыши → Экспорт → WAR-файл.
Сохраните его как файл hello.war в папке webapps сервера Tomcat.
Теперь запустите сервер Tomcat.
После запуска сервера вы сможете получить доступ к веб-сервису с помощью URL — http: // localhost: 8080 / hello / hello
Создать план тестирования JMeter
Теперь давайте создадим план тестирования для тестирования вышеуказанного веб-сервиса.
Переименовать план тестирования
-
Откройте окно JMeter, нажав /home/manisha/apache-jmeter2.9/bin/jmeter.sh.
-
Щелкните по узлу «План тестирования».
-
Переименуйте этот узел плана тестирования в WebserviceTest.
Откройте окно JMeter, нажав /home/manisha/apache-jmeter2.9/bin/jmeter.sh.
Щелкните по узлу «План тестирования».
Переименуйте этот узел плана тестирования в WebserviceTest.
Добавить группу тем
Добавьте одну группу потоков, которая является заполнителем для всех других элементов, таких как Samplers, Controllers и Listeners.
-
Щелкните правой кнопкой мыши по WebserviceTest (наш план тестирования) → Добавить → Темы (пользователи) → Группа потоков. Группа потоков будет добавлена в узел плана тестирования (WebserviceTest).
-
Далее, давайте изменим свойства группы потоков по умолчанию, чтобы они соответствовали нашему тестированию. Следующие свойства изменены —
-
Имя — пользователь веб-сервиса
-
Количество потоков (пользователей) — 2
-
Ramp-Up Period — оставьте значение по умолчанию 0 секунд.
-
Количество циклов — 2
-
Щелкните правой кнопкой мыши по WebserviceTest (наш план тестирования) → Добавить → Темы (пользователи) → Группа потоков. Группа потоков будет добавлена в узел плана тестирования (WebserviceTest).
Далее, давайте изменим свойства группы потоков по умолчанию, чтобы они соответствовали нашему тестированию. Следующие свойства изменены —
Имя — пользователь веб-сервиса
Количество потоков (пользователей) — 2
Ramp-Up Period — оставьте значение по умолчанию 0 секунд.
Количество циклов — 2
Добавить сэмплер — запрос SOAP / XML-RPC
Теперь, когда мы определили пользователей, пришло время определить задачи, которые они будут выполнять.
Мы добавим элемент SOAP / XML-RPC Request —
-
Щелкните правой кнопкой мыши, чтобы открыть меню «Добавить».
-
Выберите Добавить → Выборка → SOAP / XML-RPC Запрос.
-
Выберите элемент SOAP / XML-RPC Request в дереве
-
Отредактируйте следующие свойства как на изображении ниже —
-
Следующие детали вводятся в этот элемент —
-
Имя — SOAP / XML-RPC-запрос
-
URL — http: // localhost: 8080 / hello / hello? Wsdl
-
Данные Soap / XML-RPC — введите содержимое ниже
-
Щелкните правой кнопкой мыши, чтобы открыть меню «Добавить».
Выберите Добавить → Выборка → SOAP / XML-RPC Запрос.
Выберите элемент SOAP / XML-RPC Request в дереве
Отредактируйте следующие свойства как на изображении ниже —
Следующие детали вводятся в этот элемент —
Имя — SOAP / XML-RPC-запрос
URL — http: // localhost: 8080 / hello / hello? Wsdl
Данные Soap / XML-RPC — введите содержимое ниже
<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>
Добавить слушателя
Последний элемент, который вам нужно добавить в свой план тестирования, — это слушатель. Этот элемент отвечает за хранение всех результатов ваших HTTP-запросов в файле и представление визуальной модели данных.
-
Выберите пользовательский элемент веб-сервиса.
-
Добавьте прослушиватель Просмотр дерева результатов, выбрав Добавить → Прослушиватель → Просмотр дерева результатов.
Выберите пользовательский элемент веб-сервиса.
Добавьте прослушиватель Просмотр дерева результатов, выбрав Добавить → Прослушиватель → Просмотр дерева результатов.
Запустите план тестирования
Теперь сохраните приведенный выше план тестирования как test_webservice.jmx . Выполните этот план тестирования, используя Run → Start.
Посмотреть вывод
Следующий вывод можно увидеть в слушателе.
На последнем изображении вы можете увидеть ответное сообщение «Hello Manisha to JAX WS world».