Performance Testing là một loại kiểm thử nhằm xác định mức độ đáp ứng, băng thông, độ tin cậy và/hoặc khả năng mở rộng của hệ thống dưới một khối lượng làm việc/truy cập nhất định. Performance Testing thường được sử dụng để:
Performance Testing thường được dùng để giúp xác định tắc nghẽn trong một hệ thống, thiết lập một đường cơ sở để kiểm thử trong tương lai, hỗ trợ điều chỉnh hiệu suất hiệu quả, xác định sự phù hợp mục tiêu và yêu cầu hiệu suất, và thu thập dữ liệu hoạt động liên quan khác để giúp các bên liên quan đưa ra quyết định liên quan đến chất lượng chung của các ứng dụng đang được kiểm thử. Ngoài ra, các kết quả từ việc kiểm thử hiệu suất và phân tích có thể giúp bạn ước tính cấu hình phần cứng cần thiết để hỗ trợ các ứng dụng khi bạn đưa sản phẩm đi vào sử dụng rộng rãi.
Ở cấp độ cao nhất, kiểm thử hiệu năng gần như luôn được tiến hành để giải quyết một hoặc nhiều rủi ro liên quan tới chi phí, cơ hội hoặc danh tiếng của một công ty. Một số lý do cụ thể hơn cho tiến hành kiểm thử hiệu suất bao gồm:
Đánh giá sự sẵn sàng phát hành bởi:
Đánh giá cơ sở hạ tầng:
Đánh giá đầy đủ về hiệu suất phần mềm bởi:
Nâng cao hiệu quả hoạt động bởi:
1.1 Giới thiệu về Jmeter Jmeter là công cụ để đo độ tải và performance của đối tượng, có thể sử dụng để test performance trên cả nguồn tĩnh và nguồn động, có thể kiểm tra độ tải và hiệu năng trên nhiều loại server khác nhau như: Web – HTTP, HTTPS, SOAP, Database via JDBC, LDAP, JMS, Mail – SMTP(S), POP3(S) và IMAP(S)…
Jmeter là một phần mềm mã nguồn mở được viết bằng java. Cha đẻ của JMeter là Stefano Mazzocchi. Sau đó Apache đã thiết kế lại để cải tiến hơn giao diện đồ họa cho người dùng và khả năng kiểm thử hướng chức năng.
1.2 Đặc trưng
1.3 Cách hoạt động Cách Jmeter làm việc như sau:
1.4 Các thành phần chính của Jmeter TEST PLAN Test Plan định nghĩa phải test gì và cách để thực hiện như thế nào.
TEST PLAN ELEMENT: Ở mức độ basic, mình chỉ giới thiệu chi tiết một vài elements trong số các elements sau đây: i. Thread Groups:
ii. Sampler Samplers cho phép JMeter gửi các loại yêu cầu cụ thể tới server Có rất nhiều Samplers như sau:
Đây là hình ảnh cho HTTP Request:
Giải thích một số thuộc tính trên màn hình:
iii. 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 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.
iv. Listeners: 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 như: tables, graphs, trees hoặc một vài log files đơn giản Hình ảnh sau đây là một kết quả test dạng table
Giải thích một số thuộc tính trên màn hình:
v. Timer: dùng để định nghĩa thời gian đợi giữa các request **vi. Assertions:**Xác nhận kết quả trả về đã đúng hay chưa bằng một số Validation **vii. Configuration Elements:**Tạo các giá trị mặc định và các biến dùng cho Sampler viii. Pre-processor Elements: Dùng để xử lí một cái gì đó ngay trước khi Sampler được thực hiện ix. Post-processor Elements: Dùng để xử lí kết quả trả về sau khi Sampler được thực hiện
1.5 Demo – Basic SCENARIO 1:
Step 3: Tạo request đến server 1 thread(tương ứng 1 user) có thể tạo nhiều request http gửi lên server . Chuột phải vào Thread group –> add –> Confict Element –> HTTP Request Default Name : đặt tên request Server name or Ip : điền địa chỉ trang web cần truy cập. Nếu biết ip và cổng thì : điền ip vào Server Name or Ip và số cổng vào Port Number, đường dẫn đến website cần truy cập vào Path. ví dụ Truy cập vào trang http://lazada.vn chỉ cần điền Server Name or Ip : lazada.vn Port number : 80
Lưu ý: nên kéo HTTP Request Default lên phía trên các ThreadGroup để dễ dàng thực hiện test, chỉ cần tạo 1 lần cho tất cả các ThreadGroup muốn test trang lazada.vn
Step 4: Tạo HTTP Request cụ thể đến đối tượng mà bạn muốn truy cập trên trang lazada. Trong trường hợp này, điểm đến là mục Quần áo phụ kiện cho bé Chuột phải vào Thread group –> add –> sample –> HTTP Request Path: quan-ao-phu-kien-cho-be/?spm=a2o4n.home.0.0.9TS4zZ
Step 5: Chạy test Click vào button Start (dấu mũi tên màu xanh) trên thanh menu Click vào icon Stop trên thanh menu để dừng lại
Step 6:Xem kết quả của kịch bản test
Bảng thống kê kết quả Label : tên request #Sample : số request Average : thời gian trung bình xử lý các request min : thời gian nhỏ nhất xử lý request max : thời gian nhỏ nhất xử lý request Error : phần trăm bị lỗi của các request(lỗi kết nối hoặc lỗi cho đầu ra không mong muốn) thoughput : số request/s của server kb/s = (avg.bytes*thoughput)/1024
Step 7: Xem kết quả của từng Request trong kịch bản Chuột phải Thread Group –> Add –> Listener –> View Results Tree
Ví dụ : sau khi chạy chương trình, trong phần view results tree hiển thị thông tin các request và kết quả của chúng. Các request xanh là request không lỗi, các request đỏ bị lỗi. Click vào mỗi request tương ứng bên cạnh sẽ có 3 phần thông tin về request đó: sample result, request, response data.
1.6 Demo – Advance
SCENARIO: Simulate 10 users log-in to system at the same time with different username & password
Để log-in vào 1 trang web thì thường dùng method POST để gửi REQUEST lên với những parameters cần thiết để server biết và trả về RESPONE tương ứng. Ở đây để biết 1 trang web khi log-in sẽ cần gửi lên những thông tin gì, thì ta sẽ dùng firebug (1 add-on của firefox) để làm việc này.
Sau khi biết được cần phải gửi những parameters nào lên thì chúng ta thực hiện simulate việc gửi này với Jmeter, như sau :
Nhưng trong những parameters này thì có authencity_token là giá trị thay đổi theo từng REQUEST để tránh việc spam cũng như bảo mật cho REQUEST, nên không thể copy authencity_token của request này cho request kia. Do đó, chúng ta phải tạo ra những authencity_token riêng cho từng request. Để làm được việc này, Jmeter cung cấp cho chúng ta function đó là REGULAR EXPRESSION EXTRACTOR
REGULAR EXPRESSION được gọi là biểu thức chính quy, Là bộ xử lý sau, phần tử này sẽ thực hiện sau mỗi yêu cầu Mẫu trong phạm vi của nó, áp dụng biểu thức chính quy, trích xuất các giá trị được yêu cầu, tạo chuỗi mẫu và lưu trữ kết quả vào tên biến nhất định (ví dụ : tạo authencity_token, item_id để đi vào detail, tạo transaction_id cho các giao dịch ,…)
Sau khi lấy được authencity_token cho mỗi request thì chúng ta thực hiện log-in 10 users cùng lúc với username và password khác nhau
CSV DATA SET CONFIG Để thực hiện việc này, chúng ta dùng CSV Data Set Config. Chúng ta sẽ tạo 1 file csv chứa username và password của 10 users cần dùng, và import file CSV đó vào CSV Data Set Config và gán biến cho các parameters ở POST để JMeter hiểu và thực hiện.
Thực hiện gán biến cho username và pass
ASSERTION
Nhưng khi chạy như vậy thì tất cả những request trả về đều được chấp nhận và báo pass, chúng ta khó phân biệt được request nào đăng nhập thành công, request nào đăng nhập không thành công. Do đó, chúng ta sẽ thêm 1 phần Assertion để phân biệt điều này. a. Khi đăng nhập thành công:
b. Khi đăng nhập không thành công:
EXPORT TEST RESULT Sau đó Run và nhận kết quả. Chúng ta cũng có thể export kết quả test ra file csv bằng cách. File sẽ được lưu tự động vào thư mục Bin của Jmeter
2.1 Giới thiệu LoadComplete là một công cụ kiểm tra lượng tải, cho phép tạo và chạy tự động cho web servers và services. Giúp người dùng kiểm tra được hiệu năng của web server dưới một lượng tải lớn.
2.2 Các Tính Năng:
2.3. Hỗ trợ
2.4. Ưu điểm
2.5. Nhược điểm
3.1 Giới thiệu
The Grinder là một tool kiểm thử hiệu năng dựa trên nền tảng JavaTM. Và quan trọng nó hoàn toàn miễn phí. Grinder bao gồm:
3.2 Key Future
3.3 Ưu điểm:
3.4 Nhược điểm:
4.1 Giới thiệu
Với mục đích kiểm tra hiệu năng của một trang web, webperformance cũng là một trong những công cụ hỗ trợ.
Webperformance cung cấp các chức năng test performance như:
Với nền tảng hỗ trợ là Windows, MAC, bạn có thể dễ dàng download và cài đặt ứng dựng từ website chính thức: http://www.webperformance.com/download/
4.2 Qui trình thực hiện load test
4.3 Ưu điểm
4.4. Nhược điểm
Qua bài viết này, hy vọng mọi người có một cái nhìn tổng quan về các Performance Testing Tool. Khi có một yêu cầu tìm hiểu về Tool phục vụ cho Performance Test, chắc hẳn mọi người đã lựa chọn được cho mình một tool phù hợp với dự án của mình.
Nguồn: https://viblo.asia/
You need to login in order to like this post: click here
YOU MIGHT ALSO LIKE