Tải bản đầy đủ (.docx) (48 trang)

Nhom7_NghienCuuCongCuKiemThuJmeterVaUngDung

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.33 MB, 48 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
======***======

BÁO CÁO BTL THUỘC HỌC PHẦN:
KIỂM THỬ PHẦN MỀM

NGHIÊN CỨU CÔNG CỤ KIỂM THỬ JMETER VÀ
ỨNG DỤNG
GVHD:

Ths Hà Mạnh Đào

Nhóm - Lớp:

7– KTPM1-K12
Mai Văn Thanh - 2017603813
Trần Văn Quang – 2017602149

Thành viên:

Đoàn Thái Tân – 2017602056
Hoàng Văn Sơn - 2017603504
Hà Minh Tú - 2017603982

Hà nội, Năm 2020


LỜI MỞ ĐẦU
Ngày nay, con người đang bước vào kỷ nguyên 4.0, kỷ nguyên công
nghệ số với hàng ngàn các sản phẩm công nghệ được ra mắt mỗi năm. Trong


suốt quá trình làm và cho ra phần mềm, để đảm bảo phần mềm làm ra hiệu
quả có chất lượng tốt, cũng như tránh các lỗi nhỏ giúp giảm thiểu tiền bạc vào
nó. Việc xác định số người dùng tối đa, sức tải công việc là rất quan trọng
trong quá trình xây dựng và phát triên web. Kiểm thử hiệu năng nhằm xác
định mức độ, khả năng phân tải, và mức độ tin tưởng của ứng dụng trong môi
trường nhiều người dùng, có nhiều hoạt động khác nhau. Có nhiều công cụ có
thể làm điều đó như: LoadRunner, LoadStorm… tuy nhiên với khả năng chay
trên nhiều hệ điều hành, dễ cài đặt sử dụng, miễn phí nên jmeter được xem là
nổi bật hơn.

1


MỤC LỤC
LỜI MỞ ĐẦU.......................................................................................................................................1
MỤC LỤC.............................................................................................................................................2
MỤC LỤC HÌNH ẢNH.......................................................................................................................4
CHƯƠNG I: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM.........................................................5
1.

2.

3.

Kiến thức kiểm thử phần mềm cơ sở....................................................................................5
1.1.

Kiểm thử phần mềm........................................................................................................5

1.2.


Các phương pháp kiểm thử phần mềm........................................................................7

1.3.

Các kĩ thuật cơ bản của kiểm thử phần mềm..............................................................8

Kỹ thuật kiểm thử thủ công và tự động..............................................................................13
2.1.

Kiểm Thử Thủ Công (Manual testing).......................................................................13

2.2.

Kiểm Thử Tự Động (Automation Testing).................................................................14

2.3.

So sánh kiểm thử thủ công và kiểm thử tự động.......................................................16

Một số công cụ kiểm thử tự động........................................................................................17
3.1.

Selenium.........................................................................................................................17

3.2.

QTP (HP UFT)...............................................................................................................18

3.3.


Rational Function Tester..............................................................................................18

3.4.

WATIR............................................................................................................................19

3.5.

SilkTest............................................................................................................................19

3.6.

Công cụ Selenium Driver................................................................................................20

3.7.

Công cụ Selenium Grid......................................................................................20

3.8.

Công cụ Katalon............................................................................................................21

3.9.

Công cụ Appium............................................................................................................21

3.10.

Công cụ Robotium.....................................................................................................21


3.11.

Công cụ LoadRunner................................................................................................22

3.12.

Công cụ Nessus..........................................................................................................22

CHƯƠNG II: CÔNG CỤ KIỂM THỬ JMETER........................................................................23
1.

Lịch Sử....................................................................................................................................23

2.

Đặc Điểm.................................................................................................................................23

3.

Ưu và Nhược điểm.................................................................................................................24

4.

3.1.

Ưu Điểm..........................................................................................................................24

3.2.


Nhược Điểm....................................................................................................................25

Các Thành Phần....................................................................................................................25
4.1.

Test Plan..........................................................................................................................25

4.2.

Thread Group................................................................................................................26
2


4.3.

Samplers.........................................................................................................................28

4.4.

Listeners.........................................................................................................................29

4.5.

Work Bench....................................................................................................................30

4.6.

Assertions.......................................................................................................................31

4.7.


Config Elements.............................................................................................................32

4.8.

Logic Controllers And Timers.....................................................................................34

5.

Quá Trình Cài Đặt.................................................................................................................34

6.

Mô Tả Môi Trường và Cài Đặt............................................................................................36
6.1.

Môi trường kiểm thử.....................................................................................................36

6.2.

Cô lập môi trường kiểm thử.........................................................................................37

6.3.

Tạo tải (Load Generators )...........................................................................................37

6.4.

Tạo dữ liệu kiểm thử (Test data generator)...............................................................37


7.

Kỹ Thuật Kiểm Thử Chi Tiết...............................................................................................37
7.1.

Tạo kịch bản test:...........................................................................................................37

7.2.

Tiến hành kiểm thử.........................................................................................................38

CHƯƠNG III. ỨNG DỤNG CÔNG CỤ JMETER VÀO KIỂM THỬ HIỆU NĂNG
WEBSITE...........................................................................................................................................42
3.1

. Kế hoạch kiểm thử..........................................................................................................42

3.1.1. Website ứng dụng kiểm thử............................................................................................42
3.1.2. Phương pháp kiểm thử...................................................................................................42
3.1.3. Cài đặt Test plan..............................................................................................................42
3.2

. Kết quả..............................................................................................................................43

3.2.1. Truy cập HomePage........................................................................................................43
3.2.2. Truy cập vào Download Release từ Home Page..........................................................46
TÀI LIỆU THAM KHẢO.................................................................................................................48

3



MỤC LỤC HÌNH ẢNH
Hình 1 Giao diện Thread Group..........................................................................................................27
Hình 2 Giao diện kiểm thử Thread Group..........................................................................................28
Hình 3 Giao diện HTTP Request Default...........................................................................................33
Hình 4Giao diện trang chủ Jmeter.......................................................................................................35
Hình 5 Tải về máy tính........................................................................................................................35
Hình 6 File apacheJmeter....................................................................................................................36
Hình 7 Giao diện Jmeter......................................................................................................................36
Hình 8 Giao diện kiểm thử Jmeter......................................................................................................39
Hình 9 Giao diện test case trong Jmeter.............................................................................................41
Hình 10 Giao diện cài đặt test plan.....................................................................................................42
Hình 11 Giao diện request Hompage..................................................................................................43
Hình 12 Giao diện request download release......................................................................................43
Hình 13 Kết quả trả về.........................................................................................................................44
Hình 14 Hình bảng lỗi.........................................................................................................................44
Hình 15 Hình bảng kết quả Summary Report.....................................................................................45
Hình 16 Hình bảng kết quả Graph Result...........................................................................................45
Hình 17 Hình bảng kết quả khi truy cập.............................................................................................46
Hình 18 Hình bảng lỗi.........................................................................................................................46
Hình 19 Hình bảng Summary Report..................................................................................................47

4


CHƯƠNG I: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM
1. Kiến thức kiểm thử phần mềm cơ sở
1.1. Kiểm thử phần mềm
1.1.1. Khái niệm
 Kiểm thử phần mềm là quy trình được sử dụng để đánh giá,

kiểm tra chất lượng phần mềm ở nhiều khía cạnh khác nhau
dựa trên các yêu cầu của người sử dụng đối với sản phẩm phần
mềm, nhằm đảm bảo phần mềm hoạt động tốt trong các môi
trường, các trường hợp khác nhau.
 Có thể định nghĩa một cách dễ hiểu như sau: Kiểm thử phần
mềm là một tiến trình hay một tập hợp các tiến trình được thiết
kế để đảm bảo mã hóa máy tính thực hiện theo cái mà chúng đã
được thiết kế để làm, và không thực hiện bất cứ thứ gì không
mong muốn. Đây là một pha quan trọng trong quá trình phát
triển hệ thống, giúp cho người xây dựng hệ thống và khách
hàng thấy được hệ thống mới đã đáp ứng yêu cầu đặt ra hay
1.1.2.




chưa?
Lý do cần kiểm thử phần mềm
Phần mềm nào cũng có lỗi bởi vì nó do con người làm ra.
Kiểm thử độ tin cậy của phần mềm.
Các lỗi đang dùng trong thực tế có thể rất tốn chi phí cũng như




1.1.3.


gây nguy hiểm đến con người.
Tránh kiện tụng của khách hàng.

Phát triển doanh nghiệp.
Lỗi phát hiện càng sớm thì chi phí khắc phục càng nhỏ.
Mục tiêu của kiểm thử phần mềm
Phát hiện và xác định càng nhiều lỗi càng tốt ở các phần mềm

được kiểm thử
 Tiến hành sửa lỗi ở các phần mềm được kiểm thử và kiểm thử
lại cho đến khi đạt một mức độ chất lượng phần mềm chấp
nhận được.
 Thực thi những trường hợp kiểm thử một cách hiệu quả trong
một giới hạn ngân sách và lịch trình cho phép.
1.1.4. Các nguyên tắc cơ bản của kiểm thử phần mềm
5


Có 7 nguyên tắc cơ bản cần chú ý khi kiểm thử phần mềm, các nguyên
tắc đó là:
 Kiểm thử để chứng minh sự có mặt của lỗi và không chứng
minh điều ngược lại: Kiểm thử có thể cho thấy sự có mặt của lỗi
nhưng không thể chứng minh điều ngược lại là chương trình
không có lỗi.
 Việc kiểm thử giảm nguy cơ không tìm thấy lỗi trong phần mềm
nhưng ngay cả khi không tìm thấy lỗi thì cũng không thể chứng
minh được sản phẩm phần mềm được phát triển hoàn toàn chính
xác.
 Không thể kiểm thử vét cạn: Việc kiểm thử không thể thực hiện
được cho tất mọi trường hợp kiểm thử. Do vậy thay vì kiểm thử
mọi khía cạnh, ta phải tập trung vào kiểm thử nhữ ng yếu tố
quan trọng và nhiều rủi do.
 Kiểm thử sớm: Các hoạt động kiểm thử nên bắt đầu càng sớm

càng tốt trong vòng đời phát triển phần mềm, và nên tập trung
và những mục tiêu kiểm thử nhất định.
 Phân cụm lỗi: Một số lượng nhỏ các mô-đun phần mềm có thể
chứa hầu hết các lỗi được phát hiện ra trong suốt quá trình kiểm
thử hoặc tập trung hầu hết các lỗi vận hành.
 Kiểm thử ngược: Nếu một phương pháp kiểm thử được lặp đi
lặp lại nhiều lần, các trường hợp kiểm thử giống nhau sẽ không
phát hiện được triệt để lỗi mới. Để khắc phục điều này ta có thể
sử dụng nguyên tắc "kiểm thử ngược", các trường hợp kiểm thử
cần phải được xem xét và duyệt lại một cách đều đặn, và việc
kiểm thử mới cần phải được viết lại để thực thi nhữ ng phần
khác của phần mềm hay hệ thống để tìm ra những lỗi tiềm ẩn.
 Kiểm thử phụ thuộc vào ngữ cảnh: Việc kiểm thử được thực
hiện trong những hoàn cảnh khác nhau thì khác nhau.

6


 Sai lầm về việc không có lỗi: Tìm kiếm và sửa lỗi không thể
giúp được gì nếu hệ thống không dùng được hoặc không đáp
ứng được yêu cầu và sự mong đợi của khách hàng.
1.2. Các phương pháp kiểm thử phần mềm
1.2.1. Kiểm thử tĩnh - Static testing
 Là phương pháp kiểm thử phần mềm đòi hỏi phải duyệt lại các
yêu cầu và
các đặc tả bằng tay, thông qua việc sử dụng giấy, bút để kiểm
tra logic, lần từng chi tiết mà không cần chạy chương trình.
Kiểu kiểm thử này thường được sử dụng bởi chuyên viên thiết
kế người mà viết mã lệnh một mình.
 Kiểm thử tĩnh cũng có thể được tự động hóa. Nó sẽ thực hiện

kiểm tra toàn bộ bao gồm các chương trình được phân tích bởi
một trình thông dịch hoặc biên dịch mà xác nhận tính hợp lệ về
cú pháp của chương trình.
1.2.2. Kiểm thử động - Dynamic testing
 Là phương pháp kiểm thử phần mềm thông qua việc dùng máy
chạy chương trình để điều tra trạng thái tác động của chương
trình. Đó là kiểm thử dựa trên các ca kiểm thử xác định bằng sự
thực hiện của đối tượng kiểm thử hay chạy các chương trình.
Kiểm thử động kiểm tra cách thức hoạt động động của mã lệnh,
tức là kiểm tra sự phản ứng vật lý từ hệ thống tới các biến luôn
thay đổi theo thời gian. Trong kiểm thử động, phần mềm phải
thực sự được biên dịch và chạy. Kiểm thử động thực sự bao
gồm làm việc với phần mềm, nhập các giá trị đầu vào và kiểm
tra xem liệu đầu ra có như mong muốn hay không.
 Kiểm thử động có thể bắt đầu trước khi chương trình đã hoàn
tất 100% để kiểm thử các phần cụ thể của mã và được áp dụng
cho các chức năng riêng biệt hoặc Module. Kỹ thuật điển hình
cho điều này được sử dụng trong cả mạch nhánh/trình điều
7


khiển hoặc được thực hiện trong một môi trường gỡ lỗi nhất
định.
1.3. Các kĩ thuật cơ bản của kiểm thử phần mềm
1.3.1. Kiểm thử hộp đen
a.
Khái niệm: là một phương pháp kiểm thử phần mềm
được thực hiện mà không biết được cấu tạo bên trong của
phần mềm, là cách mà các tester kiểm tra xem hệ thống
như một chiếc hộp đen, không có cách nào nhìn thấy bên

trong của cái hộp.
b.
Ưu điểm của kiểm thử hộp đen
 Các tester được thực hiện từ quan điểm của người dùng và sẽ
giúp đỡ trong việc sáng tỏ sự chênh lệch về thông số kỹ
thuật
 Các tester theo phương pháp black box không có “mối ràng
buộc” nào với code, và nhận thức của một tester rất đơn
giản: một source code có nhiều lỗi. Sử dụng nguyên tắc,
"Hỏi và bạn sẽ nhận" các tester black box tìm được nhiều
bug ở nơi mà các DEV không tìm thấy.
 Tester có thể không phải IT chuyên nghiệp, không cần phải
biết ngôn ngữ lập trình hoặc làm thế nào các phần mềm đã
được thực hiện.
 Các tester có thể được thực hiện bởi một cơ quan độc lập từ
các developer, cho phép một cái nhìn khách quan và tránh sự
phát triển thiên vị.
 Hệ thống thật sự với toàn bộ yêu cầu của nó được kiểm thử
chính xác.
 Thiết kế kịch bản kiểm thử khá nhanh, ngay khi mà các yêu
cầu chức năng được xác định
c. Nhược điểm của kiểm thử hộp đen
 Dữ liệu đầu vào yêu cầu một khối lượng mẫu (sample) khá
lớn.
 Nhiều dự án không có thông số rõ ràng thì việc thiết kế test
case rất khó và do đó khó viết kịch bản kiểm thử do cần xác
8


định tất cả các yếu tố đầu vào, và thiếu cả thời gian cho việc

tập hợp này.
 Khả năng để bản thân kỹ sư lạc lối trong khi kiểm thử là khá
cao.
 Chỉ có một số nhỏ các đầu vào có thể được kiểm tra và nhiều
đường dẫn chương trình sẽ được để lại chưa được kiểm tra.
 Kiểm thử black box được xem như "là bước đi trong mê
cung tối đen mà không mang đèn pin” bởi vì tester không
biết phần mềm đang test đã được xây dựng như thế nào. Có
nhiều trường hợp khi một tester viết rất nhiều trường hợp
test để kiểm tra một số thứ có thể chỉ được test bằng một
trường hợp test và/hoặc một vài phần cuối cùng không được
test hết.
d.
Các phương pháp kiểm thử hộp đen
 Đoán lỗi
 kiểm thử dựa vào đồ thị nguyên nhân - kết quả
 Phân vùng tương đương
 Phân tích giá trị biên
 Sử dụng bảng quyết định
1.3.2. Kiểm thử hộp trắng
a. Khái niệm: Kiểm thử Hộp Trắng (còn gọi là Clear Box Testing,
Open Box Testing, Glass Box Testing, Transparent Box
Testing, Code-Based Testing hoặc Structural Testing) là
một phương pháp kiểm thử phần mềm trong đó tester biết
về cấu trúc nội bộ / thiết kế. Người kiểm tra chọn đầu vào
để thực hiện các đường dẫn thông qua mã và xác định
đầu ra thích hợp. Kiến thức lập trình và kiến thức thực
hiện là rất cần thiết trong kiểm thử hộp trắng. Kiểm thử
hộp trắng bao gồm phân tích dòng dữ liệu, điều khiển
dòng, dòng thông tin, mã thực hành, ngoại lệ và những

lỗi trình bày trong hệ thống để kiểm tra những hành động
b.

của phần mềm không được định hướng trước.
Ưu điểm của kiểm thử hộp trắng
9


 Test có thể bắt đầu ở giai đoạn sớm hơn, không cần phải chờ
đợi cho GUI để có thể test
 Test kỹ càng hơn, có thể bao phủ hầu hết các đường dẫn
 Thích hợp trong việc tìm kiếm lỗi và các vấn đề trong mã





lệnh
Cho phép tìm kiếm các lỗi ẩn bên trong
Các lập trình viên có thể tự kiểm tra
Giúp tối ưu việc mã hoá
Do yêu cầu kiến thức cấu trúc bên trong của phần mềm, nên

việc kiểm soát lỗi tối đa nhất.
c.
Nhược điểm của kiểm thử hộp trắng
 Vì các bài kiểm tra rất phức tạp, đòi hỏi phải có các nguồn
lực có tay nghề cao, với kiến thức sâu rộng về lập trình và
thực hiện.
 Maintenance test script có thể là một gánh nặng nếu thể hiện

thay đổi quá thường xuyên.
 Vì phương pháp thử nghiệm này liên quan chặt chẽ với ứng
dụng đang được test, nên các công cụ để phục vụ cho mọi
loại triển khai / nền tảng có thể không sẵn có.
d.
Các kỹ thuật kiểm thử hộp trắng phổ biến
 Kiểm thử đường cơ bản – đồ thị dòng
 Kiểm thử dựa trền luông điều khiển
1.3.3. Kiểm thử hộp xám
a.
Khái niệm: Kiểm thử hộp xám là một phương pháp kiểm
thử mà đòi hỏi tester phải có một lượng kiến thức nhất
định về các luồng hoạt động ở bên trong hệ thống. Khác
với kiểm thử hộp đen, phương pháp mà tester chỉ quan
tâm duy nhất để việc kiểm thử thông qua giao diện người
dùng, kiểm thử hộp xám đòi hỏi tester phải truy cập vào
các tài liệu thiết kế hệ thống cũng như hệ thống cơ sở dữ
liệu của hệ thống. Do đó mà tester có thể chuẩn bị tốt hơn
những dữ liệu cho việc kiểm thử cũng như các trường

10


hợp kiểm thử trong quá trình lên kế hoạch kiểm thử hệ
b.

thống.
Ưu điểm của kiểm thử hộp xám
 Vì là sự kết hợp giữa kiểm thử hộp trắng và kiểm thử hộp
đen nên có được ưu điểm của cả hai phương pháp này.

 Các tester sử dụng phương pháp này không dựa vào các
dòng lệnh của hệ thống mà chủ yếu dựa trên các tài liệu
định nghĩa giao diện cũng như các tài liệu đặc tả chức
năng.
 Trong phương pháp này các tester có thể thiết kế nên
những trường hợp kiểm thử đặc biệt xung quanh các giao
thức kết nối và các loại dữ liệu khác nhau.
 Việc kiểm thử được hoàn thành từ góc nhìn của người

dùng chứ không phải từ nhà thiết kế.
c.
Nhược điểm của kiểm thử hộp xám
 Vì phương pháp này không dựa trên việc truy cập code của
hệ thống nên sẽ không tránh được việc độ bao phủ của các
trường hợp kiểm thử bị giới hạn.
 Khi sử dụng phương pháp này thì nhiều trường hợp kiểm
thử có thể bị dư thừa nếu mà những nhà thiết kế phần mềm
đã chạy các trường hợp kiểm thử này trước đó.
 Việc kiểm tra tất cả các luồng đầu vào của hệ thống là
không thể thực hiện được vì bị giới hạn về mặt thời gian
kiểm thử và sẽ dẫn đến có rất nhiều các luồng hoạt động của
hệ thống không được kiểm tra.
d.
Quy trình kiểm thử phần mềm
 Quy trình kiểm thử phần mềm xác định các giai đoạn/ pha
trong kiểm thử phần mềm. Tuy nhiên, không có STLC tiêu
chuẩn cố định nào trên thế giới, nhưng về cơ bản quy trình
kiểm thử bao gồm những giai đoạn sau:
o Phân tích yêu cầu - Requirenment analysis
o Lập kế hoạch kiểm thử - Test planning

o Thiết kế kịch bản kiểm thử - Test case development
11


o Thiết lập môi trường kiểm thử - Test environment set up
o Thực hiện kiểm thử - Test execution
o Đóng chu trình kiểm thử - Test cycle closure
2. Kỹ thuật kiểm thử thủ công và tự động
2.1. Kiểm Thử Thủ Công (Manual testing)
2.1.1. Khái niệm: là Tester làm mọi công việc hoàn toàn bằng tay, từ
viết TEST CASE đến thực hiện test, mọi thao tác như nhập điều
kiện đầu vào, thực hiện một số sự kiện khác như click nút và
quan sát kết quả thực tế, sau đó so sánh kết quả thực tế với kết
quả mong muốn trong test case, điền kết quả test.
2.1.2. Ưu điểm và Nhược điểm
a.
Ưu điểm:
 Cho phép tester thực hiện việc kiểm thử khám phá
 Thích hợp kiểm tra sản phẩm lần đầu tiên.
 Thích hợp kiểm thử trong trường hợp các test case chỉ phải
thực hiện một số ít lần.
 Giảm được chi phí ngắn hạn.
b.
Nhược điểm:
 Kiểm thử thủ công là không chính xác tại mọi thời điểm do
lỗi của con người, do đó nó là ít đáng tin cậy.
 Tốn nhiều thời gian và nguồn lực con người.
2.1.3. Các loại kiểm thử thủ công
a.
Kiểm thử hộp đen (Black Box Testing): là một phương

pháp kiểm thử phần mềm được thực hiện mà không biết
được cấu tạo bên trong của phần mềm, là cách mà các
tester kiểm tra xem hệ thống như một chiếc hộp đen,
b.

không có cách nào nhìn thấy bên trong của cái hộp
Kiểm thử hộp đen (White Box Testing): là một phương
pháp kiểm thử phần mềm trong đó tester biết về cấu trúc

c.

nội bộ / thiết kế.
Kiểm thử đơn vị (Unit Testing): là một loại kiểm thử
phần mềm trong đó các đơn vị hay thành phần riêng lẻ

d.

của phần mềm được kiểm thử.
Kiểm thử hệ thống (System Testing): là một phương
pháp theo dõi và đánh giá hành vi của sản phẩm hoặc hệ
12


thống phần mềm hoàn chỉnh và đã được tích hợp đầy đủ,
dựa vào đặc tả và các yêu cầu chức năng đã được xác
e.

định trước.
Kiểm thử tích hợp (Integration Testing): là một giai
đoạn trong kiểm thử phần mềm. Mỗi môđun phần mềm


f.

riêng biệt được kết hợp lại và kiểm thử theo nhóm.
Kiểm thử chấp nhận (Acceptance Testing): là một
kiểm thử liên quan đến nhu cầu của người sử dụng, yêu
cầu và quy trình kinh doanh được tiến hành để xác định
có hay không một hệ thống đáp ứng các tiêu chí chấp
nhận và kiểm tra hệ thống đáp ứng yêu cầu của khách

hàng
2.2. Kiểm Thử Tự Động (Automation Testing)
2.2.1. Khái niệm: Kiểm thử tự động là thực hiện kiểm thử phần mềm
bằng một chương trình đặc biệt với rất ít hoặc không có sự
tương tác của con người, giúp cho người thực hiện việc kiểm
thử phần mềm (tester) không phải lặp đi lặp lại các bước nhàm
chán.
2.2.2. Ưu và Nhược điểm
a.
Ưu Điểm
 Đáng tin cậy: Test chạy chính xác theo quy trình đã định
sẵn. Vì vậy tránh được nhiều lỗi do con người tạo ra. Ví dụ
như: nhập sai dữ liệu.
 Có thể test cách phần mềm xử lý (tính năng/hiệu năng) khi
gặp tình huống chạy lặp đi lặp lại nhiều lần (cùng lúc) trên
cùng script test. Đây còn gọi là performance/load testing.
 Có thể lập trình nhiều test tinh vi hơn để thu về những thông
tin ẩn từ ứng dụng. Ở điểm này thì kiểm thử thủ công không
thể làm được.
 Kiểm thử mang tính toàn diện cao: Có thể tạo ra một bộ test

để bao quát hết tất cả tính năng trong ứng dụng.
 Có thể tái sử dụng test trên nhiều phiên bản khác nhau của
ứng dụng, ngay cả khi có sự thay đổi giao diện.
13


 Chất lượng và hiệu suất phần mềm tốt hơn bởi vì ta có thể
chạy nhiều test trong thời gian ngắn hơn với ít resource
nhất.
 Có tính kinh tế cao vì có thể giảm thiểu nguồn nhân lực làm
kiểm tra hồi quy.
b.
Nhược điểm:
 Các công cụ kiểm thử tự động mặc dù rất thuận tiện về nhiều
phương diện nhưng thực tế dù như thế nào đi chăng nữa thì
nó cũng không phải là một công cụ có thể thay thế hoàn toàn
quá trình kiểm thử. Để thực hiện các thiếp lập tự động thì
vẫn cần có con người, phải bỏ công sức, tiền bạc và thời
gian.
 Đòi hỏi Tester phải có kinh nghiệm technical và kỹ năng lập
trình.
 Đòi hỏi thời gian chuẩn bị dài hơn để thiết kế, cài đặt kỹ
càng trước khi cần đưa dự án đi test.
 Mất chi phí cho các các công cụ tự động hóa như phí bản
quyền, bảo trì, tìm hiểu, giáo dục
2.2.3. Các loại kiểm thử tự động chính
a.
Kiểm tra đơn vị tự động (Automated Unit Tests):
được viết ra để sử dụng kiểm thử ở cấp Code chức năng.
Bugs được tìm ra trong các chức năng, các phương pháp

b.

cũng như vòng lặp được viết nên bởi Developers.
Automated Web Service / API Tests: là thực hiện kiểm
thử các chức năng phải chạy bình thường, phải tuân thủ
và bảo mật. Trong ứng dụng web, chúng ta có thể kiểm
thử các Yêu cầu và Phản hồi của ứng dụng của mình xem

c.

chúng có an toàn và đã được mã hoá hay chưa?.
Automated GUI Tests: là hình thức tự động hóa liên
quan đến thử nghiệm giao diện Người dùng của ứng
dụng. Loại kiểm thử này cũng gần nhất với những gì
người dùng sẽ làm với ứng dụng của chúng ta. Vì người
14


dùng sẽ sử dụng chuột và bàn phím, nên các kiểm thử
GUI tự động cũng phải bắt chước được hành vi tương tự
bằng cách sử dụng chuột và bàn phím để nhấp hoặc điền
vào các đối tượng có trên giao diện người dùng. Do đó,
chúng ta có thể tìm thấy các lỗi sớm và nó có thể được sử
dụng trong rất nhiều tình huống ví dụ như kiểm thử hồi
quy hoặc kiểm thử điền vào các biểu mẫu, những hành
động mà nếu kiểm thử thủ công sẽ mất rất nhiều thời
2.3.

gian.
So sánh kiểm thử thủ công và kiểm thử tự động


15


Kiểm thử thủ công
Kiểm thử tự động
 Kiểm thử thủ công là không chính  Tự động thử nghiệm là đáng tin
xác tại mọi thời điểm do lỗi của

cậy hơn, vì nó được thực hiện bởi

con người, do đó nó là ít đáng tin

các công cụ hoặc các kịch bản.

cậy.
 Kiểm thử thủ công tốn thời gian.

 Tự động thử nghiệm được thực
hiện bởi các công cụ phần mềm,
vì vậy nó là nhanh hơn so với một

 Đầu tư là cần thiết cho nguồn

phương pháp thủ công đáng kể.
 Đầu tư là cần thiết cho công cụ

nhân lực.
 Kiểm thử thủ công chỉ là thực tế


kiểm thử.
 Tự động thử nghiệm là một lựa

khi các trường hợp thử nghiệm

chọn thực tế khi các trường hợp

đang chạy một lần hoặc hai lần,

thử nghiệm được chạy liên tục

và thường xuyên lặp đi lặp lại

trong một thời gian dài.

không cần thiết.
 Kiểm thử thủ công cho phép con

 Kiểm thử tự động không đòi hỏi

người quan sát, có thể hữu ích

sự quan sát của con người và

hơn nếu mục tiêu là người dùng

không thể đảm bảo thân thiện với

thân thiện hoặc cải thiện trải


người hoặc trải nghiệm khách

nghiệm của khách hàng.

hàng tích cực.

3. Một số công cụ kiểm thử tự động
3.1. Selenium
 Khái niệm: Nó là một công cụ kiểm tra phần mềm được sử dụng
để kiểm tra hồi quy( Regression Testing). Đây là một công cụ kiểm
tra mã nguồn mở cung cấp chức năng phát lại và thu âm để kiểm tra
hồi quy. Các Selenium IDE chỉ hỗ trợ trình duyệt web Mozilla
Firefox.
 Đặc điểm của Selenium:
16


o Cung cấp các điều khoản để xuất khẩu ghi lại kịch bản trong
các ngôn ngữ khác như Java, Ruby, RSpec, Python, C #,
JUnit và TestNG
o Nó có thể thực hiện nhiều bộ kiểm thử cùng một lúc
o Xác định phần tử sử dụng id, tên, đường dẫn X, v.v.
o Lưu trữ các bộ kiểm thử như Ruby Script, HTML và bất kỳ
định dạng nào khác
o Hỗ trợ tệp tin người dùng selenium-extensions.js
o Cho phép để chèn ý kiến ở giữa của kịch bản để hiểu rõ hơn
nội dung và mục đích của kịch bản kiểm thử
3.2. QTP (HP UFT)
 Khái niệm: QTP được sử dụng rộng rãi để kiểm tra chức
năng( Functional Testing) và hồi quy( Regression Testing), giải

quyết các ứng dụng phần mềm và môi trường. Để đơn giản hóa việc
tạo và bảo trì thử nghiệm, nó sử dụng khái niệm kiểm tra từ khóa.
 Đặc điểm:
o Được sử dụng dễ dàng hơn dành cho người kiểm thử viên
không theo ngành kỹ thuật để thích ứng và tạo ra các trường
hợp thử nghiệm làm việc
o Sửa lỗi nhanh hơn bằng cách ghi lại và sao chép các lỗi cho
nhà phát triển
o Thu gọn tài liệu thử nghiệm tại một trang web
o QTP hỗ trợ môi trường phát triển .NET
o Có cơ chế xác định đối tượng kiểm thử tốt
3.3. Rational Function Tester
 Khái niệm: Là 1 công cụ kiểm tra tự động hướng đối tượng có khả
năng tự động kiểm tra dữ liệu, kiểm tra giao diện, và kiểm thử hồi
quy ( Regression Testing)
 Đặc điểm:
o Hỗ trợ một loạt các giao thức và ứng dụng như Java, HTML,
NET, Windows, SAP, Visual Basic ...
o Có thể ghi lại và phát lại các hành động theo yêu cầu
o Tích hợp tốt với các công cụ quản lý kiểm soát nguồn như
Rational Clear Case và tích hợp Rational Team Concert
17


o Cho phép các nhà phát triển tạo ra các kịch bản liên quan đến
từ khóa để có thể được tái sử dụng
o Bộ biên tập Công cụ Java Developer Toolkit của Eclipse tạo
điều kiện cho nhóm tạo mã thử nghiệm các đoạn mã trong
Java với Eclipse
o Hỗ trợ điều khiển tùy chỉnh thông qua proxy SDK (Java /

.Net)
o Hỗ trợ kiểm soát phiên bản để cho phép phát triển song song
các kịch bản thử nghiệm
3.4. WATIR
 Khái niệm: Là một phần mềm kiểm tra mã nguồn mở để kiểm thử
hồi quy( Regression Testing). Watir chỉ hỗ trợ khám phá Internet
trên các cửa sổ trong khi Watir webdriver hỗ trợ Chrome, Firefox,
IE, Opera,
 Đặc điểm:
o Hỗ trợ nhiều trình duyệt trên các nền tảng khác nhau
o Sử dụng một ngôn ngữ kịch bản hiện đại có đầy đủ tính năng
o Hỗ trợ ứng dụng web được viết bởi bất kỳ ngôn ngữ nào
o Cho phép bạn viết các test case dễ đọc và bảo trì
3.5. SilkTest
 Khái niệm: Silk Test được thiết kế để thực hiện kiểm tra chức năng(
Functional Testing) và hồi quy( Regression Testing). Nó là một
ngôn ngữ hướng đối tượng giống như C ++. Nó sử dụng các khái
niệm về đối tượng, các class và sự kế thừa.
 Đặc điểm:
o Nó bao gồm tất cả các tập tin mã nguồn
o Chuyển đổi các lệnh script thành các lệnh GUI. Trên cùng
một máy, các lệnh có thể được chạy trên một máy từ xa hoặc
máy chủ
o Để xác định chuyển động của con chuột cùng với các bấm
phím, Silktest có thể được thực hiện. Nó có thể sử dụng cả
phương pháp phát lại và ghi hoặc các phương pháp lập trình
mô tả.
18



o Xác định tất cả các điều khiển và cửa sổ của ứng dụng được
thử dưới dạng các đối tượng và xác định tất cả thuộc tính và
3.6.

3.7.

3.8.

thuộc tính của mỗi đối tượng
Công cụ Selenium Driver
o

WebDriver, không giống như Selenium RC, không dựa vào
JavaScript dành cho tự động hóa.

o

Nó điều khiển trình duyệt bằng cách trực tiếp liên lạc với nó.

o

Các ngôn ngữ được hỗ trợ giống với những ngôn ngữ trong

Selenium RC.
Công cụ Selenium Grid
o

Selenium Grid là một công cụ được sử dụng cùng
với Selenium RC để chạy thử nghiệm song song
trên các máy khác nhau và các trình duyệt khác

nhau cùng một lúc.

o

Thực hiện song song có nghĩa là chạy nhiều test
case cùng một lúc.

o

Cho phép chạy đồng thời các test case trong
nhiều trình duyệt và môi trường.

o

Tiết kiệm nhiều thời gian.

o

Sử dụng khái niệm hub-and-nodes . Hub hoạt
động như một nguồn chính của lệnh Selenium cho
mỗi kết nối với nó.

Công cụ Katalon
o

Là một bộ công cụ toàn diện cho kiểm thử tự động
hóa ứng dụng trên web và điện thoại di động.

o


Công cụ này bao gồm một gói đầy đủ các tính
năng mạnh mẽ giúp vượt qua những thách thức
phổ biến trong tự động hóa thử nghiệm giao diện
web, ví dụ như pop-up, iFrame và wait-time.

19


o

3.9.

Giải pháp thân thiện và linh hoạt này giúp tester
thực hiện công tác kiểm tra tốt hơn, làm việc
nhanh hơn và khởi chạy phần mềm chất lượng cao
nhờ vào sự thông minh mà nó cung cấp cho toàn
bộ quá trình tự động hóa kiểm thử.

Công cụ Appium
o

Appium là một công cụ kiểm thử tự động các ứng dụng web,
native app và hybrid app.

o

Appium là công cụ kiểm thử tự động mã nguồn mở rất hữu
ích trong kiểm thử tự động các ứng dụng trên nền tảng
android, iOS và Windows desktop.


o

Appium là công cụ kiểm thử tự động mã nguồn mở rất hữu
ích trong kiểm thử tự động các ứng dụng trên nền tảng
android, iOS và Windows desktop.

o

Appium là công cụ kiểm thử tự động “cross-platform"- đa
nền tảng giúp bạn có thể thiết kế nhiều test tự động hóa phần
mềm cho các ứng dụng iOS và Android (nhiều nền tảng) sử
dụng cùng một API.

o

Appium hỗ trợ kiểm thử phần mềm tự động hóa trên trình
mô phỏng hoặc giả lập và các thiết bị di động vật lý.

3.10. Công cụ Robotium
o

Robotium là một khung kiểm thử tự động mã nguồn mở,
được sử dụng để kiểm thử hộp đen mạnh mẽ và đặc biệt là
các ứng dụng Android.

o

Robotium chủ yếu được sử dụng để kiểm thử tự động UI và
kết nối ràng buộc các thao tác cũng như thời gian chạy với
các thành phần có trong giao diện.


o

Robotium được phát hành theo giấy phép Apache 2.0. Nó
được tải về hoàn toàn miễn phí và có thể dễ dàng sử dụng
bởi các cá nhân và doanh nghiệp, được xây dựng trên Java
và JUnit 3.
20


o

Robotium cũng có thể làm việc mà không cần ứng dụng, nó
dựa vào mã nguồn để kiểm thử.

3.11. Công cụ LoadRunner
o LoadRunner một công cụ kiểm thử tự động thực hiện việc
kiểm tra hiệu năng của phần mềm.
o Nó cho phép chúng ta tìm ra những lỗi về khả năng thực thi
bằng việc phát hiện nguyên nhân, chỗ làm cho phần mềm chạy
chậm hoặc không đúng yêu cầu.
o Đây là công cụ mạnh với giải pháp kiểm tra tải, phát hiện và
đưa ra giải pháp cải tiến.
o Ứng dụng LoadRunner sẽ giúp giảm thời gian viết test script
đến 80%, đó là nhờ nó cung cấp chức năng tự động phát sinh
script mô tả lại các tình huống muốn kiểm tra.
3.12. Công cụ Nessus
o

Nessus là một công cụ dùng để pentest hệ thống, rà quét lỗ

hổng bảo mật và mã độc.

o

Cộng cụ này cho phép bạn dùng thử miễn phí.

o

Nessus chứa các plugin về bảo mật hàng đầu thế giới, có thể
rà quét lỗ hổng trong window, linux một cách toàn diện.

o

Cộng cụ này cho phép bạn rà quét lỗ hổng trong các web,
trình duyệt và các thiết bị mạng nội bộ.

CHƯƠNG II: CÔNG CỤ KIỂM THỬ JMETER
1. Lịch Sử
21


 Apache JMeter là một mã nguồn mở, phát triển dựa trên nền tảng Java
thuần (pure Java), được thiết kế để kiểm tra tải của các hành vi, chức
năng và đo lường hiệu suất của một hệ thống.
 Ban đầu, JMeter được giới thiệu cho các ứng dụng web kiểm tra tải và
hiệu năng, nhưng sau đó, phạm vi của nó đã mở rộng và có thể thực
hiện kiểm tra tải và hiệu năng trên các trang web, ứng dụng web và các
tài nguyên tĩnh hay động như Database, Rest Web Services, LDAP,
Java Object…
 Stefano Mazzocchi của Apache Software Foundation là người phát

triển ra JMeter. Ông ban đầu đã viết nó chủ yếu để kiểm tra hiệu năng
của Apache Jserv (hiện nay được gọi là Apache Tomcat – được sử dụng
phổ biến đối với server). Sau đó, cộng đồng Apache đã thiết kế lại để
nó cải thiệu về mặt GUI (Giao diện), thêm nhiều tính năng cũng như có
khả năng kiểm thử chức năng.
2. Đặc Điểm
 Nguồn mở, miễn phí
 Giao diện đơn giản, trực quan dễ sử dụng
 Có thể kiểm thử nhiều kiểu server: Web - HTTP, HTTPS, SOAP,
Database - JDBC, LDAP, JMS, Mail - POP3,…
 Công cụ độc lập có thể chạy trên nhiều nền tảng hệ điều hành khác
nhau, trên Linux chỉ cần chạy bằng một shell script, trên Windows thì
chỉ cần chạy một file .bat
 Đa luồng, giúp xử lý tạo nhiều request cùng một khoảng thời gian, xử
lý các dữ liệu thu được một cách hiệu quả.
 Đặc tính mở rộng, có rất nhiều plugin được chia trẻ rộng rãi và miễn
phí
 Một công cụ tự động để kiểm thử hiệu năng và tính năng của ứng dụng.
3. Ưu và Nhược điểm
3.1. Ưu Điểm
 Mã nguồn mở: Jmeter là một phần mềm mã nguồn mở. Điều này có
nghĩa là nó có thể được tải xuống miễn phí. Nó cũng là một ứng
dụng Java thuần túy 100%. Nhà phát triển có thể sử dụng mã nguồn
22


của nó, có thể sửa đổi và tùy chỉnh nó theo yêu cầu của họ. Họ cũng
có thể đóng góp code của họ để làm nên một JMeter tốt hơn.
 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. Như 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. Nó không yêu cầu bạn phải có bất kỳ kỹ năng cụ thể nào hoặc
kiến thức tên miền để sử dụng nó.
 Nền tảng độc lập: JMeter được phát triển bằng Java, đây là ngôn
ngữ lập trình phổ biến nhất trên thế giới. Do đó, nó có thể chạy trong
mọi hệ điều hành có thể là Window, Linux hoặc Mac.
 Báo cáo mạnh mẽ: JMeter có thể tạo báo cáo hiệu quả. Kết quả
kiểm tra có thể được xem lại bằng cách sử dụng Graph, Chart, and
Tree View. Jmeter hỗ trợ các định dạng khác nhau của báo cáo như
text, XML, HTML and JSON.
 Thử nghiệm cuối cùng: Với Jmeter, người dùng có thể thực hiện bất
kỳ loại kiểm thử nào mà bạn muốn. Load Test, Stress Test,
Functional Test, Distributed Test, tất cả trong một công cụ
 Tính linh hoạt: Bạn có thể tùy chỉnh JMeter theo yêu cầu của bạn
và áp dụng thử nghiệm tự động cho JMeter. Bạn có thể tiết kiệm
công sức của việc thực hiện các trường hợp kiểm tra thủ công.
 Hỗ trợ đa giao thức: JMeter hỗ trợ một vài giao thức như HTTP,
FTP, SOAP, JDBC, JMS và LDAP. Nó cũng có thể được sử dụng để
kiểm thử hiệu suất của cơ sở dữ liệu của bạn.
3.2. Nhược Điểm
 Tiêu thụ bộ nhớ: JMeter có thể mô phỏng tải nặng và trực quan hóa
báo cáo thử nghiệm. Điều này có thể tiêu tốn rất nhiều bộ nhớ và có
thể dẫn ra khỏi bộ nhớ dưới tải nặng.
 Chỉ áp dụng cho ứng dụng web: JMeter là công cụ tốt để thử
nghiệm ứng dụng web nhưng nó không phải là công cụ phù hợp để
thử nghiệm ứng dụng máy tính để bàn.
23


 Thiếu hỗ trợ cho JavaScript: JMeter không phải là một trình duyệt,

vì vậy nó không thể chạy JavaScript trong ứng dụng web. Nó có hỗ
trợ hạn chế để xử lý JavaScript hoặc Ajax, điều này có thể ảnh
hưởng đến độ chính xác của mô phỏng.
4. Các Thành Phần
4.1. Test Plan
 Chỉ là một kế hoạch kiểm thử đơn giản trong kiểm thử phần mềm
bao gồm tất cả các bước mà thực thi kịch bản, Kế hoạch kiểm thử
của JMeter có cùng mục đích giống nhau. Mọi thứ mà được bao
gồm trong một kế hoạch kiểm thử được thực thi theo một trình tự là
từ trên xuống dưới hoặc theo trình tự được xác định trong kế hoạch
kiểm tra. Kế hoạch kiểm thử là đơn giản còn với ThreadGroup,
Sampler và Listener thì nó trở nên phức tạp hơn ngay khi bạn bắt
đầu thêm nhiều phần tử như các phần tử về cấu hình, điều khiển và
tiền xử lý. Như chúng ta biết rằng JMeter đo hiệu suất bằng cách tạo
ra người dùng ảo hoặc các Threads dùng để tấn công máy chủ dưới
việc kiểm tra như thể người dùng thực đang gửi yêu cầu tới server.
Do đó, mọi kế hoạch kiểm thử nên có nhiều người dùng ảo hoặc các
nhóm Thread khi chúng ta gọi chúng trong JMeter.
 Các điểm quan trọng về Test Plan:
o
Kế hoạch kiểm thử nên được lưu trước khi chạy
o
Các file Jmeter hoặc các kế hoạch kiểm thử nên được lưu dưới
o

dạng tệp với đuôi mở rộng là .jmx
Bạn cũng có thể lưu các phần khác nhau của kế hoạch kiểm
thử như các lựa chọn khác nhau . Ví dụ, Nếu bạn muốn lưu
HTTP Request Sampler với Listener, bạn có thể lưu nó như
Test Fragment vì vậy nó có thể được sử dụng nó trong các


o

cảnh khác nhau của kiểm thử.
Các thành phần của WorkBench không được lưu trong Kế

hoạch kiểm thử.
4.2. Thread Group
24


×