Hiển thị các bài đăng có nhãn cong-cu-test-hieu-nang. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn cong-cu-test-hieu-nang. Hiển thị tất cả bài đăng

Thứ Hai, 15 tháng 9, 2014

Ví dụ test hiệu năng website với công cụ JMeter

>>> Bài tập ví dụ Test hiệu năng website với 1 user truy cập web (Không đăng nhập)
Đầu tiên chạy file jmeter lên có giao diện ban đầu như sau,

Tạo Thread Group cho Test Plan bằng cách đúp chuột phải vào Test Plan => Chọn Add => Click Thread Group option


Sau khi chọn Thread Group option, màn hình hiển thị các yếu tố thành phần dưới đây:
+ Name: Tên của Thread, có thể tạo tên bất kỳ để dễ phân biệt
+ Number of Thread: Số các thread được giả lập, mỗi thread tương đương với 1 user. Ví dụ có 5 thread thì tương đương với việc giả lập 5 user để gửi request
+ Ram up - Period: Cho biết thời gian JMeter tạo ra cần thiết cho thread (user). Ví dụ khai báo cho Ram up - Period là 10 thì trong khoảng thời gian 10s sẽ thực hiện số thread (user) ở trường Number of Thread, còn nếu set bằng 0 thì số thread (user) đó sẽ thực hiện cùng 1 lúc (xảy ra đồng thời cùng 1 lúc)
+ Loop count: Số lần lặp của việc kiểm thử. Nếu dòng checkbox của Forever được chọn thì việc lặp xảy ra liên tục cho đến khi người dùng dừng lại bàng tay.
+ Scheduler: Được dùng để lập lịch cho hành động kiểm thử
=> Xong bước tạo 1 Thread, tiếp đến ta tạo 1 Sampler như sau:


Click đúp chuột phải vào Thread Group => Chọn Add => Sampler
Hiển thị mục option có rất nhiều lựa chọn cho Sampler với các mục đích test khác nhau. Ở đây, đang viết VD về test web nên mình sẽ chọn HTTP Request => Hiển thị ra 1 giao diện HTTP Request như hình vẽ sau:


Các thông số trong form HTTP Request:
+ Name: Đặt tên Request
+ Server name of IP: Điền vào Domain hoặc IP trang web mà mình đang cần test
+ Port Number: Chỉ ra port của web, nếu để trống thì sẽ default là 80
+ Protocol: Giao thức được sử dụng là HTTP hoặc HTTPs
+ Method: Phương thức để các HTTP request. có các method: GET, POST, HEAD, PUSH..
+ Path: Đường dẫn các nguồn để xử lý các request
+ Parameter: Biểu diễn danh sách các tham số để gửi cùng request. (có thể thêm hoặc xoá thông số này)
+ Send files with the request: Giả lập việc upload file
+ Retrieve All embedded Resources: Dùng để download các trang java applet được nhúng trên trang web đang test.

Ngoài ra, còn có các thông số cấu hình cho Timeout, respon,....
Sau khi giải đáp các thông số trên form HTTP Request, tiếp đến mình sử dụng đến Listener

Sau khi cài đặt xong các thông số cho HTTP request, Sampler và Listener, bạn chọn RUN hoặc tổ hợp phím Ctrl + R để thực thi kịch bản test, sau đó vào các Listener để xem kết quả.

Trên đây, mình hoàn tất ví dụ về test hiệu năng với 1 user truy cập website không đăng nhập. Phần kế tiếp sẽ là test với 10 user đăng nhập và thực hiện các chức năng 

Đối với trường hợp test số lượng thread nhiều hơn 1 user: Làm theo các bước trên và khai báo thêm thông số theo thứ tự dưới đây:
+ HTTP Cache Manager
+ HTTP Cookie Manager
+ CSV Data Set Config
VỚi HTTP Request để login vào trang web cần chú ý đến các Parameters. Các Parameters này cần điền giống như trang login thật của web (Các Parameters này có thể dùng addon Firebug trên firefox browser để tim)

Với CSV Data Set Config trong Login HTTP Request ta khai báo đến file .CVS chứa các tài khoản dùng để login vào web


  



Giới thiệu công cụ test hiệu năng Website - Apache Jmeter

Sơ lược qua về công cụ kiểm thử hiệu năng JMeter

Phần mềm kiểm thử tự động mã nguồn mở Jmeter
Jmeter được xây dựng và phát triển bởi Stefano Mazzocchi để kiểm thử hiệu năng FTP Server, máy chủ CSDL, Java servlet và các đối tượng.
Phạm vi ứng dụng của Jmeter:
Nổi trội hơn JMeter là công cụ LoadRuner nhưng bị hạn chế LoadRuner chỉ sử dụng được trên Windows, có phí và chỉ hỗ trợ giao thứ nền HTTP
JMeter thì nổi trội hơn do hỗ trợ nhiều giao thức và sử dụng trên nhiều môi trường khác nhau: Web - HTTP, HTTPS sites 'web 1.0' web 2.0
(ajax, flex and flex-ws-amf);  Web Services - SOAP/ XML-RPC; Database - JDBC; Directory - LDAP; TCP; MongoDB (noSQL)
Đặc trưng của JMeter:
>Sử dụng để kiểm thử hiệu suất cả về tài nguyên tĩnh và tài nguyên động như các tập tin tĩnh, Java Services, CGI script, đối tượng của ngôn ngữ Java, CSDL, FTP Server,....JMeter cung cấp 1 giao diện người dùng thân thiện dễ sử dụng.
Các thông số quan trọng trong JMeter: Thread Groups, Listeners, Assertiong, Sample Generating Controller,, Logic Controllers,...Cụ thể chi tiết dưới đây.

Samples                     Những phần tử này gửi các yêu cầu tới server. Có những samplers cho những kiểu request HTTP/HTTPS, FTP, SOAP, JDBC, LDAP, MongoDB, TCP,...
Listeners Timers        Tập các kết quả của việc run test, cung cấp cho người dùng các công cụ hiển thị một cách trực quan, dễ hiểu
Logic Controllers          Nếu những request được định nghĩa trong các test plan của bạn được thực thi dựa phụ thuộc vào 1 vài logic, lúc đó sẽ cần đến Logic Controllers. Thích hợp với cấu trúc if-then-else và loop trong Java hoặc ngôn ngữ khác.
Assertions                      Cho phép bạn kiểm tra nếu responses bạn lấy dữ liệu mong đợi hay nhận trong phạm vi thời gian đã định sẵn
Điều lưu ý: Mọi TestPlan đều cần ít nhất 1 Thread Groups, vì mỗi Thread Groups sẽ tạo ra được các yêu cầu để request tới server, nếu không có thì không có yêu cầu được request tới server và dẫn đến không thể tiến hành việc test.
Mỗi TestPlan thường có 2 thành phần chính trong Thread Groups đó là 1 Sampler để tạo ra request và 1 Listeners để hiển thị kết quả cho người dùng.
Và điều cần quan tâm nữa là: Tuỳ vào mục đích kiểm thử khác nhau thì sẽ xây dựng TestPlan khác nhau, tránh tình trạng chúng ta thêm tất cả các thành phần vào TestPlan => sẽ làm Rối và có những thành phần không sử dụng đến gây lãng phí tài nguyên.
>Cài đặt
Trước khi vào cài đặt máy tính bạn cần có Java hỗ trợ. Dưới đây mình hướng dẫn cài đặt cho HĐH Windows
tải JMeter tại địa chỉ sau: http://jmeter.apache.org/download_jmeter.cgi
Chạy file jmeter.bat

Sau khi chạy thành công giao diện màn hình hiển thị như sau:

jmeter


 Trên đây là kết thúc phần Sơ lược công cụ và cài đặt JMeter, các thông số cần lưu ý. Ở bài viết sau mình có 1 số bài tập nhỏ tạo kịch bản script test hiệu năng website đó là:
 + Test 1 hoặc nhiều user truy cập ( chưa đăng nhập vào hệ thống)
 + Test 10 user đăng nhập đồng thời và thực hiện các hành động: Đăng nhập, liệt kê các danh mục, văn bản (số lượng 10 user có thể thay đổi tuỳ ý nhiều hơn hoặc ít hơn)

Tham khảo thêm tại:
http://www.tutorialspoint.com/jmeter/jmeter_overview.htm