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"