jMeter - แผนการทดสอบบริการเว็บไซต์

ในบทนี้เราจะเรียนรู้วิธีสร้างแผนการทดสอบเพื่อทดสอบบริการเว็บ เพื่อวัตถุประสงค์ในการทดสอบของเราเราได้สร้างโปรเจ็กต์บริการเว็บอย่างง่ายและปรับใช้บนเซิร์ฟเวอร์ Tomcat ภายในเครื่อง

สร้างโครงการบริการเว็บไซต์

ในการสร้างโปรเจ็กต์บริการเว็บเราได้ใช้ Eclipse IDE ขั้นแรกให้เขียน Service Endpoint InterfaceHelloWorld ภายใต้แพ็คเกจ 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");
   }
}

ตอนนี้ให้เราเผยแพร่บริการเว็บนี้ในพื้นที่โดยการสร้างผู้เผยแพร่ปลายทางและแสดงบริการบนเซิร์ฟเวอร์

วิธีการเผยแพร่ใช้สองพารามิเตอร์ -

  • สตริง URL ปลายทาง

  • ออบเจ็กต์ Implementor ในกรณีนี้คือคลาสการใช้งาน HelloWorld ซึ่งแสดงเป็น Web Service ที่ปลายทางที่ระบุโดย 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

สร้างแผนการทดสอบ JMeter

ตอนนี้ให้เราสร้างแผนการทดสอบเพื่อทดสอบบริการเว็บด้านบน

เปลี่ยนชื่อแผนการทดสอบ

  • เปิดหน้าต่าง JMeter โดยคลิก /home/manisha/apache-jmeter2.9/bin/jmeter.sh

  • คลิกโหนดแผนการทดสอบ

  • เปลี่ยนชื่อโหนดแผนการทดสอบนี้เป็น WebserviceTest

เพิ่มกลุ่มเธรด

เพิ่มกลุ่มเธรดหนึ่งกลุ่มซึ่งเป็นตัวยึดสำหรับองค์ประกอบอื่น ๆ ทั้งหมดเช่นแซมเพลอร์ตัวควบคุมและผู้ฟัง

  • คลิกขวาที่ WebserviceTest (แผนการทดสอบของเรา) →เพิ่ม→เธรด (ผู้ใช้) →กลุ่มเธรด กลุ่มเธรดจะถูกเพิ่มภายใต้โหนดแผนทดสอบ (WebserviceTest)

  • ต่อไปให้เราแก้ไขคุณสมบัติเริ่มต้นของกลุ่มเธรดเพื่อให้เหมาะกับการทดสอบของเรา คุณสมบัติต่อไปนี้มีการเปลี่ยนแปลง -

    • Name - ผู้ใช้บริการเว็บ

    • Number of Threads (Users) - 2

    • Ramp-Up Period - ปล่อยให้ค่าเริ่มต้นเป็น 0 วินาที

    • Loop Count - 2

เพิ่ม Sampler - SOAP / XML-RPC Request

ตอนนี้เราได้กำหนดผู้ใช้แล้วก็ถึงเวลากำหนดงานที่พวกเขาจะดำเนินการ

เราจะเพิ่มองค์ประกอบคำขอ SOAP / XML-RPC -

  • คลิกขวาที่ปุ่มเมาส์เพื่อรับเมนูเพิ่ม

  • เลือกเพิ่ม→ Sampler → SOAP / XML-RPC Request

  • เลือกองค์ประกอบคำขอ SOAP / XML-RPC ในแผนภูมิ

  • แก้ไขคุณสมบัติต่อไปนี้ดังภาพด้านล่าง -

  • รายละเอียดต่อไปนี้ถูกป้อนในองค์ประกอบนี้ -

    • Name − SOAP/XML-RPC Request

    • URL - http: // localhost: 8080 / สวัสดี / สวัสดี? wsdl

    • Soap/XML-RPC Data - เข้าสู่เนื้อหาด้านล่าง

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

เพิ่ม Listener

องค์ประกอบสุดท้ายที่คุณต้องเพิ่มในแผนการทดสอบของคุณคือ Listener องค์ประกอบนี้มีหน้าที่จัดเก็บผลลัพธ์ทั้งหมดของคำขอ HTTP ของคุณในไฟล์และนำเสนอแบบจำลองภาพของข้อมูล

  • เลือกองค์ประกอบผู้ใช้บริการเว็บ

  • เพิ่ม View Results Tree Listener โดยเลือกเพิ่ม→ Listener → View Results Tree

เรียกใช้แผนการทดสอบ

ตอนนี้บันทึกการวางแผนการทดสอบดังกล่าวข้างต้นเป็นtest_webservice.jmx ดำเนินการตามแผนการทดสอบนี้โดยใช้ตัวเลือก Run → Start

ดูผลลัพธ์

เอาต์พุตต่อไปนี้สามารถมองเห็นได้ใน Listener

ในภาพสุดท้ายคุณจะเห็นข้อความตอบกลับ "Hello Manisha to JAX WS world"