SlideShare a Scribd company logo
1 of 14
Download to read offline
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
———————o0o——————–
BÁO CÁO BÀI TẬP LỚN
CÔNG CỤ KIỂM THỬ TỰ ĐỘNG
APACHE JMETER
Môn học : Kiểm thử và đảm bảo chất lượng phần mềm
Giảng viên : TS Nguyễn Văn Sơn
Sinh viên thực hiện : Phan Công Thành - 20020216
Võ Công Thành - 20020472
Lê Thị Xuân Thu - 20020217
Nguyễn Trọng Tuế - 20020498
HÀ NỘI, 2023
Mục lục
1 Tổng quan 3
1.1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Mục đích . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Ý tưởng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Các thành phần cơ bản và cơ chế hoạt động của JMeter 3
2.1 Các thành phần cơ bản của JMeter . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Cách thức xây dựng, hoạt động của công cụ . . . . . . . . . . . . . . . . . 6
3 Đánh giá JMeter 6
3.1 Ưu nhược điểm của JMeter . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 So sánh JMeter với công cụ khác . . . . . . . . . . . . . . . . . . . . . . . 8
4 Demo 10
Danh sách hình vẽ
2.1 Các thành phần cơ bản của JMeter . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Mô tả cách thức hoạt động của JMeter . . . . . . . . . . . . . . . . . . . . 6
4.1 Kết quả khi chạy Test plan . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Danh sách bảng
3.1 So sánh Jmeter và Locust . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2 So sánh Jmeter và LoadRunner . . . . . . . . . . . . . . . . . . . . . . . . 9
2
1 Tổng quan
1.1 Giới thiệu
Apache JMeter là phần mềm mã nguồn mở được phát triển hoàn toàn dựa trên nền
tảng Java. Ban đầu JMeter được Stefano Mazzocchi tạo ra với mục đích chính là kiểm
tra hiệu năng của Apache Jserv. Sau này cộng đồng Apache đã cải thiện về mặt giao diện
(GUI) cũng như nâng cấp và tích hợp thêm một số tính năng mới.
1.2 Mục đích
Mục đích của JMeter là kiểm tra độ chịu tải và đo lường hiệu năng (performance
testing) của server, ứng dụng web, ứng dụng di động, cơ sở dữ liệu (database), các dịch
vụ web (web services),...
1.3 Ý tưởng
Ý tưởng của JMeter là nó cho phép người dùng tạo ra một lượng lớn yêu cầu (request)
đến hệ thống cần kiểm thử bằng cách tạo ra nhiều luồng (thread) và mỗi luồng (thread)
được mô phỏng giống như một người dùng thực tế đang sử dụng hệ thống. Sau đó JMeter
sẽ lưu lại tất cả phản hồi (response) để trả về các số liệu thống kê theo nhiều giao diện
khác nhau như dạng cây (View results tree), báo cáo (Summary report), biểu đồ (Graph
results),... Một số thông số được hiển thị trong các thống kê của JMeter như thời gian
phản hồi, thời gian thực thi, thời gian kết nối, tốc độ, phần trăm yêu cầu (request) bị
lỗi,...
2 Các thành phần cơ bản và cơ chế hoạt động của JMeter
2.1 Các thành phần cơ bản của JMeter
Hình 2.1: Các thành phần cơ bản của JMeter
2.1.1 Test plan
Là đơn vị cấp cao nhất của JMeter, nó chứa tất cả các yêu cầu cần thực hiện cũng
như tất cả các cài đặt, cấu hình để có thể thực hiện request. Ngoài ra test plan cũng cho
3
phép khai báo các biến chung để sử dụng trong suốt bài test. Test plan được lưu trữ trong
file có đuôi là jmx.
2.1.2 Thread group
Tạo ra một nhóm người dùng đồng thời gửi yêu cầu (request) đến hệ thống cùng lúc.
JMeter sẽ chạy nhóm luồng (thread) này cho tới khi đạt đủ số lượng luồng (thread) mà
người dùng thiết lập hoặc hết thời gian.
Một số thuộc tính cơ bản của một thread group bao gồm:
Number of threads: Số lượng luồng (thread) mà người dùng muốn tạo ra để thực hiện
yêu cầu (request) đến hệ thống cần kiểm thử.
Ramp-up period: Thời gian JMeter tạo ra các luồng (thread) mới. Ví dụ chúng ta thiết
lập giá trị cho tham số này là 2s thì mỗi 2s JMeter sẽ tạo ra một luồng (thread) mới.
Trong trường hợp người dùng không thiết lập giá trị cho tham số này thì mặc định hệ
thống sẽ tạo ra tất cả luồng (thread) cùng một lúc.
Loop count: Số lần các yêu cầu (request) sẽ được lặp lại trong mỗi luồng (thread).
Scheduler: Bộ lập lịch sử dụng để xác định thời gian bắt đầu và kết thúc của thread
group. Nếu người dùng không thiết lập giá trị cho tham số này thì hệ thống sẽ thực hiện
cho đến khi nào hết số lượng luồng (thread) được thiết lập trong number of threads thì
mới dừng lại.
2.1.3 Recording
Ghi lại tất cả các yêu cầu (request) mà trình duyệt tạo ra khi người dùng thực hiện
quá trình duyệt các trang web. Mục đích là tạo ra kịch bản kiểm thử vì khi kiểm thử
một trang web bất kỳ chúng ta không thể biết được API và các tham số cần truyền vào
cho các API đó. Ý tưởng để thực hiện được chức năng này là chúng ta sẽ thiết lập cấu
hình proxy của trình duyệt web trỏ đến JMeter để JMeter có thể ghi lại được các yêu cầu
(request) khi người dùng duyệt web.
2.1.4 Sampler
Sampler được sử dụng để mô phỏng hoạt động của người dùng và là một đơn vị đang
chạy gửi yêu cầu đến máy chủ và nhận dữ liệu phản hồi từ máy chủ. Sampler là một
thành phần bên trong Thread Group, vì vậy nó phải được thêm vào Thread Group mỗi
khi thực thi test case. Một số sampler có trong JMeter: TCP sampler, HTTP request,
FTP request, JDBC request, Java request,...
2.1.5 Logic Controller
Logic Controller kiểm soát thứ tự thực hiện của Sampler khi gửi request đến server,
bao gồm cả thời gian và cách thức gửi. Logic Controller được chia thành 2 loại chính:
Kiểm soát thứ tự thực hiện logic của các nút trong quá trình thực hiện kế hoạch kiểm
4
tra, chẳng hạn như bộ điều khiển vòng lặp, bộ điều khiển If, v.v.
Nhóm các tập lệnh trong Test plan để tạo điều kiện cho JMeter đếm kết quả thực thi và
kiểm soát thời gian chạy của tập lệnh, chẳng hạn như throughput controller, transaction
controller, v.v.
2.1.6 Listener
Là thành phần được sử dụng để xử lý và trực quan hóa dữ liệu của kết quả kiểm tra
thông qua các format khác nhau như: View Results Tree, Graph Results, and Aggregate
Report. Listener có thể được tạo thành từ nhiều giai đoạn khác nhau trong quá trình
kiểm thử như: Test plan, Thread Group, Sampler,...
2.1.7 Configuration Element
Được sử dụng để thiết lập các cấu hình, giá trị mặc định và các biến sẽ được sử dụng.
Nó có thể được xác định ở cấp độ Test plan, Thread Group hoặc ở Sampler, với các phạm
vi khác nhau cho các cấp độ khác nhau.Configuration Element chủ yếu bao gồm biến do
người dùng định nghĩa, cấu hình tập dữ liệu CSV, cấu hình bộ lấy mẫu TCP, trình quản
lý cookie HTTP, v.v.
2.1.8 Assertion
Sử dụng để kiểm tra phản hồi nhận được từ máy chủ cho một yêu cầu của một Sampler
cụ thể có như kỳ vọng không. Và để kiểm tra một Sampler, có thể thêm Assertion làm
thành phần con cho Sampler đó.
2.1.9 Timer
Là thành phần cho phép cài đặt khoảng thời gian chờ giữa hai yêu cầu gửi đến server
từ người dùng ảo. Điều này mô phỏng các hoạt động thực tế của người dùng trên website
sẽ mất một khoảng thời gian như tìm kiếm, hoặc đọc nội dung. Một số JMeter timer chủ
yếu gồm: Constant Timer, Uniform Random Timer, Precise Throughput Timer, Constant
Throughput Timer, Gaussian Random Timer, JSR223 Timer, Poisson Random Timer,
Synchronizing Timer, BeanShell Timer.
2.1.10 Pre-processors and Post Processors
Pre-processors thực hiện một số thao tác như: sửa đổi các tham số, đặt biến môi
trường hoặc cập nhật biến trước khi có Sampler request.
Post Processors thực hiện một số thao tác sau Sampler request. Dữ liệu phản hồi có
thể cần được sử dụng trong các yêu cầu tiếp theo và cần xử lý các dữ liệu phản hồi này.
Ví dụ: nếu mã thông báo jwt trong phản hồi được lấy và sử dụng để xác thực trong các
yêu cầu tiếp theo, thì Post Processors sẽ được sử dụng.
5
2.2 Cách thức xây dựng, hoạt động của công cụ
Khi chúng ta bắt đầu thực hiện kiểm thử hiệu năng cho một ứng dụng. JMeter sẽ
sinh ra các yêu cầu gửi đến server đích và mô phỏng số lượng người dùng gửi yêu cầu.
Ngay khi máy chủ phản hồi lại yêu cầu, JMeter sẽ lưu lại các phản hồi này. Dưa trên các
dữ liệu phản hồi, nó sẽ thu thập tập hợp để tính toán thống kê. Cuối cùng bằng cách sử
dụng các thông tin thống kê, nó sẽ tạo ra một bản báo cáo cho người dùng về hiệu năng
của hệ thống vừa thực hiện đánh giá bao gồm (Samples, Average, Min, Max, Error).
Hình 2.2: Mô tả cách thức hoạt động của JMeter
3 Đánh giá JMeter
3.1 Ưu nhược điểm của JMeter
3.1.1 Ưu điểm
JMeter là một sản phẩm mã nguồn mở và không tốn phí, các nhà phát triển có thể
truy cập và tham khảo mã nguồn trực tiếp trên github của Apache; điều này tạo ra nhiều
ưu điểm cho JMeter như:
Cộng đồng hỗ trợ lớn, JMeter trở nên phổ biến làm cho nó có cộng đồng người sử
dụng lớn cùng các nhà phát triển tích cực, cung cấp nhiều tài liệu, hướng dẫn để hỗ trợ
người dùng. Ngoài ra, mã nguồn của nó cũng liên tục được cập nhật, bảo trì,... để mang
lại một Jmeter ngày càng hoàn thiện hơn.
Độc lập nền tảng, JMeter được phát triển bằng Java và lưu trữ các test plan của nó
dưới dạng XML. Do đó, nó có thể chạy trên các hệ điều hành phổ biến hỗ trợ máy ảo
Java (JVM) như Windows, Linux hay MacOS.
Giao diện thân thiện, người dùng có thể sử dụng giao diện đồ họa để thiết lập hầu
hết các yếu tố kiểm thử, như các yêu cầu HTTP, các biến, các bộ nghe,. . . giúp việc tạo
và chạy kiểm thử dễ dàng và nhanh chóng.
6
Đa dạng hiển thị báo cáo, JMeter có thể tạo báo cáo, biểu thị kết quả một cách đa
dạng. Kết quả có thể được xem lại bằng cách sử dụng Graph, Chart, và Treeview ngay
trong giao diện GUI hoặc lưu trữ với nhiều định dạng như Text, XML, HTML và JSON
để phù hợp với mục đích sử dụng.
Dễ sử dụng, người dùng có thể cài đặt và sử dụng JMeter một cách dễ dàng: chỉ cần
tải về từ Internet, cài đặt và chạy. Là một ứng dụng Java thuần túy, nó sẵn sàng để sử
dụng với các cài đặt mặc định ở bất kì nền tảng nào hỗ trợ JVM. Người dùng có thể dễ
dàng làm quen và tìm kiếm hướng dẫn sử dụng chi tiết ngay trên Internet.
Hỗ trợ đa giao thức, JMeter hỗ trợ nhiều giao thức như HTTP, FTP, SOAP, JDBC,
JMS và LDAP,. . . giúp người dùng có thể thực hiện các loại kiểm thử như Load Test,
Stress Test,. . . hay để kiểm thử hiệu suất của cơ sở dữ liệu.
Khả năng mở rộng, JMeter có thể được mở rộng bằng cách sử dụng các plugin, viết
các script riêng hoặc tích hợp với nhiều công cụ và thư viện khác nhau. JMeter cũng có
thể được cấu hình để chạy trên nhiều máy khác nhau để tạo ra tải cao cho hệ thống và
giảm tải cho máy chạy test.
3.1.2 Nhược điểm
Việc giữ cho JMeter đơn giản, đa nền tảng với khả năng mở rộng cao cũng tạo cho nó
một số nhược điểm không thể tránh khỏi như:
Không hỗ trợ thực thi nội dung trả về của request, JMeter không phải là trình duyệt,
nó hoạt động ở cấp độ giao thức; vì vậy JMeter không thực hiện tất cả các hành động
được hỗ trợ bởi các trình duyệt như hiển thị các trang HTML hay thực thi Javascript.
Với các webapp sử dụng các framework và hiển thị giao diện bằng mã Javascript được
gắn bên trong tệp HTML, JMeter chỉ tính thời gian tải HTML sẽ không bao gồm thời
gian tải và thực thi mã javascript để hiển thị trang (mã javascript có thể tạo các request
để tải dữ liệu trang).
Có thể yêu cầu kỹ năng cao, JMeter có thể yêu cầu nhiều kỹ năng lập trình để tùy
chỉnh các kịch bản kiểm thử phức tạp, hay cấu hình các bộ điều khiển (Logic Controller)
để tạo các ca kiểm thử, xử lý trật tự các Samplers.
Quá tải bộ nhớ, JMeter có thể tiêu tốn nhiều bộ nhớ và tài nguyên khi mô phỏng quá
nhiều người dùng và yêu cầu một lúc hoặc lưu và trực quan hoá các báo cáo, kết quả của
Listener trong giao diện GUI. Điều này có thể tiêu tốn nhiều bộ nhớ và dẫn tới tình trạng
hết bộ nhớ, gây ra lỗi bộ nhớ hoặc làm chậm máy tính khi chạy kiểm thử.
Chỉ hỗ trợ ứng dụng web, một trong những ưu điểm của JMeter là hỗ trợ nhiều giao
thức nhưng hầu hết trong số chúng chỉ làm việc với internet làm cho JMeter khó ứng
dụng trong kiểm thử với desktop hay mobile.
Không lưu vết truy cập như Cookie, JMeter không có tính năng ghi lại hành động của
7
người dùng tự động như trên trình duyệt web, để thay thế phải tạo ra các kịch bản thử
nghiệm bằng cách sử dụng các yếu tố như HTTP Request, HTTP Header Manager hay
Cookie Manager.
3.2 So sánh JMeter với công cụ khác
Trong phần này, chúng em tiến hành tìm hiểu và so sánh công cụ Jmeter với hai công
cụ kiểm thử hiệu năng khác là LoadRunner và Locust để tìm ra điểm mạnh, yếu của công
cụ so với các đối thủ. Trong đó, LoadRunner là phần mềm phải trả phí để sử dụng và
Locust là phần mềm miễn phí.
3.2.1 Jmeter và Locust
Bảng 3.1: So sánh Jmeter và Locust
Tiêu chí Jmeter Locust
Chi phí miễn phí miễn phí
Xây dựng test Thiết kế chủ yếu cho tạo test
bằng GUI, k cần viết code. Hỗ
trợ cả non-GUI
Để tạo test phải viết code
python, cần kiến thức về code
Giao thức hỗ trợ Hỗ trợ kiểm thử nhiều giao thức Chủ yếu kiểm thử giao thức
http cho ứng dụng web
Tiêu thụ tài
nguyên
Nhiều hơn Ít hơn nhờ cơ chế event-based,
có thể xử lý được nhiều request
hơn
Cơ chế recording Hỗ trợ Không hỗ trợ
Báo cáo phân tích Đầy đủ, hỗ trợ tốt hơn Còn đơn giản, hỗ trợ ít biểu đồ
Từ bảng so sánh trên có thể thấy, cùng là phần mềm miễn phí, Jmeter có nhiều điểm
mạnh hơn so với Locust. Tuy nhiên, Jmeter vẫn có một số điểm yếu so với Locust như
tiêu thụ nhiều tài nguyên hơn, khả năng mở rộng kém hơn, khó quản lý kịch bản test hơn
do Locust phải viết test bằng code nên có thể quản lý kịch bản test dễ dàng.
3.2.2 Jmeter với LoadRunner
Bảng sau trình bày sự so sánh giữa công cụ Jmeter với LoadRunner dựa trên các tiêu
chí:
8
Bảng 3.2: So sánh Jmeter và LoadRunner
Tiêu chí Jmeter LoadRunner
Chi phí Là open source, miễn phí Không phải là 1 open source và
người dùng phải trả phí để sử
dụng đầy đủ các chức năng
GUI Đơn giản hơn, với một màn
hình biểu diễn tất cả những thứ
người dùng cần
Phức tạp hơn, cấu hình, xây
dựng kịch bản, phân tích ở các
nơi khác nhau
Nền tảng hỗ trợ Linux, Windows, Web-based và
Mac
Windows, Web-based và Mac
(không hỗ trợ Linux)
Các giao thức hỗ
trợ
Giới hạn, bao gồm HTTP, FTP,
JDBC, SOAP, LDAP, TCP,
JMS, SMTP, POP3, IMAP
Hỗ trợ tất cả các giao thức
Khả năng tạo tải Không giới hạn Giới hạn
Xây dựng kịch
bản
- Có thể chạy một test tải mà
không cần có kiến thức về code
- Khó khăn trong việc tạo các
kịch bản kiểm thử phức tạp
- Yêu cầu kiến thức về code để
sử dụng
- Có thể tạo các kịch bản kiểm
thử phức tạp
Báo cáo phân tích Kết quả dễ hiểu, cho phép phân
tích chuyên sâu, hỗ trợ ít loại
biểu đồ hơn LoadRunner
Thông tin trong bản raw được
phân tích cú pháp để tạo ra các
biểu đồ. Hỗ trợ nhiều loại biểu
đồ. Báo cáo chi tiết, đầy đủ hơn
Sử dụng Có thể tùy chỉnh các tính năng
theo nhu cầu của người dùng
Không cho phép tùy chỉnh, các
tính năng hiện có chỉ có thể
được sử dụng
Tính ổn định Kém với các hệ thống tải nặng Tốt hơn, có thể bị treo với các
hệ thống tải nặng nhưng không
thường xuyên
Hiệu suất Thấp hơn, phát hiện được bugs
nhỏ, có thể không phát hiện
được trong những hệ thống quy
mô lớn
Phát hiện bugs nhanh hơn và
hiệu quả hơn
Cộng đồng hỗ trợ Rộng lớn Hạn chế hơn
Từ bảng so sánh trên, ta thấy được những điểm mạnh, điểm yếu của Jmeter so với
LoadRunner. Các điểm mạnh của JMeter so với LoadRunner như:
9
Miễn phí, dễ sử dụng, hỗ trợ đa nền tảng, giao diện đơn giản. Các thành phần
định nghĩa rõ ràng trên giao diện, có thể thêm các thành phần mới, hoặc tùy chỉnh các
tính năng theo nhu cầu sử dụng.
Việc tạo test đơn giản hơn, không yêu cầu nhiều ràng buộc. Bên cạnh đó, có thể
chạy một test tải mà không cần kiến thức về code, giúp tăng đối tượng người có thể sử
dụng công cụ.
Khả năng tạo tải không giới hạn.
Cộng đồng hỗ trợ rộng lớn.
So với LoadRunner, JMeter:
Khó khăn trong việc tạo các kịch bản phức tạp
Kém hiệu quả đối với các hệ thống tải nặng. Trong các hệ thống quy mô lớn, có
thể không phát hiện được lỗi
Giới hạn các giao thức hỗ trợ. Báo cáo phân tích không chi tiết, đầy đủ, hỗ trợ
nhiều biểu đồ như LoadRunner
LoadRunner phù hợp nếu muốn tìm sự phân tích nguyên nhân gốc, phát hiện nút thắt
cổ chai và các tính năng nâng cao khác. Tuy nhiên, với nhiều team phần mềm, JMeter
lại là một lựa chọn phù hợp cung cấp đầy đủ chức năng cần thiết để kiểm tra hiệu năng
mà không mất phí và có thể điều chỉnh theo nhu cầu.
4 Demo
JMeter là một công cụ kiểm thử hiệu năng và tải cho các ứng dụng web; nó mang
trong mình nhiều ưu điểm như nền tảng độc lập và cộng đồng hỗ lớn cùng với giao diện
thân thiện nên người dùng rất dễ dàng trong việc cài đặt và chạy các bài kiểm thử cơ bản
với nó. Các bước cơ bản để cài đặt và sử dụng JMeter trong giao diện GUI:
Bước 1: Đảm bảo thiết bị kiểm thử hỗ trợ JVM (tối thiểu là JRE 8)
Bước 2: Tải về JMeter từ trang web chính thức của Apache
Bước 3: Giải nén tệp tin tải về và chạy tệp tin jmeter.bat (trên Windows) hoặc
jmeter.sh (trên Linux/Mac) trong thư mục bin để khởi động JMeter.
Bước 4: Tạo một Test Plan mới bằng cách nhấn vào biểu tượng + trên thanh công cụ.
Đặt tên cho Test Plan và thêm các thành phần cần thiết như Thread Group, Sampler,
Listener, Assertion,...
Bước 5: Cấu hình các thông số cho các thành phần của Test Plan như số lượng người
dùng, thời gian chờ, địa chỉ URL, phương thức HTTP,...
Bước 6: Lưu và chạy Test Plan bằng cách nhấn vào biểu tượng Run trên thanh công
cụ. Xem kết quả kiểm thử trên các Listener đã thêm vào Test Plan.
Đặt vấn đề là kiểm thử hiệu năng tải trang chủ của web https://127.0.0.1:5000; theo
3 tiêu chí là thời gian phản hồi trung bình (đo bằng ms), số lượng yêu cầu xử lý được
10
(đo bằng requests/s) và tỉ lệ lỗi (đo bằng phần trăm %); với 3 mục tiêu là thời gian phải
hồi trung bình của mỗi yêu cầu không quá 10ms; số lượng yêu cầu xử lý được ít nhất 100
requests/s và tỉ lệ lỗi thấp hơn 1%. Các bước thực hiện kiểm thử hiệu bằng JMeter:
Bước 1: Tạo Test Group từ Test Plan
Chuột phải vào Test Plan, chọn Add > Threads (Users) > Thread Group; với các
thông tin cấu hình:
Name: localhost
Number of Threads (users): 100
Ramp-up period (seconds): 1
Loop Count: 1
Bước 2: Tạo Samplers (HTTP Request)
Chuột phải vào localhost (Thread Group), chọn Add > Sampler > HTTP Request;
với các thông tin cấu hình:
Name: home page
Web server:
Protocol: http; Server Name or IP: 127.0.0.1; Port Number: 5000
HTTP Request:
Scheme: GET; Path: /
Bước 3: Tạo Listener
Chuột phải vào localhost (Thread Group), chọn Add > Listener > Summary Report
Bước 4: Chạy Test Plan
Lưu Test Plan: chọn File > Save Test Plan as > nhập tên file > nhấp vào Save.
Chạy Test Plan: Ctrl + R
Bước 5: Nhận kết quả
Hình 4.1: Kết quả khi chạy Test plan
11
Đánh giá kết quả: thời gian phản hồi trung bình (Average) là 2ms; số lượng yêu cầu
xử lý mỗi giây (Throughput) là 101,3 requests/s; tỉ lệ lỗi (Error %) là 0% đã thỏa mãn
yêu cầu hiệu năng đề ra.
12
Tài liệu tham khảo
[1] Noga Cohen. (2021). JMeter vs. Loadrunner: Why JMeter is Easier to Use Than
LoadRunner. Truy cập 26/4/2023, từ https://www.blazemeter.com/blog/jmeter-vs-
loadrunner
[2] Yuri Bushnev. (2020). JMeter vs. Locust: Which One Should You Choose?. Truy cập
26/4/2023, từ https://www.blazemeter.com/blog/jmeter-vs-locust
13

More Related Content

What's hot

Hệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng onlineHệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng onlineHan Nguyen
 
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...hoainhan1501
 
Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm nataliej4
 
Bài giảng Công Nghệ Phần Mềm
Bài giảng Công Nghệ Phần MềmBài giảng Công Nghệ Phần Mềm
Bài giảng Công Nghệ Phần MềmHoài Phạm
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmNguyễn Anh
 
Ứng dụng mô hình CSDL phân tán giải quyết bài toán quản lý bán hàng
Ứng dụng mô hình CSDL phân tán giải quyết bài toán quản lý bán hàngỨng dụng mô hình CSDL phân tán giải quyết bài toán quản lý bán hàng
Ứng dụng mô hình CSDL phân tán giải quyết bài toán quản lý bán hàngnataliej4
 
Slide đồ án tốt nghiệp
Slide đồ án tốt nghiệpSlide đồ án tốt nghiệp
Slide đồ án tốt nghiệpToan Pham
 
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minhBáo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minhnataliej4
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngleemindinh
 
Bao cao UML phan tich he thong nha cho thue
Bao cao UML phan tich he thong nha cho thueBao cao UML phan tich he thong nha cho thue
Bao cao UML phan tich he thong nha cho thueKali Back Tracker
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịThanh Hoa
 
Công nghệ phần mềm chuong 1
Công nghệ phần mềm chuong 1Công nghệ phần mềm chuong 1
Công nghệ phần mềm chuong 1laducqb
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên nataliej4
 
CONG NGHE PHAN MEM
CONG NGHE PHAN MEMCONG NGHE PHAN MEM
CONG NGHE PHAN MEMduc phong
 

What's hot (20)

Đè tài: Phân tích thiết kế hệ thống quản lí phòng trọ, HAY
Đè tài: Phân tích thiết kế hệ thống quản lí phòng trọ, HAYĐè tài: Phân tích thiết kế hệ thống quản lí phòng trọ, HAY
Đè tài: Phân tích thiết kế hệ thống quản lí phòng trọ, HAY
 
Hệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng onlineHệ thống quản lý bán hàng online
Hệ thống quản lý bán hàng online
 
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...
 
Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm Mô hình hóa dữ liệu mức quan niệm
Mô hình hóa dữ liệu mức quan niệm
 
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đĐề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
Đề tài: Xây dựng phần mềm quản lý quán cà phê, HOT, 9đ
 
Bài giảng Công Nghệ Phần Mềm
Bài giảng Công Nghệ Phần MềmBài giảng Công Nghệ Phần Mềm
Bài giảng Công Nghệ Phần Mềm
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềm
 
Ứng dụng mô hình CSDL phân tán giải quyết bài toán quản lý bán hàng
Ứng dụng mô hình CSDL phân tán giải quyết bài toán quản lý bán hàngỨng dụng mô hình CSDL phân tán giải quyết bài toán quản lý bán hàng
Ứng dụng mô hình CSDL phân tán giải quyết bài toán quản lý bán hàng
 
Slide đồ án tốt nghiệp
Slide đồ án tốt nghiệpSlide đồ án tốt nghiệp
Slide đồ án tốt nghiệp
 
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minhBáo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
Báo cáo đồ án tôt nghiệp: Xây dựng Website bán hàng thông minh
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàng
 
Bao cao UML phan tich he thong nha cho thue
Bao cao UML phan tich he thong nha cho thueBao cao UML phan tich he thong nha cho thue
Bao cao UML phan tich he thong nha cho thue
 
Bài tập HTML/CSS
Bài tập HTML/CSSBài tập HTML/CSS
Bài tập HTML/CSS
 
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
 
Công nghệ phần mềm chuong 1
Công nghệ phần mềm chuong 1Công nghệ phần mềm chuong 1
Công nghệ phần mềm chuong 1
 
Đề tài: Chương trình quản lý thư viện trường ĐH sao đỏ, HAY
Đề tài: Chương trình quản lý thư viện trường ĐH sao đỏ, HAYĐề tài: Chương trình quản lý thư viện trường ĐH sao đỏ, HAY
Đề tài: Chương trình quản lý thư viện trường ĐH sao đỏ, HAY
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
 
CONG NGHE PHAN MEM
CONG NGHE PHAN MEMCONG NGHE PHAN MEM
CONG NGHE PHAN MEM
 
Ngân hàng hệ thống phân tán PTIT
Ngân hàng hệ thống phân tán PTITNgân hàng hệ thống phân tán PTIT
Ngân hàng hệ thống phân tán PTIT
 
Đề tài: Phần mềm quản lý thư viện và website tra cứu sách, HOT
Đề tài: Phần mềm quản lý thư viện và website tra cứu sách, HOTĐề tài: Phần mềm quản lý thư viện và website tra cứu sách, HOT
Đề tài: Phần mềm quản lý thư viện và website tra cứu sách, HOT
 

Similar to bao_cao_apache_jmeter.pdf

Tìm hiểu các kỹ thuật kiểm thử phần mềm ứng dụng trong lập trình Java.
Tìm hiểu các kỹ thuật kiểm thử phần mềm  ứng dụng trong lập trình Java.Tìm hiểu các kỹ thuật kiểm thử phần mềm  ứng dụng trong lập trình Java.
Tìm hiểu các kỹ thuật kiểm thử phần mềm ứng dụng trong lập trình Java.Nguyễn Anh
 
01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptx01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptxTunTrung15
 
1.+tai+lieu+thiet+ke
1.+tai+lieu+thiet+ke1.+tai+lieu+thiet+ke
1.+tai+lieu+thiet+keLinh Hoang
 
cài đặt metasploit
cài đặt metasploitcài đặt metasploit
cài đặt metasploitLê Lãnh
 
Bao cao thuc tap athena chinh sua
Bao cao thuc tap athena chinh suaBao cao thuc tap athena chinh sua
Bao cao thuc tap athena chinh suaHình Vô
 
Bao cao thuc tap
Bao cao thuc tapBao cao thuc tap
Bao cao thuc tapHình Vô
 
Virtual cluster thesis
Virtual   cluster thesisVirtual   cluster thesis
Virtual cluster thesisSentifi
 
Tems investigation-130529205724-phpapp01
Tems investigation-130529205724-phpapp01Tems investigation-130529205724-phpapp01
Tems investigation-130529205724-phpapp01Trần Công
 
Chương 3. PHƯƠNG PHÁP MÔ PHỎNG
Chương 3. PHƯƠNG PHÁP MÔ PHỎNGChương 3. PHƯƠNG PHÁP MÔ PHỎNG
Chương 3. PHƯƠNG PHÁP MÔ PHỎNGLe Nguyen Truong Giang
 
Cnpmnc ch3 kiem thu ql cau hinh
Cnpmnc ch3 kiem thu ql cau hinhCnpmnc ch3 kiem thu ql cau hinh
Cnpmnc ch3 kiem thu ql cau hinhKy Vo
 
Bảo trì phần mềm
Bảo trì phần mềmBảo trì phần mềm
Bảo trì phần mềmNguyễn Anh
 
Bai giangvb.net
Bai giangvb.netBai giangvb.net
Bai giangvb.netvvpcdsptin
 

Similar to bao_cao_apache_jmeter.pdf (20)

Jmeter tool
Jmeter toolJmeter tool
Jmeter tool
 
Bai bao cao 3
Bai bao cao 3Bai bao cao 3
Bai bao cao 3
 
Optisystem
OptisystemOptisystem
Optisystem
 
VTV Mobile Performace Test
VTV Mobile Performace TestVTV Mobile Performace Test
VTV Mobile Performace Test
 
Tìm hiểu các kỹ thuật kiểm thử phần mềm ứng dụng trong lập trình Java.
Tìm hiểu các kỹ thuật kiểm thử phần mềm  ứng dụng trong lập trình Java.Tìm hiểu các kỹ thuật kiểm thử phần mềm  ứng dụng trong lập trình Java.
Tìm hiểu các kỹ thuật kiểm thử phần mềm ứng dụng trong lập trình Java.
 
01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptx01.1-Quy trinh phat trien phan mem.pptx
01.1-Quy trinh phat trien phan mem.pptx
 
1.+tai+lieu+thiet+ke
1.+tai+lieu+thiet+ke1.+tai+lieu+thiet+ke
1.+tai+lieu+thiet+ke
 
cài đặt metasploit
cài đặt metasploitcài đặt metasploit
cài đặt metasploit
 
Bao cao thuc tap athena chinh sua
Bao cao thuc tap athena chinh suaBao cao thuc tap athena chinh sua
Bao cao thuc tap athena chinh sua
 
Bao cao thuc tap
Bao cao thuc tapBao cao thuc tap
Bao cao thuc tap
 
Virtual cluster thesis
Virtual   cluster thesisVirtual   cluster thesis
Virtual cluster thesis
 
Tems investigation
Tems investigationTems investigation
Tems investigation
 
Tems investigation-130529205724-phpapp01
Tems investigation-130529205724-phpapp01Tems investigation-130529205724-phpapp01
Tems investigation-130529205724-phpapp01
 
Chương 3. PHƯƠNG PHÁP MÔ PHỎNG
Chương 3. PHƯƠNG PHÁP MÔ PHỎNGChương 3. PHƯƠNG PHÁP MÔ PHỎNG
Chương 3. PHƯƠNG PHÁP MÔ PHỎNG
 
Metasploit
MetasploitMetasploit
Metasploit
 
Timer kernel linux
Timer kernel linuxTimer kernel linux
Timer kernel linux
 
Cnpmnc ch3 kiem thu ql cau hinh
Cnpmnc ch3 kiem thu ql cau hinhCnpmnc ch3 kiem thu ql cau hinh
Cnpmnc ch3 kiem thu ql cau hinh
 
CHUONG 2.pdf
CHUONG 2.pdfCHUONG 2.pdf
CHUONG 2.pdf
 
Bảo trì phần mềm
Bảo trì phần mềmBảo trì phần mềm
Bảo trì phần mềm
 
Bai giangvb.net
Bai giangvb.netBai giangvb.net
Bai giangvb.net
 

Recently uploaded

Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Nguyen Thanh Tu Collection
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxendkay31
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...Nguyen Thanh Tu Collection
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...hoangtuansinh1
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Nguyen Thanh Tu Collection
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa2353020138
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...ThunTrn734461
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...Nguyen Thanh Tu Collection
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhvanhathvc
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxnhungdt08102004
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...Nguyen Thanh Tu Collection
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdftohoanggiabao81
 
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNguyễn Đăng Quang
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...Nguyen Thanh Tu Collection
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líDr K-OGN
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfhoangtuansinh1
 

Recently uploaded (19)

Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
Sáng kiến Dạy học theo định hướng STEM một số chủ đề phần “vật sống”, Khoa họ...
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptxChàm - Bệnh án (da liễu - bvdlct ctump) .pptx
Chàm - Bệnh án (da liễu - bvdlct ctump) .pptx
 
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
BỘ ĐỀ KIỂM TRA CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO CẤU TRÚC ĐỀ MIN...
 
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
Thong bao 337-DHPY (24.4.2024) thi sat hach Ngoai ngu dap ung Chuan dau ra do...
 
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
Sáng kiến “Sử dụng ứng dụng Quizizz nhằm nâng cao chất lượng ôn thi tốt nghiệ...
 
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoabài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
bài 5.1.docx Sinh học di truyền đại cương năm nhất của học sinh y đa khoa
 
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
QUẢN LÝ HOẠT ĐỘNG GIÁO DỤC KỸ NĂNG SỐNG CHO HỌC SINH CÁC TRƯỜNG TRUNG HỌC CƠ ...
 
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
10 ĐỀ KIỂM TRA + 6 ĐỀ ÔN TẬP CUỐI KÌ 2 VẬT LÝ 11 - KẾT NỐI TRI THỨC - THEO C...
 
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhhôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
ôn tập lịch sử hhhhhhhhhhhhhhhhhhhhhhhhhh
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docxTrích dẫn trắc nghiệm tư tưởng HCM5.docx
Trích dẫn trắc nghiệm tư tưởng HCM5.docx
 
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
SÁNG KIẾN “THIẾT KẾ VÀ SỬ DỤNG INFOGRAPHIC TRONG DẠY HỌC ĐỊA LÍ 11 (BỘ SÁCH K...
 
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
BỘ ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Sơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdfSơ đồ tư duy môn sinh học bậc THPT.pdf
Sơ đồ tư duy môn sinh học bậc THPT.pdf
 
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdfNQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
NQA Lợi ích Từ ISO và ESG Tăng Trưởng và Bền Vững ver01.pdf
 
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
TỔNG HỢP ĐỀ THI CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT MÔN NGỮ VĂN NĂM ...
 
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh líKiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
Kiểm tra chạy trạm lí thuyết giữa kì giải phẫu sinh lí
 
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdfChuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
Chuong trinh dao tao Su pham Khoa hoc tu nhien, ma nganh - 7140247.pdf
 

bao_cao_apache_jmeter.pdf

  • 1. ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ———————o0o——————– BÁO CÁO BÀI TẬP LỚN CÔNG CỤ KIỂM THỬ TỰ ĐỘNG APACHE JMETER Môn học : Kiểm thử và đảm bảo chất lượng phần mềm Giảng viên : TS Nguyễn Văn Sơn Sinh viên thực hiện : Phan Công Thành - 20020216 Võ Công Thành - 20020472 Lê Thị Xuân Thu - 20020217 Nguyễn Trọng Tuế - 20020498 HÀ NỘI, 2023
  • 2. Mục lục 1 Tổng quan 3 1.1 Giới thiệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Mục đích . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Ý tưởng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Các thành phần cơ bản và cơ chế hoạt động của JMeter 3 2.1 Các thành phần cơ bản của JMeter . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Cách thức xây dựng, hoạt động của công cụ . . . . . . . . . . . . . . . . . 6 3 Đánh giá JMeter 6 3.1 Ưu nhược điểm của JMeter . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.2 So sánh JMeter với công cụ khác . . . . . . . . . . . . . . . . . . . . . . . 8 4 Demo 10
  • 3. Danh sách hình vẽ 2.1 Các thành phần cơ bản của JMeter . . . . . . . . . . . . . . . . . . . . . . 3 2.2 Mô tả cách thức hoạt động của JMeter . . . . . . . . . . . . . . . . . . . . 6 4.1 Kết quả khi chạy Test plan . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Danh sách bảng 3.1 So sánh Jmeter và Locust . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2 So sánh Jmeter và LoadRunner . . . . . . . . . . . . . . . . . . . . . . . . 9 2
  • 4. 1 Tổng quan 1.1 Giới thiệu Apache JMeter là phần mềm mã nguồn mở được phát triển hoàn toàn dựa trên nền tảng Java. Ban đầu JMeter được Stefano Mazzocchi tạo ra với mục đích chính là kiểm tra hiệu năng của Apache Jserv. Sau này cộng đồng Apache đã cải thiện về mặt giao diện (GUI) cũng như nâng cấp và tích hợp thêm một số tính năng mới. 1.2 Mục đích Mục đích của JMeter là kiểm tra độ chịu tải và đo lường hiệu năng (performance testing) của server, ứng dụng web, ứng dụng di động, cơ sở dữ liệu (database), các dịch vụ web (web services),... 1.3 Ý tưởng Ý tưởng của JMeter là nó cho phép người dùng tạo ra một lượng lớn yêu cầu (request) đến hệ thống cần kiểm thử bằng cách tạo ra nhiều luồng (thread) và mỗi luồng (thread) được mô phỏng giống như một người dùng thực tế đang sử dụng hệ thống. Sau đó JMeter sẽ lưu lại tất cả phản hồi (response) để trả về các số liệu thống kê theo nhiều giao diện khác nhau như dạng cây (View results tree), báo cáo (Summary report), biểu đồ (Graph results),... Một số thông số được hiển thị trong các thống kê của JMeter như thời gian phản hồi, thời gian thực thi, thời gian kết nối, tốc độ, phần trăm yêu cầu (request) bị lỗi,... 2 Các thành phần cơ bản và cơ chế hoạt động của JMeter 2.1 Các thành phần cơ bản của JMeter Hình 2.1: Các thành phần cơ bản của JMeter 2.1.1 Test plan Là đơn vị cấp cao nhất của JMeter, nó chứa tất cả các yêu cầu cần thực hiện cũng như tất cả các cài đặt, cấu hình để có thể thực hiện request. Ngoài ra test plan cũng cho 3
  • 5. phép khai báo các biến chung để sử dụng trong suốt bài test. Test plan được lưu trữ trong file có đuôi là jmx. 2.1.2 Thread group Tạo ra một nhóm người dùng đồng thời gửi yêu cầu (request) đến hệ thống cùng lúc. JMeter sẽ chạy nhóm luồng (thread) này cho tới khi đạt đủ số lượng luồng (thread) mà người dùng thiết lập hoặc hết thời gian. Một số thuộc tính cơ bản của một thread group bao gồm: Number of threads: Số lượng luồng (thread) mà người dùng muốn tạo ra để thực hiện yêu cầu (request) đến hệ thống cần kiểm thử. Ramp-up period: Thời gian JMeter tạo ra các luồng (thread) mới. Ví dụ chúng ta thiết lập giá trị cho tham số này là 2s thì mỗi 2s JMeter sẽ tạo ra một luồng (thread) mới. Trong trường hợp người dùng không thiết lập giá trị cho tham số này thì mặc định hệ thống sẽ tạo ra tất cả luồng (thread) cùng một lúc. Loop count: Số lần các yêu cầu (request) sẽ được lặp lại trong mỗi luồng (thread). Scheduler: Bộ lập lịch sử dụng để xác định thời gian bắt đầu và kết thúc của thread group. Nếu người dùng không thiết lập giá trị cho tham số này thì hệ thống sẽ thực hiện cho đến khi nào hết số lượng luồng (thread) được thiết lập trong number of threads thì mới dừng lại. 2.1.3 Recording Ghi lại tất cả các yêu cầu (request) mà trình duyệt tạo ra khi người dùng thực hiện quá trình duyệt các trang web. Mục đích là tạo ra kịch bản kiểm thử vì khi kiểm thử một trang web bất kỳ chúng ta không thể biết được API và các tham số cần truyền vào cho các API đó. Ý tưởng để thực hiện được chức năng này là chúng ta sẽ thiết lập cấu hình proxy của trình duyệt web trỏ đến JMeter để JMeter có thể ghi lại được các yêu cầu (request) khi người dùng duyệt web. 2.1.4 Sampler Sampler được sử dụng để mô phỏng hoạt động của người dùng và là một đơn vị đang chạy gửi yêu cầu đến máy chủ và nhận dữ liệu phản hồi từ máy chủ. Sampler là một thành phần bên trong Thread Group, vì vậy nó phải được thêm vào Thread Group mỗi khi thực thi test case. Một số sampler có trong JMeter: TCP sampler, HTTP request, FTP request, JDBC request, Java request,... 2.1.5 Logic Controller Logic Controller kiểm soát thứ tự thực hiện của Sampler khi gửi request đến server, bao gồm cả thời gian và cách thức gửi. Logic Controller được chia thành 2 loại chính: Kiểm soát thứ tự thực hiện logic của các nút trong quá trình thực hiện kế hoạch kiểm 4
  • 6. tra, chẳng hạn như bộ điều khiển vòng lặp, bộ điều khiển If, v.v. Nhóm các tập lệnh trong Test plan để tạo điều kiện cho JMeter đếm kết quả thực thi và kiểm soát thời gian chạy của tập lệnh, chẳng hạn như throughput controller, transaction controller, v.v. 2.1.6 Listener Là thành phần được sử dụng để xử lý và trực quan hóa dữ liệu của kết quả kiểm tra thông qua các format khác nhau như: View Results Tree, Graph Results, and Aggregate Report. Listener có thể được tạo thành từ nhiều giai đoạn khác nhau trong quá trình kiểm thử như: Test plan, Thread Group, Sampler,... 2.1.7 Configuration Element Được sử dụng để thiết lập các cấu hình, giá trị mặc định và các biến sẽ được sử dụng. Nó có thể được xác định ở cấp độ Test plan, Thread Group hoặc ở Sampler, với các phạm vi khác nhau cho các cấp độ khác nhau.Configuration Element chủ yếu bao gồm biến do người dùng định nghĩa, cấu hình tập dữ liệu CSV, cấu hình bộ lấy mẫu TCP, trình quản lý cookie HTTP, v.v. 2.1.8 Assertion Sử dụng để kiểm tra phản hồi nhận được từ máy chủ cho một yêu cầu của một Sampler cụ thể có như kỳ vọng không. Và để kiểm tra một Sampler, có thể thêm Assertion làm thành phần con cho Sampler đó. 2.1.9 Timer Là thành phần cho phép cài đặt khoảng thời gian chờ giữa hai yêu cầu gửi đến server từ người dùng ảo. Điều này mô phỏng các hoạt động thực tế của người dùng trên website sẽ mất một khoảng thời gian như tìm kiếm, hoặc đọc nội dung. Một số JMeter timer chủ yếu gồm: Constant Timer, Uniform Random Timer, Precise Throughput Timer, Constant Throughput Timer, Gaussian Random Timer, JSR223 Timer, Poisson Random Timer, Synchronizing Timer, BeanShell Timer. 2.1.10 Pre-processors and Post Processors Pre-processors thực hiện một số thao tác như: sửa đổi các tham số, đặt biến môi trường hoặc cập nhật biến trước khi có Sampler request. Post Processors thực hiện một số thao tác sau Sampler request. Dữ liệu phản hồi có thể cần được sử dụng trong các yêu cầu tiếp theo và cần xử lý các dữ liệu phản hồi này. Ví dụ: nếu mã thông báo jwt trong phản hồi được lấy và sử dụng để xác thực trong các yêu cầu tiếp theo, thì Post Processors sẽ được sử dụng. 5
  • 7. 2.2 Cách thức xây dựng, hoạt động của công cụ Khi chúng ta bắt đầu thực hiện kiểm thử hiệu năng cho một ứng dụng. JMeter sẽ sinh ra các yêu cầu gửi đến server đích và mô phỏng số lượng người dùng gửi yêu cầu. Ngay khi máy chủ phản hồi lại yêu cầu, JMeter sẽ lưu lại các phản hồi này. Dưa trên các dữ liệu phản hồi, nó sẽ thu thập tập hợp để tính toán thống kê. Cuối cùng bằng cách sử dụng các thông tin thống kê, nó sẽ tạo ra một bản báo cáo cho người dùng về hiệu năng của hệ thống vừa thực hiện đánh giá bao gồm (Samples, Average, Min, Max, Error). Hình 2.2: Mô tả cách thức hoạt động của JMeter 3 Đánh giá JMeter 3.1 Ưu nhược điểm của JMeter 3.1.1 Ưu điểm JMeter là một sản phẩm mã nguồn mở và không tốn phí, các nhà phát triển có thể truy cập và tham khảo mã nguồn trực tiếp trên github của Apache; điều này tạo ra nhiều ưu điểm cho JMeter như: Cộng đồng hỗ trợ lớn, JMeter trở nên phổ biến làm cho nó có cộng đồng người sử dụng lớn cùng các nhà phát triển tích cực, cung cấp nhiều tài liệu, hướng dẫn để hỗ trợ người dùng. Ngoài ra, mã nguồn của nó cũng liên tục được cập nhật, bảo trì,... để mang lại một Jmeter ngày càng hoàn thiện hơn. Độc lập nền tảng, JMeter được phát triển bằng Java và lưu trữ các test plan của nó dưới dạng XML. Do đó, nó có thể chạy trên các hệ điều hành phổ biến hỗ trợ máy ảo Java (JVM) như Windows, Linux hay MacOS. Giao diện thân thiện, người dùng có thể sử dụng giao diện đồ họa để thiết lập hầu hết các yếu tố kiểm thử, như các yêu cầu HTTP, các biến, các bộ nghe,. . . giúp việc tạo và chạy kiểm thử dễ dàng và nhanh chóng. 6
  • 8. Đa dạng hiển thị báo cáo, JMeter có thể tạo báo cáo, biểu thị kết quả một cách đa dạng. Kết quả có thể được xem lại bằng cách sử dụng Graph, Chart, và Treeview ngay trong giao diện GUI hoặc lưu trữ với nhiều định dạng như Text, XML, HTML và JSON để phù hợp với mục đích sử dụng. Dễ sử dụng, người dùng có thể cài đặt và sử dụng JMeter một cách dễ dàng: chỉ cần tải về từ Internet, cài đặt và chạy. Là một ứng dụng Java thuần túy, nó sẵn sàng để sử dụng với các cài đặt mặc định ở bất kì nền tảng nào hỗ trợ JVM. Người dùng có thể dễ dàng làm quen và tìm kiếm hướng dẫn sử dụng chi tiết ngay trên Internet. Hỗ trợ đa giao thức, JMeter hỗ trợ nhiều giao thức như HTTP, FTP, SOAP, JDBC, JMS và LDAP,. . . giúp người dùng có thể thực hiện các loại kiểm thử như Load Test, Stress Test,. . . hay để kiểm thử hiệu suất của cơ sở dữ liệu. Khả năng mở rộng, JMeter có thể được mở rộng bằng cách sử dụng các plugin, viết các script riêng hoặc tích hợp với nhiều công cụ và thư viện khác nhau. JMeter cũng có thể được cấu hình để chạy trên nhiều máy khác nhau để tạo ra tải cao cho hệ thống và giảm tải cho máy chạy test. 3.1.2 Nhược điểm Việc giữ cho JMeter đơn giản, đa nền tảng với khả năng mở rộng cao cũng tạo cho nó một số nhược điểm không thể tránh khỏi như: Không hỗ trợ thực thi nội dung trả về của request, JMeter không phải là trình duyệt, nó hoạt động ở cấp độ giao thức; vì vậy JMeter không thực hiện tất cả các hành động được hỗ trợ bởi các trình duyệt như hiển thị các trang HTML hay thực thi Javascript. Với các webapp sử dụng các framework và hiển thị giao diện bằng mã Javascript được gắn bên trong tệp HTML, JMeter chỉ tính thời gian tải HTML sẽ không bao gồm thời gian tải và thực thi mã javascript để hiển thị trang (mã javascript có thể tạo các request để tải dữ liệu trang). Có thể yêu cầu kỹ năng cao, JMeter có thể yêu cầu nhiều kỹ năng lập trình để tùy chỉnh các kịch bản kiểm thử phức tạp, hay cấu hình các bộ điều khiển (Logic Controller) để tạo các ca kiểm thử, xử lý trật tự các Samplers. Quá tải bộ nhớ, JMeter có thể tiêu tốn nhiều bộ nhớ và tài nguyên khi mô phỏng quá nhiều người dùng và yêu cầu một lúc hoặc lưu và trực quan hoá các báo cáo, kết quả của Listener trong giao diện GUI. Điều này có thể tiêu tốn nhiều bộ nhớ và dẫn tới tình trạng hết bộ nhớ, gây ra lỗi bộ nhớ hoặc làm chậm máy tính khi chạy kiểm thử. Chỉ hỗ trợ ứng dụng web, một trong những ưu điểm của JMeter là hỗ trợ nhiều giao thức nhưng hầu hết trong số chúng chỉ làm việc với internet làm cho JMeter khó ứng dụng trong kiểm thử với desktop hay mobile. Không lưu vết truy cập như Cookie, JMeter không có tính năng ghi lại hành động của 7
  • 9. người dùng tự động như trên trình duyệt web, để thay thế phải tạo ra các kịch bản thử nghiệm bằng cách sử dụng các yếu tố như HTTP Request, HTTP Header Manager hay Cookie Manager. 3.2 So sánh JMeter với công cụ khác Trong phần này, chúng em tiến hành tìm hiểu và so sánh công cụ Jmeter với hai công cụ kiểm thử hiệu năng khác là LoadRunner và Locust để tìm ra điểm mạnh, yếu của công cụ so với các đối thủ. Trong đó, LoadRunner là phần mềm phải trả phí để sử dụng và Locust là phần mềm miễn phí. 3.2.1 Jmeter và Locust Bảng 3.1: So sánh Jmeter và Locust Tiêu chí Jmeter Locust Chi phí miễn phí miễn phí Xây dựng test Thiết kế chủ yếu cho tạo test bằng GUI, k cần viết code. Hỗ trợ cả non-GUI Để tạo test phải viết code python, cần kiến thức về code Giao thức hỗ trợ Hỗ trợ kiểm thử nhiều giao thức Chủ yếu kiểm thử giao thức http cho ứng dụng web Tiêu thụ tài nguyên Nhiều hơn Ít hơn nhờ cơ chế event-based, có thể xử lý được nhiều request hơn Cơ chế recording Hỗ trợ Không hỗ trợ Báo cáo phân tích Đầy đủ, hỗ trợ tốt hơn Còn đơn giản, hỗ trợ ít biểu đồ Từ bảng so sánh trên có thể thấy, cùng là phần mềm miễn phí, Jmeter có nhiều điểm mạnh hơn so với Locust. Tuy nhiên, Jmeter vẫn có một số điểm yếu so với Locust như tiêu thụ nhiều tài nguyên hơn, khả năng mở rộng kém hơn, khó quản lý kịch bản test hơn do Locust phải viết test bằng code nên có thể quản lý kịch bản test dễ dàng. 3.2.2 Jmeter với LoadRunner Bảng sau trình bày sự so sánh giữa công cụ Jmeter với LoadRunner dựa trên các tiêu chí: 8
  • 10. Bảng 3.2: So sánh Jmeter và LoadRunner Tiêu chí Jmeter LoadRunner Chi phí Là open source, miễn phí Không phải là 1 open source và người dùng phải trả phí để sử dụng đầy đủ các chức năng GUI Đơn giản hơn, với một màn hình biểu diễn tất cả những thứ người dùng cần Phức tạp hơn, cấu hình, xây dựng kịch bản, phân tích ở các nơi khác nhau Nền tảng hỗ trợ Linux, Windows, Web-based và Mac Windows, Web-based và Mac (không hỗ trợ Linux) Các giao thức hỗ trợ Giới hạn, bao gồm HTTP, FTP, JDBC, SOAP, LDAP, TCP, JMS, SMTP, POP3, IMAP Hỗ trợ tất cả các giao thức Khả năng tạo tải Không giới hạn Giới hạn Xây dựng kịch bản - Có thể chạy một test tải mà không cần có kiến thức về code - Khó khăn trong việc tạo các kịch bản kiểm thử phức tạp - Yêu cầu kiến thức về code để sử dụng - Có thể tạo các kịch bản kiểm thử phức tạp Báo cáo phân tích Kết quả dễ hiểu, cho phép phân tích chuyên sâu, hỗ trợ ít loại biểu đồ hơn LoadRunner Thông tin trong bản raw được phân tích cú pháp để tạo ra các biểu đồ. Hỗ trợ nhiều loại biểu đồ. Báo cáo chi tiết, đầy đủ hơn Sử dụng Có thể tùy chỉnh các tính năng theo nhu cầu của người dùng Không cho phép tùy chỉnh, các tính năng hiện có chỉ có thể được sử dụng Tính ổn định Kém với các hệ thống tải nặng Tốt hơn, có thể bị treo với các hệ thống tải nặng nhưng không thường xuyên Hiệu suất Thấp hơn, phát hiện được bugs nhỏ, có thể không phát hiện được trong những hệ thống quy mô lớn Phát hiện bugs nhanh hơn và hiệu quả hơn Cộng đồng hỗ trợ Rộng lớn Hạn chế hơn Từ bảng so sánh trên, ta thấy được những điểm mạnh, điểm yếu của Jmeter so với LoadRunner. Các điểm mạnh của JMeter so với LoadRunner như: 9
  • 11. Miễn phí, dễ sử dụng, hỗ trợ đa nền tảng, giao diện đơn giản. Các thành phần định nghĩa rõ ràng trên giao diện, có thể thêm các thành phần mới, hoặc tùy chỉnh các tính năng theo nhu cầu sử dụng. Việc tạo test đơn giản hơn, không yêu cầu nhiều ràng buộc. Bên cạnh đó, có thể chạy một test tải mà không cần kiến thức về code, giúp tăng đối tượng người có thể sử dụng công cụ. Khả năng tạo tải không giới hạn. Cộng đồng hỗ trợ rộng lớn. So với LoadRunner, JMeter: Khó khăn trong việc tạo các kịch bản phức tạp Kém hiệu quả đối với các hệ thống tải nặng. Trong các hệ thống quy mô lớn, có thể không phát hiện được lỗi Giới hạn các giao thức hỗ trợ. Báo cáo phân tích không chi tiết, đầy đủ, hỗ trợ nhiều biểu đồ như LoadRunner LoadRunner phù hợp nếu muốn tìm sự phân tích nguyên nhân gốc, phát hiện nút thắt cổ chai và các tính năng nâng cao khác. Tuy nhiên, với nhiều team phần mềm, JMeter lại là một lựa chọn phù hợp cung cấp đầy đủ chức năng cần thiết để kiểm tra hiệu năng mà không mất phí và có thể điều chỉnh theo nhu cầu. 4 Demo JMeter là một công cụ kiểm thử hiệu năng và tải cho các ứng dụng web; nó mang trong mình nhiều ưu điểm như nền tảng độc lập và cộng đồng hỗ lớn cùng với giao diện thân thiện nên người dùng rất dễ dàng trong việc cài đặt và chạy các bài kiểm thử cơ bản với nó. Các bước cơ bản để cài đặt và sử dụng JMeter trong giao diện GUI: Bước 1: Đảm bảo thiết bị kiểm thử hỗ trợ JVM (tối thiểu là JRE 8) Bước 2: Tải về JMeter từ trang web chính thức của Apache Bước 3: Giải nén tệp tin tải về và chạy tệp tin jmeter.bat (trên Windows) hoặc jmeter.sh (trên Linux/Mac) trong thư mục bin để khởi động JMeter. Bước 4: Tạo một Test Plan mới bằng cách nhấn vào biểu tượng + trên thanh công cụ. Đặt tên cho Test Plan và thêm các thành phần cần thiết như Thread Group, Sampler, Listener, Assertion,... Bước 5: Cấu hình các thông số cho các thành phần của Test Plan như số lượng người dùng, thời gian chờ, địa chỉ URL, phương thức HTTP,... Bước 6: Lưu và chạy Test Plan bằng cách nhấn vào biểu tượng Run trên thanh công cụ. Xem kết quả kiểm thử trên các Listener đã thêm vào Test Plan. Đặt vấn đề là kiểm thử hiệu năng tải trang chủ của web https://127.0.0.1:5000; theo 3 tiêu chí là thời gian phản hồi trung bình (đo bằng ms), số lượng yêu cầu xử lý được 10
  • 12. (đo bằng requests/s) và tỉ lệ lỗi (đo bằng phần trăm %); với 3 mục tiêu là thời gian phải hồi trung bình của mỗi yêu cầu không quá 10ms; số lượng yêu cầu xử lý được ít nhất 100 requests/s và tỉ lệ lỗi thấp hơn 1%. Các bước thực hiện kiểm thử hiệu bằng JMeter: Bước 1: Tạo Test Group từ Test Plan Chuột phải vào Test Plan, chọn Add > Threads (Users) > Thread Group; với các thông tin cấu hình: Name: localhost Number of Threads (users): 100 Ramp-up period (seconds): 1 Loop Count: 1 Bước 2: Tạo Samplers (HTTP Request) Chuột phải vào localhost (Thread Group), chọn Add > Sampler > HTTP Request; với các thông tin cấu hình: Name: home page Web server: Protocol: http; Server Name or IP: 127.0.0.1; Port Number: 5000 HTTP Request: Scheme: GET; Path: / Bước 3: Tạo Listener Chuột phải vào localhost (Thread Group), chọn Add > Listener > Summary Report Bước 4: Chạy Test Plan Lưu Test Plan: chọn File > Save Test Plan as > nhập tên file > nhấp vào Save. Chạy Test Plan: Ctrl + R Bước 5: Nhận kết quả Hình 4.1: Kết quả khi chạy Test plan 11
  • 13. Đánh giá kết quả: thời gian phản hồi trung bình (Average) là 2ms; số lượng yêu cầu xử lý mỗi giây (Throughput) là 101,3 requests/s; tỉ lệ lỗi (Error %) là 0% đã thỏa mãn yêu cầu hiệu năng đề ra. 12
  • 14. Tài liệu tham khảo [1] Noga Cohen. (2021). JMeter vs. Loadrunner: Why JMeter is Easier to Use Than LoadRunner. Truy cập 26/4/2023, từ https://www.blazemeter.com/blog/jmeter-vs- loadrunner [2] Yuri Bushnev. (2020). JMeter vs. Locust: Which One Should You Choose?. Truy cập 26/4/2023, từ https://www.blazemeter.com/blog/jmeter-vs-locust 13