Nhật kí nàng Tester

Ngày XX, tháng YY, năm ZZ
Nhật ký yêu dấu, vậy là mình đã tham gia dự án PPHontai được 3 tháng rồi. Và cũng chừng ấy thời gian mình quen anh ấy. Chàng là coder tài năng, còn mình chỉ là một tester mới ra trường. Cùng nhau làm việc, cùng trải qua bao đêm OT, ON, anh ấy luôn quan tâm chăm sóc đến mình. Mỗi lần test thấy bug, mình lại cảm thấy nhớ anh ấy da diết. Có phải mình đã yêu rồi không?
Ngày XX’, tháng YY’, năm ZZ
Không thể tin được, anh ấy đã hẹn hò với mình, lại còn có điều muốn nói nữa chứ. Mình có đang mơ không.
….
Đêm ấy, hai người hẹn nhau ở cầu tình yêu, bên dòng sông Hàn thơ mộng. Chàng coder thì thầm với cô gái
  • Anh có điều thầm kín muốn nói với em
Nàng tester bẽn lẽn, gò má ửng đỏ, đôi mắt nhắm nghiền chờ đợi…
  • Dự án đến phase testing rồi, nhưng anh đang gặp issue về Perfomance Test mà chưa có solution.
Cô gái bỗng mở choàng mắt, ánh mắt cô long lanh, đôi môi tươi tắn hé nở nụ cười

JMeter Overview

Dự án chúng mình đang làm là xây dựng một e-commercial website, với hơn trăm nghìn users sử dụng đồng thời, làm sao anh có thể xây dựng được môi trường test với số lượng user lớn như vậy
http://www.davidhenderson.com/wp-content/uploads/2012/05/web-hosting.png
JMeter chính là một giải pháp hoàn hảo để giải quyết bài toán này
Kiến trúc của JMeter khá phức tạp, gồm nhiều thành phần như Samples, Processor và Listeners. Hình dưới là kiến trúc của Jmeter

Test Plan

Test Plan tương tự như Test Script nơi lưu giữ kịch bản test. Mô tả các thao tác của test cases. JMeter sẽ đọc Test Plan để execute Test tự động
Một Test Plan sẽ bao gồm Thread Group, Samples, Listeners, Timers…

Thread Group

Đây là thành phần cơ bản của Test Plan. Thread Group controls các luồng mà JMeter sử dụng để thực hiện test
Anh hãy xem xét scenario sau, có 1000 users connect tới server dự án mỗi user sẽ tạo ra một phiên làm việc với server
Mỗi session này chính là một thread, mỗi thread mô phỏng một user connect tới web server.

Samplers

Để connect tới server, users cần tạo những request. Những request này là samples, có rất nhiều loại request như HttpRequest, FTP request, JDBC request…
Ví dụ về một Http Samplers

Processors

Thực tế của testing, khi server trả về kết quả, tester có thể cần phân tích hoặc modify data này. JMeter cung cấp Processors để thực hiện điều này

Listeners

Sau khi tạo và send request tới server, JMeter sẽ nhận kết quả trả về và hiển thị nó dùng Listeners. Kết quả có thể được hiển thị dưới dạng Table, Tree View hoặc Log


Timers

Trên thực tế, khi users truy cập một website nào đó, họ phải chờ đợi một khoảng thời gian để cho website được load hoàn toàn trên browser, sau đó mới thực hiện các bước tiếp theo
JMeter sử dụng Timer để mô phỏng use case này.

Config Element

Một số ứng dụng web yêu cầu authenticate trước khi truy cập, làm thế nào để simulate scenario này. Config Element là một giải pháp. Đó là một setting cho phép user setup một số parameter như Username, Password…

Controllers

Controller cho phép user có thể quản lý những request tới server, như lựa chọn request nào được gửi tới, khi nào thì thực hiện send request.
Dưới đây là một số loại controller của JMeter
….

Xây dựng Test Scenario với JMeter

Em nói lý thuyết hơi nhiều, e sẽ giới thiệu cho anh một case study cụ thể của JMeter, đó là xây dựng một test scenario (Test Plan)
Đây là những bước cần làm để xây dựng một Test Plan

1. Tạo Thread Group

Download JMeter về, chạy file JMeter.bat để chạy JMeter GUI
Trên của sổ JMeter, anh sẽ thấy
  • Test Plan: Nơi lưu Test scenario
  • Workbench: Lưu Test Elements

2.  Tạo Test Elements

Tại đây, anh có thể tạo test steps cho mình bằng cách thêm bớt các thành phần của JMeter như Thread Group, Assertion, Controller…
Right Click Test Plan Add Thread Thread Group
Tùy vào các Test Case, anh có thể tạo ra những JMeter elements khác nhau như Listeners, Timers

3. Cấu hình cho Thread Group

Ví dụ, anh muốn mô phỏng 10 user kết nối tới website cùng 1 lúc, có thể setting như hình dưới

4. Lưu giữ Test Elements

Trên thực tế, có rất nhiều test case có những test step giống nhau, nên JMeter cung cấp chức năng lưu trữ những test step này để có thể dùng lại được cho những test case sau
Hình dưới mô tả một test steps thông dụng là user gửi request đến website, anh cần lưu giữ nó để dùng cho những lần sau.
Click phải một HttpRequest chọn Save và lưu dưới dạng .jmx file
Khi muốn sử dụng lại, anh chỉ việc load lại vào Test case của mình như sau

5. Execute Test Case

Sau khi hoàn thành cài đặt test case, giờ là lúc execute test case. Mọi thứ được hoàn toàn tự động
Click nút Start trên menu hoặc short key Ctrl + R. Test case sẽ được chạy như scenario thật sự và anh có thể thấy trạng thái running của test case.
Trong khi Test case đang chạy, anh có thể Stop hoặc Shutdown test case bằng cách bấm Stop button.
Khi Tester thực hiện test case xong, bao giờ cũng phải làm Test Report. Đây là công việc tốn khá nhiều effort. Nhưng đối với JMeter, Test Report được tạo ra hoàn toàn tự động.
Test Report có thể được tạo ra dưới các format khác nhau như XML, Log, Graph và tester có thể căn cứ vào report để đánh giá chất lượng sản phẩm.
Ví dụ về JMeter Test Report
----
Sau khi nói đến đây, chàng coder nhìn nàng tester bằng ánh mắt say đắm, ngập tràn tình yêu thương.
“Cảm ơn em, dự án thành công có công lao rất lớn của em”
Cuối năm ấy, dự án develier thành công với chất lượng tốt. Còn chàng coder và nàng tester có một đám cưới hạnh phúc, happy ending.

Powered by Blogger.