TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
KHOA CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN
KIỂM THỬ GIAO DIỆN, ÁP DỤNG TRÊN CÔNG CỤ SELENIUM
Hưng Yên, tháng 5 năm 2013
LỜI NÓI ĐẦU
Ngày nay trên thế giới, công nghệ thông tin đã có những bước phát triển vượt
bậc. Ở nước ta hiện nay, ngành công nghệ thông tin trở thành ngành mũi nhọn, đẩy
mạnh phát triển công nghiệp hoá, hiện đại hóa đất nước. Kiểm thử phần mềm đang là
nhu cầu cấp thiết của ngành công nghệ thông tin nhằm tạo ra những sản phẩm đạt chất
lượng, đáp ứng yêu cầu cả mọi cơ quan tổ chức.
Qua khảo sát thực tế công cụ hỗ trợ trong kiểm thử phần mềm. Chúng em thấy
việc kiểm thử giao diện các phần mềm vẫn theo cách thủ công là chính. Và chúng em
quyết định “Kiểm thử giao diện, áp dụng trên công cụ Selenium ”với hi vọng giúp
nhà các nhà quản lý, người tiêu dùng sử dụng phần mềm một cách hiệu quả, tiện ích
và nhanh chóng, chính xác.
Chúng em mong sẽ nhận được nhiều ý kiến đóng góp hơn nữa của các thầy cô
và của các bạn để cho phần mềm được hoàn thiện hơn nữa đáp ứng được mọi yêu cầu
thực tế trong công việc quản lý bằng phần mềm.
Chúng em xin chân thành cảm ơn!
Hưng Yên, Ngày 20 tháng 04 năm 2010
Nhóm sinh viên thực hiện
MỤC LỤC
LỜI NÓI ĐẦU.......................................................................................................2
MỤC LỤC.............................................................................................................3
CHƯƠNG I: LÝ THUYẾT KIỂM THỬ GIAO DIỆN.........................................1
1.1. Khái niệm kiểm thử giao diện....................................................................1
1.2. Các vấn đề liên quan đến kiểm thử giao diện.............................................1
1.2.1. Kiểm thử thiết kế giao diện người dùng..............................................1
1.2.2. Kiểm thử thực thi giao diện người dùng.............................................7
1.3. Một số chú ý khi kiểm thử giao diện..........................................................9
CHƯƠNG II: TÌM HIỂU VỀ CÔNG CỤ SELENIUM......................................10
2.1. Tổng quan về selenium.............................................................................10
2.1.1. Selenium là gì?..................................................................................10
2.1.2.Các thành phần của Selenium.............................................................10
3.2. Selenium IDE...........................................................................................11
2.2.1. Cài đặt Selenium IDE........................................................................11
2.2.2. Các icon của Selenium IDE...............................................................13
3.2.3. Các thao tác thực hiện kiểm thử tự động với Selenium....................15
2.2.4. Selenese.............................................................................................19
2.3. Selenium Remote Control (Selenium RC)...............................................21
2.3.1. Các thành phần của Selenium Remote Control.................................22
2.3.2. Cài đặt Selenium Remote Control.....................................................23
2.3.3. Các thao tác với Selenium RC...........................................................26
2.4. Tổng kết chương 2....................................................................................40
KẾT LUẬN.........................................................................................................42
TÀI LIỆU THAM KHẢO...................................................................................43
1
CHƯƠNG I: LÝ THUYẾT KIỂM THỬ GIAO DIỆN
1.1. Khái niệm kiểm thử giao diện
Kiểm thử giao diện chính là kiểm tra xem giao diện sử dụng có nhất quán, rõ
ràng, có dễ sử dụng và đúng như mong đợi của người sử dụng hay không. Đảm bảo sự
giao tiếp giữa người sử dụng và ứng dụng diễn ra ổn thỏa. Người dùng có thể giao tiếp
với ứng dụng một cách dễ dàng mà không gặp bất cứ sự khó khăn nào về mặt giao
diện.
1.2. Các vấn đề liên quan đến kiểm thử giao diện
1.2.1. Kiểm thử thiết kế giao diện người dùng
Kiểm thử thiết kế giao diện người dùng đánh giá mức độ thiết kế “quan tâm” đến
người dùng, bởi cung cấp thông tin rõ ràng, phân phát thông tin phản hồi, và duy trì
tính nhất quán của ngôn ngữ và phương pháp. Ấn tượng chủ quan về tính dễ sử dụng
và nhìn và cảm nhận được xem xét cẩn thận trong kiểm thử thiết kế giao diện người
dùng. Các vấn đề liên quan đến giao diện, luồng tự nhiên, các nút lệnh, khả năng sử
dụng, khả năng truy cập được khẳng định trong kiểm thử thiết kế giao diện. Trong
kiểm thử thiết kế giao diện người dùng, bạn nên đặc biệt chú ý đến khả năng phù hợp
của các mặt thiết kế.
Tính thẩm mỹ, khả năng phục hồi và khả năng tương tác nhất quán ảnh hưởng
trực tiếp đến khả năng sử dụng của ứng dụng. Khi các gợi ý không rõ ràng, giao tiếp
giữa người dùng và ứng dụng có thể bị phá vỡ.
Rất quan trọng để hiểu rõ mục đích của phần mềm cần được kiểm thử trước khi
bắt đầu kiểm thử giao diện người dùng. Hai câu hỏi chính để trả lời là:
1. Ai là người dùng chính của ứng dụng?
2. Phương pháp thiết kế nào đã được sử dụng?
Hãy luôn ghi nhớ rằng giao diện người dùng phục vụ cho người dùng, chứ không
phải cho người thiết kế hay lập trình viên. Với tư cách là kiểm thử viên, chúng ta đại
diện cho người dùng, như thế chúng ta cần phải biết rõ yêu cầu của họ.
Kiểm thử giao diện người dùng liên quan đến hai loại người dùng chính: (1)
người dùng phía trình chủ, và quan trọng hơn, (2) người dùng phía trình khách. Người
dùng phía trình khách thường tương tác với các ứng dụng Web qua trình duyệt Web.
GVHD: Lê Thị Thu Hương
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường
2
Thông thường, người dùng phía trình khách không có kiến thức về kỹ thuật và kiến
trúc ứng dụng như là người dùng phía trình chủ trên cùng một hệ thống. Hơn nữa, các
chức năng của ứng dụng dành cho người dùng phía trình khách thường khác với các
chức năng dành cho người dùng phía trình chủ (thường là những người quản trị hệ
thống). Vì thế kiểm thử giao diện phía trình chủ và kiểm thử giao diện phía trình khách
nên được đánh giá bởi các chuẩn khác nhau.
Khi tạo ra mô tả sơ lược về người dùng, cần xem xét bốn loại tiêu chuẩn sau cho
cả người dùng phía trình chủ và trình khách:
1. Kinh nghiệm về máy tính
2. Kinh nghiệm về Web.
3. Hiểu biết về lĩnh vực.
4. Kinh nghiệm về ứng dụng cụ thể đó.
Xem xét thiết kế
Bước tiếp theo trong chuẩn bị kiểm thử giao diện người dùng là nghiên cứu thiết
kế dùng cho ứng dụng. Các loại ứng dụng và người dùng khác nhau yêu cầu các thiết
kế khác nhau.
Các chủ đề cần xem xét khi đánh giá một thiết kế
* Phương pháp thiết kế.
Khi thiết kế giao diện cho người dùng bạn nên đặt ra các câu hỏi cho chính bạn:
- Liệu rằng thiết kế của ứng dụng cần được kiểm thử có thích hợp với người dùng
cuối?
- Giao diện người dùng có trực quan?
- Thiết kế giao diện có nhất quán trong toàn ứng dụng?
- Giao diện có đảm bảo người dùng ở trạng thái kiểm soát được?
- Giao diện có mang lại sự hứng thú?
- Giao diện có đơn giản, dễ hiểu và dễ sử dụng?
GVHD: Lê Thị Thu Hương
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường
3
- Có trợ giúp cho mọi màn hình?
* Tương tác của người dùng.
Người dùng có thể thực thi các dữ liệu khác nhau thao tác bằng tay qua bàn phím
và sự kiện chuột. Các cách thao tác dữ liệu bằng tay làm những cách khác nhau trên
các điều khiển của màn hình và công nghệ khách nhau, như là cắt, dán, kéo và xóa.
* Biểu diễn dữ liệu (đầu ra dữ liệu)
Trong các ứng dụng web, thông tin có thể được truyền thông đến người dùng qua
trạng thái khác nhau của các điều khiển UI (như là các menu, các button, check box,
…) cái mà có thể được tạo ra trong trang HTML (frames, table, dialog box,..). Phân
tích ứng dụng để sưu tầm việc thiết kế kiến trúc thông tin. Một trong hầu hết những
cách mà có hiệu quả là làm việc cái này là gặp gỡ nhà phát triển của bạn.
Hình 1.1: Sơ đồ biểu diễn dữ liệu.
Dưới đây là liệt kê các danh sách check về GUI
GUI CHECK LIST
AESTHETIC CHECK (Kiểm tra về giao diện)
1 . Kiểm tra màu nền chung của toàn bộ màn hình có được set đúng theo yêu cầu
không?
GVHD: Lê Thị Thu Hương
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường
4
2 . Kiểm tra màu chữ, font, font size của tất cả các textbox có set đúng theo yêu cầu
không?
3 . Kiểm tra background (màu nền) của tất cả các textbox có set đúng theo yêu cầu
không?
4 . Kiểm tra màu chữ, font, font size của tất cả các label có set đúng theo yêu cầu
không?
5 . Kiểm tra background (màu nền) của tất cả các label có set đúng theo yêu cầu
không?
6 . Kiểm tra màu chữ và màu nền của các textbox trong chế độ read-only có được
set đúng theo yêu cầu hay không?
7 . Kiểm tra tất cả các control trên màn hình có được canh đều hay không? (Label,
textbox, checkbox, list , …)
8 . Kiểm tra mặc định tất cả các ký tự chữ và ký tự số đều canh trái. Ngọai trừ
trường hợp có yêu cầu cụ thể
9 . Kiểm tra mặc định tất cả các số đều canh phải. Ngọai trừ trường hợp có yêu cầu
cụ thể.
10 . Kiểm tra tất cả các msg thông báo trên màn hình có được viết đúng chính tả hay
không?
11 . Kiểm tra tất cả các giá trị input chữ hoa hay chữ thường có được hiển thị đúng
hay không?
12 . Kiểm tra tất cả các textbox có yêu cầu set border hay không?
13 . Kiểm tra độ phân giải của màn hình có được set theo đúng chuẩn yêu cầu hay
không?VD độ phân giải tối thiểu là 800x600
VALIDATION CHECK (Kiểm tra tính hợp lệ)
Datatype varchar, nvarchar, ntex
1 . Kiểm tra maxlength
GVHD: Lê Thị Thu Hương
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường
5
2 . Phân biệt chữ hoa / chữ thường
3 . Phân biệt 全角/半角 (toàn giác/bán giác: chỉ áp dụng với Tiếng Nhật, toàn giác
thì chữ mập, tròn hơn 2-3bytes; bán giác: chữ ốm 1byte)
4 . Phân biệt ký tự unicode
5 . Cho phép null hay không
6 . Cho phép nhập ký tự đặc biệt hay không?
Datatype (int, tinyint, float)
1 . Kiểm tra maxlength.
2 . Kiểm tra giá trị max, min
3 . Có cho phép nhập ký tự chữ hay không?
4 . Cho phép nhập ký tự đặc biệt hay không?
5 . Có cho phép nhập ký tự số 2 byte hay không?
6 . Cho phép null hay không?
7 . Không được phép nhập blank ở vị trí đầu tiên của field số.
9 . Không được phép nhập blank ở vị trí cuối cùng của field số.
11 . Kiểm tra lỗi chia cho 0
12 . Kiểm tra giá trị 0 cho tất cả các tính tóan
13 . Kiểm tra giá trị trong giới hạn max,min
14 . Kiểm tra giá trị = giá trị max, min
15 . Kiểm tra giá trị vượt giới hạn giá trị max, min
Datatype (datetime)
1 . Kiểm tra maxlength
GVHD: Lê Thị Thu Hương
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường
6
2 . Kiểm tra ngày hợp lệ
3 . Có cho phép nhập chữ hay không?
4 . Có cho phép nhập ký tự đặc biệt hay không?
5 . Có cho phép nhập ký tự số 2 byte hay không?
6 . Kiểm tra format theo kiểu nào?
7 . Kiểm tra đối với trường hợp năm nhuần có được tính đúng không?
8 . Kiểm tra giá trị 00 và 13 đối với tháng
9 . Kiểm tra giá trị 00 và 32 đối với ngày
10 . Kiểm tra giá trị 28 , 29, 30 -Feb có được tính đúng không?
Datatype(bit)
1 . Chỉ được phép nhập 0 hoặc 1
2 . Có cho phép null hay không?
3 . Kiểm tra nhập ký tự số 2 byte 0 hoặc 1
NAVIGATION CHECK (Kiểm tra phương pháp di chuyển/duyệt web)
1 . Tất cả các trang web/cửa sổ đều có thể truy cập từ menu.
2 . Tất cả các cửa sổ đều có thể truy cập từ toolbar
3 . Kiểm tra tất cả các màn hình được gọi từ button có được hiển thị đúng hay
không?
4 . Khi chuyển page trên menu có hiển thị msg xác nhận chuyển trang hay không?
5 . Khi chuyển page trên menu có hiển thị msg xác nhận chuyển trang hay không?
USABILITY CHECK: (Kiểm tra tính thân thiện của chương trình)
1 . Tất cả các danh sách có được sort hay không? Mặc định là sort theo alphabel.
Ngoại trừ trường hợp có yêu cầu sort cụ thể
GVHD: Lê Thị Thu Hương
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường
7
2 . Tất cả các giá trị ngày tháng có được format theo đúng yêu cầu hay không?
3 . Tất cả các button trên màn hình có được gán với phím tắt tương ứng hay không?
4 . Tất cả các phím tắt được gán có họat động đúng hay không?
5 . Thứ tự Tab có theo đúng trình tự Top left bottom right hay không? Ngọai trừ
trường hợp có yêu cầu set thứ tự riêng biệt.
6 . Kiểm tra tất cả các field read-only đều không có thứ tự tab
7 . Kiểm tra tất cả các field disable đều không có thứ tự tab
8 . Kiểm tra vị trí focus có được đặt ngay field đầu tiên hay control đầu tiên khi load
màn hình hay không? . Ngọai trừ có trường hợp yêu cầu set vị trí focus cụ thể
9 . Trong trường hợp lỗi input, Khi hiển thị msg lỗi , có focus về vị trí lỗi sau khi
đóng cửa sổ thông báo hay không?
10 . Trong trường hợp lỗi thao tác, khi hiển thị msg lỗi, có focus về vị trí trước đó
sau khi đóng cửa sổ popup hay không?
11 . Trong trường hợp gọi cửa sổ popup , sau khi đóng của sổ có focus về vị trí
trước đó hay không
12 . Trong trường hợp chưa đóng cửa sổ popup, thì không được phép focus xuống
trang đang xử lý data
DATA INTEGRITY CONDITIONS (Kiểm tra tính ràng buộc dữ liệu)
1 . Data có được lưu khi đóng cửa sổ hay không?
2 . Kiểm tra chiều dài tối đa của tất cả các field, và đảm bảo các ký tự đều không bị
cắt.
3 . Kiểm tra giá trị max/min đối với ký tự số
1.2.2. Kiểm thử thực thi giao diện người dùng
Kiểm thử thực thi giao diện người dùng xem xét ứng dụng về hoạt động của nó.
Đánh giá xem các chức năng giao diện người dùng có hoạt động đúng đắn. Nếu một
điều khiển giao diện không hoạt động như được thiết kế, nó có thể sẽ thất bại trong
GVHD: Lê Thị Thu Hương
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường
8
việc cho phép truy cập đến các chức năng ở bên trong, trong khi tồn tại độc lập các
chức năng đó có thể hoạt động đúng đắn. Kiểm thử chức năng thường được thực hiện
đồng thời với kiểm thử thiết kế giao diện người dùng, tuy nhiên nên xem xét hai loại
kiểm thử này.
Ranh giới giữa tính nhất quán của thiết kế và chức năng của thiết kế không phải
luôn luôn rõ ràng. Ví dụ, một liên kết siêu văn bản có một màu sắc nào đó được duy trì
nhất quán từ màn hình này sang màn hình khác, trong khi nền mà trên đó liên kết văn
bản được hiển thị thay đổi. Bởi vì nền thay đổi, liên kết văn bản trở nên rất khó đọc
trên một số màn hình. Mặc dù liên kết văn bản là nhất quán trong ví dụ này, màu của
liên kết văn bản nên được điều chỉnh để cải thiện khả năng dễ đọc.
Các phần tử giao diện người dùng
Bảng dưới đây liệt kê một số phần tử giao diện người dùng cần được kiểm thử.
Loại phần tử
Các vấn đề cần xem xét
- Sự nhất quán của hình thức thể hiện
- Tính dễ đọc của chữ
Kiểu chữ (fonts)
- Khó đọc kiểu chữ nghiêng và có chân
- Hiển thị lộn xộn do nhiều kiểu chữ
- Khả năng thích hợp của màu nền sau.
Màu sắc (color)
- Khả năng thích hợp của màu nền trước
(foreground)
- Khả năng thích hợp của màu kiểu chữ.
- Sử dụng màu lộn xộn.
- Hiệu ứng ba chiều trên các nút lệnh có
thể là những gợi ý trực quan hiệu quả đối
với người dùng.
Đường viền (border)
Hình ảnh (imager)
GVHD: Lê Thị Thu Hương
- Sử dụng hiệu ứng ba chiều trên các
phần tử không tương tác có thể dẫn đến
sự khó hiểu.
- Các hình ảnh lớn có thể làm tăng thời
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường
9
gian tải.
- Phù hợp với nền.
- Tính dễ đọc các nhãn.
- Tính dễ đọc các nút.
- Kích thước hình ảnh phù hợp.
- Một số trình duyệt cũ không thể hiển
thị các khung.
Khung (frames)
- Các cài đặt hiển thị và loại trình duyệt
có thể ảnh hưởng đến sự hiển thị các
khung.
- Sử dụng các nút quay lui thường dẫn
đến những kết quả không mong muốn.
- Các bảng lồng nhau làm chậm thời gian
nạp HTML.
Bảng (tables)
- Kiểm thử nên thực hiện trên tất cả các
trình duyệt, cài đặt màn hình, và kích
thước cửa sổ trình duyệt.
Bảng 1.1. Các phần tử giao diện người dùng.
1.3. Một số chú ý khi kiểm thử giao diện
1. Kiểm thử giao diện nên kiểm thử trên nhiều trình duyệt để đảm bảo sự tin cậy.
2. Kiểm thử giao diện cần và quan trọng nhất là dựa trên bản đặc tả.
3. Quan tâm đến yêu cầu mong muốn của khách hàng.
GVHD: Lê Thị Thu Hương
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường
10
CHƯƠNG II: TÌM HIỂU VỀ CÔNG CỤ SELENIUM
2.1. Tổng quan về selenium
2.1.1. Selenium là gì?
Selenium (thường được viết tắt là SE) là mọt phần mềm mã nguồn mở, được phát
triển bởi Jason Huggins, sau đó được tiếp tục phát triển bởi nhóm Thought work năm
2004.
Selenium là một bộ các công cụ hỗ trợ kiểm thử tự động các tính năng của ứng
dụng web, bao gồm 4 phần: Selenium IDE, Selenium Remote Control (RC),Selenium
core và Selenium Grid.
Selenium hỗ trợ kiểm thử trên các trình duyệt web phổ biến hiện nay như
Firefox, Internet Explorer, Google Chrome, và hỗ trợ trên rất nhiều ngôn ngữ lập trình
phổ biến như C#, Java, Python, PHP. Không những vậy, selenium còn có thể kết hợp
với một số công cu kiểm thử như Junit, Bromiem, Nunit.
2.1.2.Các thành phần của Selenium
Selenium gồm 4 thành phần chính, mỗi phần đóng một vai trò cụ thể trong việc
kiểm thử các ứng dụng Web. Các ứng dụng đó là:
Selenium IDE: là môi trường phát triển tích hợp cho việc xây dựng trường hợp
kiểm thử Selenium. Nó hoạt động như một add-on của Firefox và cung cấp một giao
diện dễ sử dụng để phát triển và chạy trường hợp kiểm thử. Selenium IDE có tính
năng thu lại kịch bản kiểm thử tái sử dụng. nó cũng có một menu ngữ cảnh tích hợp
với trình duyệt Firefox, cho phép người dùng chọn một danh sách xác minh (veryfy)
và khẳng định (assert) cho các yếu tố giao diện đã chọn. selenium cũng cung cấp các
tính năng chỉnh sửa các trường hợp kiểm thử chính xác và dễ kiểm soát hơn.
Mặc dù Selenium IDE chỉ là một Firefox add-on, nhưng các test case đã tạo ra
bằng Selenium IDE vẫn có thể chạy trên các trình duyệt khác bằng cách sử dụng
Selenium RC.
Selenium core (Remote control): Selenium RC cho phép các nhà phát triển tự
động hóa kiểm thử sử dụng ngôn ngữ lập trình cho tính linh hoạt tối đa và mở rộng
trong việc mở rộng logic thử nghiệm. ví dụ, trình ứng dụng trả về một tập kết quả của
việc kiểm thử và nếu chương trình thử nghiệm tự động cần chạy thử trên mỗi phần tử
trong tập kết quả, hỗ trợ lặp đi lặp lại các ngôn ngữ lập trình có thể được sử dụng để
chuyển đổi thông qua việc tập hợp kết quả, kêu gọi lệnh Selenium chạy thử trên mỗi
mục.
GVHD: Lê Thị Thu Hương
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường
11
Selenium RC: cung cấp một API (Application Programming Interfac) và thư
viện cho mỗi ngôn ngữ được hỗ trợ : HTML, Java, C#, Perl, PHP, Python, và Ruby.
Khả năng sử dụng Selenium RC với ngôn ngữ lập trình bậc cao để phát triển các
trường hợp thử ngiệm cũng cho phép thử nghiệm tự động được tích hợp với một dự án
mối trường được tự động.
Selenium Grid: Thực hiện phương pháp kiểm tra phân bố, phối hợp nhiều kết
quả của Selenium RC để có thể thực thi trên nhiều trình duyệt web khác nhau trong
cùng một lúc. Cũng cho phép lưu lại kết quả kiểm tra.
Ðồ án trình bày cụ thể về hai thành phần của bộ công cụ Selenium là Selenium
IDE và Selenium RC. Các huớng dẫn cụ thể về Selenium IDE và Selenium RC sẽ
được trình bày chi tiết ở phần sau của đồ án.
3.2. Selenium IDE
Selenium IDE là một add-on của Mozilla Firefox phiên bản 2.0 trở lên, ban đầu
được phát triển bởi Shinya Kasatani theo hướng sử dụng Selenium Core mà không cần
cài đặt Selenium vào máy chủ ứng dụng. Nó được xây dựng sử dụng JavaScript do vậy
mà nó có thể tương tác với DOM (Document Object Model), sử dụng được những
cách gọi JavaScript.
Selenium cho phép ghi lại những hành động trong luồng công việc cần kiểm tra
bằng các chức năng Record và Playback.
Selenium IDE cũng chứa một menu ngữ cảnh cho phép lựa chọn yếu tố giao diện
người dùng từ các trình duyệt đang hiển thị trang và sau đó chọn từ một danh sách các
lệnh Selenium và các thông số được xác định theo ngữ cảnh của phần giao diện người
dùng lựa chọn.
2.2.1. Cài đặt Selenium IDE
- Bước 1: Vào trang để download Selenium IDE
- Bước 2: Click vào link download cho Selenium IDE. Bạn sẽ nhận được tin nhắn "
Firefox
Prevented this site (seleniumhq.org) from asking you to install software on your
computer" (Firefox đã chặn phần mềm từ trang web (seleniumhq.org), bạn có chắc
chắn muốn cài đặt trên máy tính của bạn không). Nếu thực hiện, click nút Allow.
GVHD: Lê Thị Thu Hương
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường
12
- Bước 3: Một pop up xuất hiện như hình:
- Bước 4: Firefox thực hiện đếm ngược, nút Cài đặt chuyển sang trạng thái active,
có thế click được. Selenium sẽ bắt đầu được cài đặt trong máy tính giống như 1 add-on
của firefox.
- Bước 5: Tiến trình cài đặt hoàn thành, hệ thống hỏi bạn có muốn khởi động lại
firefox không. Click vào nút Restart. Firefox sẽ đóng và mở lại.
- Bước 6: Kiểm tra lại phần add-on của firefox xem đã có Selenium chưa. Hiển thị
như hình thì việc cài Selenium đã thành công.
GVHD: Lê Thị Thu Hương
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường
13
2.2.2. Các icon của Selenium IDE
Phần này giải thích một số ký hiệu và thành phần của Selenium IDE
GVHD: Lê Thị Thu Hương
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường
14
Giải thích một số ký hiệu:
- Base URL: Đây là nơi điền URL của ứng dụng eb được tiến hành kiểm thử.
- Thanh trượt : Đây là thanh trượt nằm dưới nhãn trên màn hình. Dùng để điều
chỉnh tốc độ nhanh/chậm khi chạy test case.
- Nút : Chạy tất cả các test case.
- Nút : Chỉ chạy test case được chọn.
- Nút : Tạm dừng một test case đang chạy
- Nút : Bỏ qua một test case khi nó đã bị tạm dừng
- Nút: Nút thu được sử dụng để thu các test case qua những thao tác bạn tác động
đến trang web cần kiểm thử.
- Textbox Command: Dòng lệnh
- Text box Target: Kết quả mong đợi của dòng lệnh
- Text box Value: Giá trị đầu vào của dòng lệnh
Bảng Selenium sẽ lưu lại các lệnh, kết quả mong đợi và giá trị đầu vào của các
lệnh. Nếu click vào tab Source, ta có thể thấy Selenium IDE lưu trữ các test case có
dạng
Khu vực phía dưới textbox Value sẽ hiển thị các log của Selenium trong khi các
test case chạy. Nếu có một test case bị thất bại Selenium IDE sẽ log một lỗi.
GVHD: Lê Thị Thu Hương
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường
15
- Log: Hiển thị thông báo lỗi và các bước được thực thi trong quá trình chạy một
test case tự động. Ngay cả khi ta không chọn tab log, các thông tin này vẫn hiển thị.
Các thông tin này giúp ích cho nhân viên kiểm thử cũng như nhân viên lập trình trong
quá trình tìm ra nguyên nhân lỗi đã phát hiện trong test case (nếu có).
- Reference: Thẻ tham chiếu
- UI-Element và Rollup: Tính năng nâng cao của Selenium IDE
- Lưu ý:
+ Các test case luôn luôn có điểm bắt đầu. Trong ngữ cảnh của Selenium, điều này
có nghĩa là mở một trang nào đó để bắt đầu luồng công việc.
+ Các test case có thể không cần dựa trên những test case khác để chạy.
+ Một test case chỉ nên dùng để kiểm thử một chức năng nhỏ xác định trong một
thời gian xác định.
3.2.3. Các thao tác thực hiện kiểm thử tự động với Selenium
Recording_Thực hiện thu một kịch bản với Selenium IDE
Các bước để bắt đầu thu lại test case:
- Bước 1: Vào Firefox/công cụ/chọn Selenium IDE hoặc nhấn tổ hợp phím
Ctrl+Alt+s như hình dưới.
GVHD: Lê Thị Thu Hương
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường
16
- Bước 2: Thay đổi mục Based URL thành URL của ứng dụng cần kiểm thử. Lấy ví
dụ ứng dụng web cần kiểm thử có url là: />+ Nút thu mặc định ở trạng thái "now recording, click to stop recording".
- Bước 3: Tiến hành các thao tác cần kiểm thử trên link
Ví dụ: Ta thực hiện kiểm thử tự động trường hợp đăng nhập vào trang web thành
công với username/password hợp lệ.
Trong quá trình thu, Selenium IDE sẽ tự động chèn thêm các lệnh vào test case
dựa trên hành động của người thực hiện. Các command được tự động thêm phổ biến:
- Click a link- click or clickAndWait commands
- Nhập các giá trị- type command
- Chọn các giá trị từ một select box - select command
- Click vào các checkboxe hoặc các radio button - click command
GVHD: Lê Thị Thu Hương
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường
17
- Bước 4: Click vào nút thu. Nút thu ở trạng thái "Click to record".
- Bước 5: Save as test case
- Một số lưu ý: Sau một liên kết thường ghi lại một lệnh nhấp chuột, phải thay đổi
tốc độ chạy của test case để đảm bảo test case tạm dừng cho đến khi trang mới được
tải xong. Nếu không, test case sẽ tiếp tục chạy trước khi các trang đã được nạp tất cả
các yếu tố của nó. Điều này sẽ gây ra test case bị thất bại.
Thêm các lệnh khẳng định và xác nhận với menu ngữ cảnh
Các trường hợp kiểm kiểm thử các thuộc tính của một trang web sẽ đòi hỏi các
lệnh xác minh (verify) và khẳng định (assert) các yếu tố trên giao diện. Phần dưới đây
sẽ trình bày cách thêm các lệnh này vào test case của chúng ta.
Khi thu một test case với Selenium IDE, vào trình duyệt hiển thị website ta muốn
thực hiện kiểm thử, trỏ truột phải vào bất cứ vị trí nào trên trang, ta sẽ thấy các lệnh
xác minh và khẳng định như hình dưới. Để sử dụng các lệnh này ta chỉ việc chọn lệnh
xác minh hoặc khẳng định mong muốn. Các lệnh này sẽ tự động hiển thị trong test
case. Selenium sẽ dự đoán các lệnh, các thông số cần có trên giao diện để bổ xung các
lệnh xác minh. Khi chọn thông báo Show All Avaiable Commands, sẽ có nhiều lệnh
xác minh được gợi ý hơn như hình dưới:
GVHD: Lê Thị Thu Hương
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường
18
Các thao tác chỉnh sửa
- Chèn lệnh:
+ Chèn vào bảng: Trong ô test case, click chuột trái tại vị trí muốn chèn lệnh. Chuột
phải và chọn Insert command. Selenium IDE sẽ thêm một dòng trắng phía trước dòng
được chọn. Nhập lệnh vào ô command, kết quả mong muốn vào ô target, giá trị đầu
vào vào ô value.
+ Chèn vào mã nguồn: Chọn vị trí trong test case mà bạn muốn chèn lệnh. Trong ô
test case, chuột trái vào vị trí muốn chèn lệnh. Vào tag HTML, cần tạo 3 dòng chứa
lệnh bao gồm tham số đầu tiên (nếu lệnh yêu cầu có tham số), tham số thứ hai (nếu
có). Lưu test case trước khi chọn lại table view.
- Chèn comment: Các comment có thể được thêm vào cho test case dễ hiểu hơn.
Những comment được bỏ qua khi chạy test case. Comment có thể được sử dụng để
thêm vào các khoảng trống dọc (một hoặc nhiều dòng trắng) vào các test case của
chúng ta, khi chúng ta tạo ra các comment trắng. Một lệnh trắng sẽ tạo ra 1 lỗi khi thực
thi còn một comment trắng thì không tạo ra lỗi khi thực thi.
+ Chèn vào bảng: Chọn vị trí trong test case muốn comment. Click chuột phải và
chọn Insert Comment. Sử dụng trường Command để nhập comment.
+ Chèn vào mã nguồn: Chọn vị trí trong test case muốn chèn comment. Thêm một
comment có dạng HTML. Ví dụ: <!-- Enter your comment here -->
- Chỉnh sửa comment hay lệnh:
+ Chỉnh sửa qua giao diện: Chọn dòng cần chỉnh sửa và chỉnh sửa nó bằng các
trường Command, Target, và Value.
+ Chỉnh sửa qua mã nguồn: Vào mã nguồn, chỉnh sửa trực tiếp vào dòng comment
hay lệnh muốn chỉnh sửa.
Mở và lưu lại một test case
- Chọn tập tin/ Open hoặc Save. Tuy nhiên Selenium có sự khác biệt giữa các test
case và test suite. Để lưu lại các bước kiểm thử trên Selenium-IDE sau khi sử dụng,
bạn có thể lưu lại một test case riêng lẻ, hay lưu nhiều test case dưới dạng một test
suite. Nếu các test case của test suite không được lưu. Chương trình sẽ nhắc nhở ta lưu
GVHD: Lê Thị Thu Hương
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường
19
chúng trước khi lưu một test suite. Khi mở một test case hoặc một test suite đã có,
Selenium-IDE hiển thị các câu lệnh trong ô test case.
Chạy các test case
Selenium IDE có nhiều lựa chọn để chạy test case. Bạn có thể chạy một test case,
dừng và chạy tiếp, chạy một dòng lệnh riêng lẻ, hay chạy một test suite.
- Chạy một test case: Chọn một test case sau đó click vào nút Run để chạy một test
case.
- Stop and Start: Nút Pause được dùng để tạm dừng một test case khi nó đang chạy.
Để tiếp tục chạy test case bị tạm dừng, click nút Resume.
- Tạm dừng ở giữa: Bạn có thể chọn một điểm ở giữa test case để tạm dừng nó tại
một câu lệnh đặc biệt. Điều này có ích trong việc gỡ lỗi trong test case. Để chọn một
điểm dừng cho test case, chọn câu lệnh, chuột phải, chọn Set/Clear Start Point.
- Bắt đầu từ giữa: Chúng ta cũng có thể bắt đầu chạy một test case từ một điểm xác
định ở giữa test case, thao tác này cũng được sử dụng trong gỡ lỗi. Để gán điểm bắt
đầu, ta chọn câu lệnh làm điểm bắt đầu, chuột phải, chọn Set/Clear Start Point.
- Chạy một câu lệnh đơn lẻ bất kỳ: Double-Click câu lệnh muốn chạy. Việc này có
ích khi viết một câu lệnh đơn lẻ.
2.2.4. Selenese
Tập lệnh Selenium gọi là Selenese là một tập các lệnh để chạy kịch bản kiểm thử.
Một chuỗi các lệnh được gọi là một kịch bản kiểm thử. Phần dưới của đồ án sẽ trình
bày chi tiết các lệnh thường được sử dụng trong Selenium.
Selenium cung cấp một tập đầy đủ các lệnh để kiểm thử các ứng dụng web.
Trong selenese có thể kiểm thử tình trạng của các yếu tố giao diện người dùng dựa
trên các thẻ HTML, kiểm thử nội dung xác định, kiểm thử các link hỏng, lỗi, các
trường đầu vào, lựa chọn danh sách.
Một lệnh mô tả thao tác phải làm. Lệnh Selenium bao gồm ba yếu tố: Actions,
accessors, assertion.
- Action: là các thao tác chung trên ứng dụng, ví dụ: “Click this link”, “Select that
option”. Nếu như thao tác thất bại sẽ có 1 lỗi, việc thực thi kiểm thử sẽ bị tạm dừng.
GVHD: Lê Thị Thu Hương
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường
20
Một vài hành động sử dụng hậu tố “AndWait”, ví dụ: “ClickAndWait”. Selenium sử
dụng hậu tố này trong trường hợp chờ một trang eb được tải.
- Accessor: Kiểm tra trạng thái của ứng dụng và lưu trữ kết quả vào các biến. Ví dụ:
“storeTitle”. Chúng có thể được sử dụng để sinh tự động các Assertion.
- Assertion: Giống như những Accessor, nhưng nó xác định trạng thái của ứng dụng
thích nghi với kết quả mong đợi.
Assertion của Selenium có thể được chia thành 3 dạng: “assert”, ”verify”, ”
aitFor”. Ví dụ: “assertText”, “verifyText”, “ aitForText”. Khi “assert” thất bại, việc
kiểm thử sẽ dừng lại. Khi “verify” thất bại, việc kiểm thử vẫn tiếp tục nhưng sẽ hiển
thị một lỗi. Lệnh “ aitFor” chờ một vài điều kiện được thực thi (có ích khi kiểm thử
các ứng dụng Ajax), nó sẽ thành công nếu điều kiện đúng nhưng sẽ thất bại và tạm
dừng việc kiểm thử nếu các điều kiện không đúng.
Cú pháp Script
Các lệnh Selenium rất đơn giản, nó bao gồm lệnh và 2 tham số.
Các tham số không nhất thiết phải có trong mọi trường hợp, nó phụ thuộc vào
câu lệnh, trong một số trường hợp câu lệnh yêu cầu cả hai tham số, một số chỉ yêu cầu
một tham số, và cũng có những câu lệnh không cần có tham số.
Ví dụ:
Bảng 2.1: Cú pháp câu lệnh Selenese
Phân loại tham số:
- Locator: Tham số xác minh các yếu tố trên giao diện người dùng.
- Text pattern: Tham số xác minh nội dung mong đợi của ứng dụng web.
GVHD: Lê Thị Thu Hương
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường
21
- Selenium variable: Nhập văn bản trong một trường đầu vào để lựa chọn từ danh
sách lựa chọn.
Một số lệnh thường sử dụng trong Selenium
- Open: Mở một ứng dụng web sử dụng URL.
- Click/clickAndWait: Thực thi click và đợi tải 1 trang web mới.
- VerifyTitle/assertTitle: xác nhận một tiêu đề trang được mong đợi.
- VerifyTextPresent: Xác nhận văn bản được mong đợi tại một vị trí nào đó trên
trang.
- VerifyElementPresent: Xác nhận một yếu tố được mong đợi trên giao diện người
sử dụng, được định nghĩa bởi thẻ HTML.
- VerifyText: Xác nhận văn bản được mong đợi và và các thẻ HTML tương ứng.
- VerifyTable: Xác nhận các nội dung được mong đợi của 1 bảng.
- waitForPageToLoad: Tạm dừng thực thi lệnh cho đến khi trang eb mong đợi được
tải thành công, được gọi tự động khi sử dụng lệnh clickAndWait.
- waitForElementPresent: Tạm dừng thực thi lệnh cho tới khi một yếu tố giao diện
người dùng xuất hiện trên trang eb (được đinh nghĩa bởi các thẻ HTML).
2.3. Selenium Remote Control (Selenium RC)
Selenium RC ban đầu được phát triển bởi Patrick Lightbody theo hướng kiểm tra
các ứng dụng web trên các trình duyệt khác nhau mà không cần cài đặt Selenium Core
trên Server. Nó được phát triển để tương tác như một giao tiếp giữa ứng dụng cần
kiểm tra và kịch bản bản kiểm thử. Selenium Core được tích hợp với Selenium RC
thay cho việc cài đặt trên máy chủ.
GVHD: Lê Thị Thu Hương
SVTH: Nguyễn Văn Hưng – Nguyễn Văn Kiên – Trương Đăng Trường