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úpnhà 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
Trang 1KHOA 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
Trang 2Ngày nay trên thế giới, công nghệ thông tin đã có những bước phát triển vượtbậc Ở nước ta hiện nay, ngành công nghệ thông tin trở thành ngành mũi nhọn, đẩymạ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ấtlượ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ấyviệ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úpnhà 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ầuthự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
Trang 3LỜ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
Trang 4KẾT LUẬN 42 TÀI LIỆU THAM KHẢO 43
Trang 5CHƯƠNG I: LÝ THUYẾT KIỂM THỬ GIAO DIỆN1.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ếpvớ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 giaodiệ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” đếnngườ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ườidù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 Trongkiể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ợpcủ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ưởngtrự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ếpgiữ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 khibắ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ôngphả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 đạidiệ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ườidù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
Trang 6Thô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ếntrú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ácchứ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ácchứ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áchnê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ùngcuố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?
Trang 7- 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êncá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 quatrạ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ântí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ữngcá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ầukhông?
Trang 82 Kiểm tra màu chữ, font, font size của tất cả các textbox có set đúng theo yêu cầukhô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ầukhô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ầukhô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ầukhông?
6 Kiểm tra màu chữ và màu nền của các textbox trong chế độ read-only có đượcset đú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
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 haykhô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
Trang 92 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ácthì 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
Trang 102 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 haykhô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ể
Trang 112 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 loadmà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ốngtrang đ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
Trang 12việ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ácchứ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ạikiể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ảiluô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ănbả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ó đọctrê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ủaliê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ử
Kiểu chữ (fonts)
- Sự nhất quán của hình thức thể hiện
- Tính dễ đọc của chữ
- Khó đọc kiểu chữ nghiêng và có chân
- Hiển thị lộn xộn do nhiều kiểu chữ
Màu sắc (color)
- Khả năng thích hợp của màu nền sau
- 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
Đường viền (border)
- 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ả đốivới người dùng
- Sử dụng hiệu ứng ba chiều trên cácphần tử không tương tác có thể dẫn đến
sự khó hiểu
Hình ảnh (imager) - Các hình ảnh lớn có thể làm tăng thời
Trang 13- Sử dụng các nút quay lui thường dẫnđến những kết quả không mong muốn.
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
Trang 14CHƯƠ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áttriển bởi Jason Huggins, sau đó được tiếp tục phát triển bởi nhóm Thought work năm2004
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 ứngdụng web, bao gồm 4 phần: Selenium IDE, Selenium Remote Control (RC),Seleniumcore 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ìnhphổ biến như C#, Java, Python, PHP Không những vậy, selenium còn có thể kết hợpvớ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ệckiể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ợpvớ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áctí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 rabằ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ụngSelenium 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ộngtrong 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ủaviệ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ỗimục
Trang 15Selenium 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áctrườ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ự ánmố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 trongcù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à SeleniumIDE 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ầncà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ữngcá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 trabằ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ệnngườ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áclệnh Selenium và các thông số được xác định theo ngữ cảnh của phần giao diện ngườidùng lựa chọn
2.2.1 Cài đặt Selenium IDE
- Bước 1: Vào trang http://seleniumhq.org/download để 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 yourcomputer" (Firefox đã chặn phần mềm từ trang web (seleniumhq.org), bạn có chắcchắ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
Trang 16- 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-oncủ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ạifirefox 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
Trang 172.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
Trang 18Giả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ềuchỉ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áclệ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áctest case chạy Nếu có một test case bị thất bại Selenium IDE sẽ log một lỗi
Trang 19- 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ộttest 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 trongquá 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ộtthờ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
Trang 20- 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à: https://mail.viettel.com.vn/
+ 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ànhcô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 casedự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
Trang 21- 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 đượctả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áclệ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ốnthự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ệnhxá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ệnhxác minh hoặc khẳng định mong muốn Các lệnh này sẽ tự động hiển thị trong testcase 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áclệnh xác minh Khi chọn thông báo Show All Avaiable Commands, sẽ có nhiều lệnhxác minh được gợi ý hơn như hình dưới:
Trang 22Cá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ộtphả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ị đầuvà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ứalệ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ếucó) 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ủachú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ựcthi 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ộtcomment 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áctrườ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 commenthay 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 testcase 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 testsuite 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
Trang 23chú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 testcase
- 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ạimộ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ìnhbà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ựatrê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áctrườ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 thatoption” 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