Vì vậy một ứng dụng Web thường có rất nhiều có một cộng đồng khách hàng sử dụng với các nền tảng khác nhau như hệ điều hành, trình duyệt, các thiết bị… Từ đó việc kiểm thử một ứng dụng W
Trang 1LỜI CẢM ƠN
Sau một thời gian tìm hiểu đề tài “Kiểm thử ứng dụng Web với công cụ Selenium”, em đã hoàn thành tiến độ dự kiến Để đạt được kết quả này, em đã nỗ
lực thực hiện và đồng thời cũng nhận được rất nhiều sự giúp đỡ, quan tâm, ủng
hộ của các thầy cô bạn bè và gia đình
Em xin chân thành cảm ơn giáo viên hướng dẫn: Th.S Nguyễn Thị Dung
– Bộ môn Công nghệ phần mềm – Trường Đại học Công nghệ thông tin và truyền thông – Đại học Thái Nguyên đã tận tình hướng dẫn sát sao em trong quá trình làm đồ án tốt nghiệp Trong thời gian làm việc với cô, em không ngừng tiếp thu thêm nhiều kiến thức bổ ích mà còn học tập được tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc, hiệu quả, đây là những điều rất cần thiết cho
em trong quá trình học tập và công việc sau này
Em xin chân thành cảm ơn các thầy cô và ban lãnh đạo trường Đại học Công nghệ thông tin và truyền thông – Đại học Thái Nguyên đã nhiệt tình giảng dạy và truyền đạt kiến thức quý báu và bổ ích trong suốt quá trình em học tập tại trường
Và cuối cùng xin gửi lời cảm ơn chân thành tới gia đình, bạn bè đã động viên, đóng góp ý kiến và giúp đỡ trong quá trình học tâp, thời gian nghiên cứu và hoàn thành đồ án tốt nghiệp
Thái Nguyên, tháng 06 năm 2016
Sinh viên thực hiện
Hoàng Thị Hiền
Trang 2LỜI CAM ĐOAN
Em xin cam đoan những kết quả trong đề tài “Kiểm thử ứng dụng Web với công cụ Selenium” là sản phẩm nghiên cứu của riêng cá nhân em, không sao
chép lại của người khác Trong toàn bộ nội dung đồ án những điều được trình bày là của cá nhân em hoặc là được tổng hợp từ nhiều nguồn tham khảo mà em
đã chắt lọc được để lấy ra những thông tin cần thiết và bổ ích phục vụ cho đồ án Tất cả tài liệu tham khảo đều có xuất xứ rõ ràng và được trích dẫn hợp pháp Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em xin chịu hoàn
toàn trách nhiệm
Tác giả đề tài
Hoàng Thị Hiền
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
MỤC LỤC 3
DANH MỤC CÁC HÌNH VẼ 5
LỜI MỞ ĐẦU 7
CHƯƠNG 1 CƠ SỞ LÍ THUYẾT 9
1.1 Kiểm thử phần mềm 9
1.1.1 Khái niệm 9
1.1.2 Các phương pháp kiểm thử (Testing Methods) 9
1.1.3 Các mức độ kiểm thử (Testing level) 10
1.2 Kiểm thử ứng dụng Web 11
1.2.1 Khái quát 11
1.2.2 Tại sao phải kiểm thử ứng dụng Web? 12
1.2.3 Đặc trưng khi kiểm thử ứng dụng Web 13
1.2.4 Công việc khi kiểm thử Theme WordPress 13
1.3 Giới thiệu về Selenium 19
1.3.1 Tổng quan 19
1.3.2 Lịch sử phát triển 20
1.3.3 Selenium IDE 22
1.3.4 Selenium RC/ Web driver 30
1.3.5 Cài đặt Selenium Remote Control 31
1.3.6 Báo cáo kết quả kiểm thử 32
CHƯƠNG 2 PHÂN TÍCH, THIẾT KẾ BÀI TOÁN 35
2.1 Bài toán thử nghiệm 35
2.1.1 Giới thiệu bài toán 35
2.1.2 Lựa chọn công cụ 35
2.1.3 Phương pháp test 39
2.1.4 Sự khác nhau giữa kịch bản kiểm thử tự động và kịch bản kiểm thử thủ công 39
Trang 42.2 Xây dựng các TestCase 40
2.2.1 Kịch bản kiểm thử thủ công 40
2.2.2 Kịch bản kiểm thử khi kiểm thử tự động 48
CHƯƠNG 3 CÀI ĐẶT DEMO 49
3.1 Thực thi các testcase với Selenium IDE 49
3.1.1 Chức năng đăng nhập 49
3.1.2 Chức năng Contact 53
3.1.3 Chức năng Subcribe 59
3.1.4 Chức năng Comment 59
3.2 Thực thi testcase với Selenium WebDiver 60
3.3 Công cụ quản lí bug và báo cáo kết quả kiểm thử 61
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 64
TÀI LIỆU THAM KHẢO 66
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 67
Trang 5DANH MỤC CÁC HÌNH VẼ
Hình 1.1Những kiểm thử cần có cho một ứng dụng web 12
Hình 1.2 Test Plan của dự án 14
Hình 1.3 Kiểm thử Front- End và Back-End 15
Hình 1.4 Kiểm thử Front -End 15
Hình 1.5 Check speed 16
Hình 1.6 Kiểm thử các tùy chọn trong Theme Option 18
Hình 1.7 Kiểm thử các tùy chọn trong Page Option 18
Hình 1.8 Cấu trúc của Selenium 19
Hình 1.9 Kiến trúc của Selenium IDE 22
Hình 1.10 Trang download tiện ích Selenium IDE 23
Hình 1.11 Quá trình cài đặt Selenium IDE 23
Hình 1.12 Thao tác mở IDE trên menu Tool 24
Hình 1.13 Giao diện của Selenium IDE 24
Hình 1.14 Các thành phần và kí hiệu của Selenium IDE 25
Hình 1.15 Lưu trữ các testcase dạng HTML của Selenium 26
Hình 1.16 Sơ đồ Selenium RC/ WebDriver 30
Hình 2.1 Form Sign Up của Theme Pizzeria 40
Hình 2.2 Form Contact của Theme Pizzeria 42
Hình 2.3 Form Delivery của Theme Pizzeria 43
Hình 2.4 Form Comment của Theme Pizzeria 44
Hình 2.5 Form Review của Theme Pizzeria 46
Hình 2.6 Form Subcribe của Theme Pizzeria 47
Hình 3.1 Trường hợp Sign in với trường Username và password để trống 49
Hình 3.2 Sign in với trường password để trống 50
Hình 3.3 Sign in với trường Username để trống 50
Hình 3.4 Sign in thành công 51
Hình 3.5 Sign in không thành công với username và password sai 51
Hình 3.6 Testsuite cho chức năng đăng nhập 52
Trang 6Hình 3.8 Testcase Selenium WebDriver được dịch sang TestNG từ Selenium
WebDriver 53
Hình 3.9 Contact với Subject and Message trống 53
Hình 310 Contact không thành công với tất cả các trường để trống 54
Hình 3.11 Contact không thành công khi để trống Name 54
Hình 3.112 Contact không thành công khi để trống Email 55
Hình 3.13 Contact thành công 55
Hình 3.14 Contact không thành công khi Email không hợp lệ 56
Hình 3.15 Contact không thành công khi để trống Subject 56
Hình 3.16 Contact không thành công khi để trống Message 57
Hình 3.17 Contact không thành công khi nhập Name và để trống các trường 57
Hình 3.18 Thao tác dịch Selenium IDE sang code Webdriver 58
Hình 3.19 Testcase Selenium WebDriver được dịch sang TestNG từ Selenium WebDriver 58
Hình 3 20 Testsuite cho chức năng Subscribe 59
Hình 3 21 Testcase cho chức năng Comment 59
Hình 3.22 Các lỗi của Theme Pizzeria 61
Hình 3.23 Quá trình thực thi testcase 62
Hình 3.24 Báo cáo thực thi test cho chức năng Contact 62
Trang 7LỜI MỞ ĐẦU
Bạn dùng một đồ vật hay thiết bị nào đó, bạn có đảm bảo rằng nó đã đủ chất lượng hay thực sự là một sản phẩm tốt hay chưa? Khi bạn đang xem xét nâng cấp cho một phần mềm hay thiết bị nào đó, bạn có chắc chắn các nhà phát triển đã kiểm tra lại các lỗi hay không hay bạn vẫn phải nghe ngóng những người dùng trước sau khi nâng cấp có lỗi nào xảy ra không? Đó là một thực tế chứng minh cho việc kiểm thử thực sự quan trọng trong cuộc sống hiện nay
Với việc phát triển của máy tính và mạng Internet, việc phát triển các ứng dụng trên mã nguồn mở rất được xem trọng trong lĩnh vực thương mại điện tử
Là một mã nguồn mở nổi bật góp phần không nhỏ trong sự phát triển thương mại điện tử cũng như mã nguồn mở được sử dụng rộng rãi hơn Vậy việc kiểm thử trên nền tảng WordPress sẽ được thực hiện ra sao, có sự khác biệt nào giữa kiểm thử các sản phẩm trên nền tảng web và các sản phầm phần mềm trên các nền tảng khác? Việc đưa ra một ứng dụng Web hoàn hảo cho những người đang và sẽ sử dụng ứng dụng đã trở thành một thử thách trong đảm bảo chất lượng Kiểm thử các ứng dụng Web đã vượt qua giới hạn của việc kiểm thử những hệ thống phần mềm truyền thống Vì vậy một ứng dụng Web thường có rất nhiều có một cộng đồng khách hàng sử dụng với các nền tảng khác nhau như hệ điều hành, trình duyệt, các thiết bị… Từ đó việc kiểm thử một ứng dụng Web cũng cần có những phương pháp đặc biệt khác với phần mềm truyền thống
Ngày nay, tự động hóa đang được nghiên cứu và ứng dụng rộng rãi trên nhiều lĩnh vực trong đó công nghệ phần mềm nói chung và kiểm thử phần mềm nói riêng cũng không phải là ngoại lệ Cùng với việc kiểm thử thủ công thì việc kết hợp với các công cụ kiểm thử tự động sẽ mang lại những hiệu quả đáng kinh ngạc và hoàn hảo hơn Sự ra đời của các công cụ kiểm thử tự động như Quick Test Professinal NUnit, JUnit, Load Runner(thường dùng trong kiểm thử hiệu năng) là tất yếu Selenium là một công cụ kiểm thử ứng dụng Web với khá nhiều
ưu điểm nổi bật Đây là một công cụ mã nguồn mở, mạnh mẽ hỗ trợ trên nền tảng Web, nhiều platform và các trình duyệt phổ biến Công cụ này được phát triển
Trang 8chủ yếu trong Java Script và công nghệ trình duyệt như DHTML và các khung hình với việc hỗ trọ các trình duyệt trên tất cả các nền tảng Selenium đã trở thành một trong những công cụ kiểm thử phần mềm tự động tốt nhất trên thị trường cho các ứng dụng Web
Với việc thực hiện đề tài:” Kiểm thử ứng dụng Web với Selenium” sẽ
giúp em làm sang tỏ những lý do đã được đưa ra đặc biệt việc kiểm thử được thực hiện trong môi trường thực tế với các dự án thực tế trên thị trường, thấy được rõ các vấn đề tồn tại giữa lí thuyết và thực tế quan sát
Đồ án được tổ chức thành 3 chương với nội dung mỗi chương :
- Chương 1: Tìm hiểm chung về kiểm thử phần mềm, kiểm thử ứng dụng web, quy trình kiểm thử phần mềm và các phương pháp để tiến hành kiểm thử
- Chương 2: Đưa ra bài toán, phân tích, lựa chọn công cụ và phương pháp thực hiện test
- Chương 3: Cài đặt demo chương trình và trình bày báo cáo lỗi
Thái Nguyên, tháng 6 năm 2016
Sinh viên
Hoàng Thị Hiền
Trang 9CHƯƠNG 1 CƠ SỞ LÍ THUYẾT
- 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
Mục tiêu gián tiếp:
Để biên dịch một tài liệu về các lỗi phần mềm thường gặp nhằm mục đích ngăn ngừa và sửa chữa lỗi
Kiểm thử tự động: là quá trình kiểm tra hệ thống với dữ liệu đầu vào và
đầu ra đã xác định trước một các tự động
1.1.2 Các phương pháp kiểm thử (Testing Methods)
Kĩ thuật kiểm thử hộp đen (Black Box)
Với kĩ thuật này giúp chúng ta hiểu rõ một chức năng cụ thể của một hàm hay một module thông qua bản đặc tả mà không cần biết bên trong chương trình được viết như thế nào Kiểm thử này còn được gọi là kiểm thử ở mức giao diện.Ta chỉ cần nhập dữ liệu vào và sẽ nhận được kết quả mong muốn chứ không cần biết làm cách nào và tại sao nó lại làm được như vậy Với kỹ thuật kiểm thử này chúng ta chỉ phát hiện được các lỗi chức năng, sai sót về giao diện của module, tính hiệu quả, phát hiện lỗi khởi tạo, lỗi kết thúc
Đối với phương pháp kiểm thử hộp đen, để thiết kế các testcase dựa vào phương pháp phân hoạch miền giá trị, phân tích giá trị biên, kiểm thử mọi
Trang 10cặp, kiểm thử fuzz, kiểm thử dựa trên mô hình, ma trận dấu vết, kiểm thử thăm dò, kiểm thử dựa trên đặc tả
Kỹ thuật kiểm thử hộp đen chỉ dựa vào đặc tả chương trình, xây dựng
dữ liệu thử trước khi mã hóa/lập trình, thường phát hiện các lỗi đặc tả yêu cầu, thiết kế; Dễ dàng thực hiện, chi phí thấp
Kiểm thử hộp trắng
Ngược lại với kỹ thuật kiểm thử hộp đen là kỹ thuật kiểm thử hộp White-Box (clear-box) thì kỹ sư kiểm thử phải kiểm tra mã nguồn của chương trình để có thể kiểm thử hay tìm ra những đầu mối để giúp cho công việc kiểm thử Từ đó giúp chúng ta hiểu rõ cách hoạt động của một hàm/module hay sản phẩm Điều mà chúng ta cần làm là thiết kế tất cả các đường logic của chương trình và sau đó là cài đặt tất cả các trường hợp kiểm định có được Tuy nhiên, trong kỹ thuật này có một số rủi ro nhất định bởi tester sẽ can thiệp sâu vào mã nguồn nên thường đưa ra các ý kiến chủ quan đồng thời việc kiểm thử thấu đáo tất cả các trường hợp là không thể và tốn rất nhiều chi phí
trắng-Theo phương pháp này ta chia testcase dựa vào cấu trúc đơn vị cần kiểm tra
- Kiểm tra giao tiếp của đơn vị là để đảm bảo dòng thông tin vào ra của đơn
vị luôn đúng (đúng giá trị, khớp kiểm…)
- Kiểm tra dữ liệu cục bộ để đảm bảo dữ liệu được lưu trữ trong đơn vị toàn vẹn trong suốt quá trình giải thuật được thực hiện
- Kiểm tra các điều kiện biên của các câu lệnh if, vòng lặp để đảm bảo đơn
vị luôn chạy đúng tại các biên này
- Kiểm tra để đảm bảo mọi con đường thực hiện phải đi qua ít nhất một lần Con đường thực hiện của một đơn vị chương trình là một dãy có thứ tự các câu lệnh bên trong đơn vị đó sẽ được kích hoạt khi thực hiện
1.1.3 Các mức độ kiểm thử (Testing level)
Kiểm thử đơn vị (Unit test):
- KN: Là test với đơn vị phần mềm nhỏ nhất như hàm, module còn được gọi là component test, unit test Developer thực hiện test code của chính mình xem code có được thực hiện như bản thiết kế vật lý hay không?
Trang 11- Mục đích: Phải phát hiện các vấn đề liên quan đến việc thực hiện, kiểm tra xem các chức năng của phần mềm đã được phân chia để có thể test (module, program, object, class…) có đúng hay không?
Kiểm thử tích hợp (Combine test): Sau khi kết thúc unit test và chất lượng ở mức độ đơn vị đã được đảm bảo, sẽ bắt đầu tích hợp các module đơn vị
để tiến hành test
- Mục đích: Phát hiện các lỗi về mặt logic và xử lý của các khối, kiểm thử việc truyền tin giữa chúng Kiểm tra xem software sau khi tích hợp có thực hiện đúng chức năng hay không?
Kiểm thử hệ thống (System test): là kiểm thử hệ thống một cách toàn diện để đánh giá các chức năng có được đáp ứng, các thao tác giao diện có giống thiết kế hay không
- Mục đích: Kiểm thử xem hoạt động của tổng thể hệ thống, phần mềm đã được định nghĩa thành phạm vi của project phát triển có hoạt động đúng không
Kiểm thử chấp nhận (Aceptance test) là kiểm thử được tiến hành từ phía khách hàng để tiến hành phê duyệt cuối cùng
- Mục đích: xác nhận xem phần mềm còn có những sai sót, thiếu sót so với yêu cầu của khách hàng hay không
1.2 Kiểm thử ứng dụng Web
1.2.1 Khái quát
Các ứng dụng Web đã được phát triển và trở thành một nền tảng kết nối thông tin thiết yếu trong nhiều doanh nghiệp Các ứng dụng Web đóng vai trò quyết định của thương mại điện tử và trao đổi thông tin
Một ứng dụng Web hiệu quả cần đảm bảo chất lượng tốt và hiệu suất cao Việc chuyển giao các ứng dụng đến tay khách hàng đang và sẽ sử dụng nó một sản phẩm chất lượng chính là thử thách đối với các nhà phát triển nhất là đội ngũ đảm bảo chất lượng
Thông thường khi kiểm thử các phương pháp đều tập trung vào đánh giá các chức năng của ứng dụng Tuy nhiên việc tập trung được tất cả các yêu cầu của khách hàng trước khi phát triển là không thể bởi vì tùy theo từng sản phẩm
và đối tượng khách hàng mà yêu cầu được cung cấp đầy đủ hay thường xuyên
Trang 12thử ứng dụng Web ngoài kiểm thử các chức năng chính của ứng dụng, ta còn cần kiểm tra nhiều yêu cầu phi chức năng khác như: hiệu năng sử dụng, tính dễ sử dụng, độ tin cậy, tính bảo mật của hệ thống…
1.2.2 Tại sao phải kiểm thử ứng dụng Web?
Các ứng dụng Web đưa ra những thách thức mới trong việc đánh giá và kiểm tra Các ứng dụng Web bao gồm nhiều thành phần khác nhau có thể được cung cấp cho những nhà phát triển khác nhau Chất lượng của một ứng dụng Web cơ bản phụ thuộc vào các thành phần kể trên và khả năng tương tác giữa chúng Kiểm thử là một trong những công việc quan trọng nhất trong quá trình phát triển 1 ứng dụng Web để tạo ra những sản phẩm với chất lượng cao đáp ứng được mong đợi của người dùng Việc kiểm thử một các có phương pháp và hệ thống các ứng dụng Web là một điều quan trọng Hiện nay có rất nhiều các phương pháp và kĩ thuật tiên tiến hiệu quả để kiểm thử những hệ thông phần mềm Tuy nhiên chúng ta cần phải linh hoạt sử dụng chúng chứ không áp dụng một các cứng nhắc những phương pháp và kĩ thuật cho phần mềm truyền thống lên những ứng dụng Web
Hình 1.1Những kiểm thử cần có cho một ứng dụng web
Kiểm thử các ứng dụng Web đã vượt qua giới hạn của kiểm thử các hệ thống phần mềm truyền thống bởi một ứng dụng Web không chỉ phát triển cho một nguwoif sử dụng mà là nhiều nhóm người sử dụng với nhiều nền tảng khác nhau(
Trang 13có những phương pháp đặc biệt khác với phần mềm truyền thống Bởi vì thông thường rất khó để đoán được số lượng người sẽ sử dụng ứng dụng Web là bao nhiêu Thời gian hồi đáp lại yêu cầu của người sử dụng là một yếu tố then chốt trong số những yếu tố quyết định thành công của 1 ứng dụng Web trên Internet
và nó cần được quan tâm cũng như kiểm thử sớm
1.2.3 Đặc trưng khi kiểm thử ứng dụng Web
Một ứng dụng được phát triển luôn hướng đến người sử dụng với mục tiêu chương trình sữ được vận hành một cách ổn định, chính xác với hiệu năng sử dụng trên 24 giờ trên 1 ngày và 7 ngày trong tuần Đặc biệt là chương trình phải tồn tại những ưu điểm như tính dễ sử dụng, độ tin cậy, tốc độ, tương thích với các hệ thống khác nhau và tương thích với các phiên bản trong tương lai
Còn với một ứng dụng Web thì những yêu cầu về chất lượng bao gồm:
- Yêu cầu về chức năng: sự hiện diện của các chức năng đáp ứng những yêu cầu được xác định Các yêu cầu cần có là tính phù hợp chính xác, khả năng tương tác, tuân thủ và bảo mật
- Yêu cầu về độ tin cậy: khả năng của một ứng dụng để duy trì sự hiệu quả của nó trong một điều kiện cụ thể và trrong một khoảng thời gian xác định
- Yêu cầu về khả năng sử dụng: Tính dễ sử dụng và hiệu quả của một ứng dụng sẽ được thẩm định bằng một nhóm người bằng giả định
- Yêu cầu về hiệu quả: Tỷ lệ giữa mức độ hiệu quả của một ứng dụng và các tài nguyên mà nó sử dụng trong các điều kiện cụ thể
Như vậy các yêu cầu về chất lượng đóng vai trò thiết yếu khi thử nghiệm các ứng dụng Web Mặc dù nhìn chung thì các yêu cầu về chất lượng của các ứng dụng Web tương tự như trong các hệ thống phần mềm truyền thống nhưng nó lại
có những đòi hỏi đặc thù và chuyên sâu hơn
1.2.4 Công việc khi kiểm thử Theme WordPress
1.2.4.1 Xây dựng Test Plan
Kế hoạch kiểm thử là một phần quan trọng và không thể thiếu với bất cứ một sản phầm phần mềm hay chương trình nào Kế hoạch kiểm thử được Test Manger hoặc Test Leader xây dựng ngay trong giai đoạn đầu của dự án để định
Trang 14nghĩa phạm vi kiểm thử, các chiến lược kiểm thử, nhận dạng các rủi ro và yếu tố
bất ngờ, nhận dạng các hoạt động kiểm thử nào là thủ công, kiểm thử nào là tự
động hay cả hai, ước lượng chi phí kiểm thử và xây dựng lịch kiểm thử, nhận
dạng môi trường kiểm thử…
Kế hoạch kiểm thử cần được xem lại bởi đội quản lý kiểm tra chất lượng phần mềm, nhà phát triển phần mềm, nhà phân tích kinh doanh, kiểm thử viên
và khác hàng Nếu đạt yêu cầu nó được quyết định bởi nhà quản lí dự án và chính
khách hàng Trong suốt quá trình kiểm thử có thể hiệu chỉnh để phù hợp với yêu
cầu, chu kì kiểm thử nếu có những thay đổi cần thiết được đưa ra
PROJECT TEST
Unit Test Combine Test Acceptance Test
Kế hoạch Thiết kế Thực thi
Lập kế
hoạch
chi tiết
Phân tích chi tiết
Chuẩn
bị thực hiện
Thực hiện
Kiểm tra
Đánh giá
Thực thi
Khách hàng, người dùng cuối thiết kế
Kế hoạch Thiết kế
Kế hoạch
Thiết kế Thực thi
Lập kế hoạch chi tiết
Phân tích chi tiết
Tiêu chuẩn thực hiện
Thực hiện
Kiểm tra
Đánh giá
System Test
Đánh giá Kiểm tra Thực hiện
Chuẩn bị thực hiện
Phân tích chi tiết
Test Design
Trang 15Hình 1.3 Kiểm thử Front- End và Back-End
1.4.1.2 Kiểm thử Front-End
Test Front – end chủ yếu liên quan đến test giao diện và chức năng của trang web dựa trên design có sẵn Thường sử dụng các tool hỗ trợ đi kèm như:
Photoshop, Lightshot…
Hình 1.4 Kiểm thử Front -End
Kiểm thử giao diện
Đối với một Theme WordPress thì giao diện là một phần quan trọng quyết định thành công cho Theme đó
Test giao diện người dùng (UI) kiểm tra các tương tác của người dùng với phần mềm Mục tiêu của test UI là để đảm bảo rằng giao diện người dùng cung cấp cho người sử dụng cách truy cập và sử dụng thích hợp thông
Trang 16qua các chức năng trong mục tiêu test Ngoài ra, test UI còn để đảm bảo rằng các đối tượng trong phạm vi chức năng UI giống như mong đợi và phù hợp với tổ chức hoặc chuẩn ngành
Kiểm thử chức năng
Mục đích của kiểm thử chức năng là tập trung vào các yêu cầu test có thể được lưu vết trực tiếp trong các use case hoặc các chức năng và quy tắc nghiệp vụ Mục tiêu của kiểu test này là kiểm tra tính đúng đắn của các dữ liệu quy trình và báo cáo cũng như việc thực hiện đúng những quy tắc nghiệp vụ Kiểu test này dựa vào kĩ thuật black box tức là kiểm tra ứng dụng
và các xử lí nội tại bằng cách tương tác với ứng dụng thông qua giao diện người sử dụng và phân tích kết quả hoặc đầu ra
Check speed
Mục đích của check speed nhằm đánh giá tốc độ chạy và xử lý trang web khi sử dụng trên các thiết bị như điện thoại và máy tính Có rất nhiều tool để thực hiện việc này, tuy nhiên chúng ta thường sử dụng một trang web
uy tín của Google develope để thực hiện Link
Trang 17- Bước 3: Click button “Phân tích” và chờ vài giây để lấy kết quả
Nếu kết quả báo màu đỏ (site đáp ứng được dữ liệu test về speed dưới 70%) thì ta log bug lên hệ thống Taiga Đối với web wordpress của công ty yêu cầu speed trên các thiết bị trên 80% và User Experience trên 90% là không lỗi (báo màu xanh)
Check responsive
Check responsive là việc thực hiện check trang web trên các màn hình nhỏ
và các thiết bị thật có kích thước màn hình nhỏ (như điện thoại hay Ipad …) Việc này đòi hỏi check trên các kích thước màn hình sau: 320, 480, 768, 992,
1024, 1280, 1366 và 1920
Để thực hiện việc đó, ta mở trang web trên trình duyệt Firefox và sử dụng tổ hợp phím tắt Ctrl+Shirft+M để thu nhỏ màn hình và test trên máy tính trước Sau đó, ta cần check site trên các thiết bị thật có màn hình nhỏ như Iphone hay Ipad Một số lỗi thường xảy ra khi check responsive là các hình ảnh và chữ hay bị mất, bị cắt hay chồng chéo lên nhau, khoảng cách bị sai lệch hay các phím các chức năng không hoạt động nữa khi thu nhỏ màn hình
Check integrate
Là giai đoạn kiểm tra trang web trên tất cả các trình duyệt và các hệ điều hành như: Firefox, Chrome, Safary, IE9+, hệ điều hành Windown, IOS… để tìm
ra các lỗi không tương thích với môi trường
Check các chức năng và option trên trang web
Dựa vào test case hay kinh nghiệm test, ta check các chức năng hay option
có trên trang web như: khi click vào link có dẫn đến một trang khác không, option contact có gửi được mail hay không, vv…
Check validation HTML and javascript
Mở khung check code trên trình duyệt đang dùng và chọn cửa sổ Console Nếu trong khung bên dưới báo đỏ và có list danh sách lỗi thì chụp lại và đưa lên Taiga cho coder check lại lỗi javascript
Trang 181.2.4.3 Kiểm thử Back- End
Kiểm thử quá trình cài đặt và impost dữ liệu
Ở quy trình test Back– End ta cần hiểu sâu về wordpress, các chức năng, cách cài đặt và sử dụng cũng như các chuẩn để test unit của wordpress Các bước
cơ bản để test unit cho Wordpress được đưa ra như sau:
- Step1: Install necessary plugin: Theme Check, Theme Forest Check, Theme Mentor, Monter Widget, Debug bar Đây là các plugin đã có sẵn trên trong http:// wordpress.org
Step2: Install theme
Kiểm thử chức năng
Kiểm thử các tùy chọn trong Theme Option
Hình 1.6 Kiểm thử các tùy chọn trong Theme Option
Kiểm thử các tùy chọn trong Page Option
Hình 1.7 Kiểm thử các tùy chọn trong Page Option
Kiểm thử một vài shortcode tiêu biểu trong Visual Composer
Đây là bước kiểm thử khó nhất bởi vì khi ta check trong chế độ Back-end của Visual Composer khi tùy chọn được thiết lập đúng nhưng ngoài site kết quả
Trang 19vẫn không hiển thị như mong muốn thì ta cần chuyển sang chế độ Static Mode của Visual Composer để check code html xây dựng nên page và tìm ra lỗi
Bước kiểm thử này đồi hỏi tester cần có những kiến thức chuyên sâu về WordPress, việc sử dụng html, CSS… Nếu tester không thể kiểm tra và check lỗi gây ra ở đâu thì cần liên hệ với coder để phát hiện lỗi và tìm cách fix lỗi đó
1.3 Giới thiệu về Selenium
1.3.1 Tổng quan
Selenium(SE) là một trong những công cụ kiểm thử phần mềm tự động nguồn mở(Open source test automation tool) phát triển và được ưa chuộng nhất hiện nay.SE là một công cụ kiểm tra tự động các ứng dụng Web Nó có thể chạy trên hầu hết các trình duyệt và hệ điều hành: Windows, Linux, Mac…và hỗ trợ hầu hết các ngôn ngữ lập trình Web như C#, Java, Perl, PHP, Python, Ruby…
Về cấu trúc thì Selenium có 4 phần
Selenium IDE
Selenium RC (Selenium 1 – Selenium Remote Control)
Selenium Gird
Selenium WebDriver (Selenium 2)
Hình 1.8 Cấu trúc của Selenium
Selenium IDE (Integrated Development Environment) là một công cụ cho
phép chúng ta Record/Playback một test script Đây là một add-on hỗ trợ cho
Trang 20FireFox Chúng ta chỉ có thể Record trên trình duyệt FireFox, nhưng bù lại, chúng ta có thể Playback trên các trình duyện khác như là IE, Chrome…
Selenium Gird là một hệ thống hỗ trợ người dùng thực thi test script trên
nhiều trình duyệt một cách song song mà không cần phải chỉnh sửa test script
Selenium RC, Selenium WebDriver là một thư viện cho phép chúng ta lập
trình (scripting) test script trên các ngôn ngữ lập trình khác nhau như Python, Java, C#, Ruby
1.3.2 Lịch sử phát triển
Selenium được phát triển ban đầu bởi nhóm ThoughtWorks vào năm 2004 tại Chicago với tên ban đầu là JavaScriptTestRunner Đến năm 2007, tác giả Jason Huggins rời ThoughtWorks và gia nhập Selenium Team, một phần của Google
và phát triển thành Selenium như hiện nay Ông là một kĩ sư ở ThoughtWorks được làm việc với các ứng dụng web cần được kiểm tra thường xuyên Sau khi nhận ra kiểm tra thủ công lặp đi lặp lại các ứng dụng ngày càng trở nên kém hiệu quả, ông đã viết một chương trình JavaScript “JavaScriptTestRunner” tự động kiểm soát các hoạt động của trình duyệt.Từ đó ông đã thực hiện viết ra một mã nguồn mở JavaScriptRunner mà sau này nó được lấy tên là Selenium Core Với chính sách cùng gốc (Same Origin Policy) đã ngăn cản các đoạn mã JavaScript truy cập các phần tử từ các tên miền là khác nhau tại địa chỉ mà nó được chạy Đó là lí do tại sao trước khi Selenium RC ra đời, tester cần cài đạt bản copy cục bộ của cả Selenium Core và web server chứa ứng dụng web cần test vì chúng không thuộc cùng một tên miền Dựa trên hạn chế đó, kĩ sư Paul Hammant quyết định tạo ra 1 server hoạt động như một proxy HTTP để “lừa” trình duyệt tin rằng Selenium Core và ứng dụng web đang được kiểm thử đến từ cùng một tên miền Hệ thống này được gọi là điều khiển từ xa Selenium Remote Control hay Selenium 1
Selenium Grid được phát triển bởi Patrick Lightbody để giải quyết nhu cầu giảm thiểu thời gian thực hiện kiểm thử càng nhiều càng tốt Ban đầu ông đặt tên
hệ thống là “Hosted QA” Nó có khả năng chụp ảnh màn hình trình duyệt trong giai đoạn quan trọng và đồng thời gửi lệnh Selenium đến các máy khác nhau
Trang 21Shinya Kasatani, một kĩ sư đến từ Nhật Bản tạo ra Selenium IDE, một phần
mở rộng của Firefox có thể tự động thực hiện trên các trình duyệt thông qua một chức năng ghi và chạy lại (record and playback) Ông đã đưa ra ý tưởng này để tăng thêm tốc độ trong việc tạo ra các test case Ông đã tặng Selenium IDE cho
dự án Selenium trong năm 2006
Simon Stewart tạo WebDriver khoảng năm 2006 khi các trình duyệt và các ứng dụng Web trở nên mạnh mẽ hơn và chặt chẽ hơn với các chương trình JavaScript như Selenium Core Đó cũng là nền tảng kiểm thử đa nền tảng mà có thể điều khiển các trình duyệt từ cấp hệ điều hành
Trong năm 2008 , toàn bộ nhóm Selenium quyết định hợp nhất WebDriver
và Selenium RC để tạo thành một công cụ mạnh hơn gọi là Selenium 2 , với WebDriver là trọng tâm
Tại sao lại có tên Selenium?
Phải chăng cái tên Selenium được bắt nguồn từ nguyên tố hóa học Selenium? Được biết Selenium là một nguyên tố hóa học với số nguyên tử 34 và kí hiệu hóa học Se, Nó là một phi kim, về mặt hóa học rất giống với lưu huỳnh (S) Từ Selenium xuất phát từ tiếng Hy Lạp “Selene” có nghĩa là mặt trăng Cách đặt tên trên có liên quan đến sự phản quang của Selenium được nhân lên khoảng 1000 lần khi Selenium được đưa từ bóng tối ra ánh sang mặt trời…Đây là một phát hiện quan trong của nhà phát minh người Anh W.Smith khi phát hiện ra tính quang dẫn của Selenium vào năm 1873
Nhưng những người trong cuộc đã khẳng định đó không phải lí do để Selenium trở thành tên của công cụ Nó bắt nguồn từ một tên đùa mà Jason đưa
ra một lần cho cả đội của anh ấy Một nền tảng kiểm thử tự động khá phổ biến trong thời kì phát triển Selenium bởi các công ty gọi là Mercury Interactive (công ty người ban đầu tạo ra công cụ QTP (Quick Test Pro) trước khi nó đã được mua lại bởi HP) Selenium được biết đến là một thuốc giải độc nổi tiếng cho ngộ độc thủy ngân, Jason đề nghị tên đó và được sự thống nhất của
cả đội nên cái tên Selenium được chọn để gọi cho framework này từ đó cho đến ngày nay
Trang 221.3.3 Selenium IDE
1.3.3.1 Giới thiệu Selenium IDE
Selenium IDE là 1 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 Từ đó Tester có thể nhanh chóng tạo ra một bộ kịch bản kiểm tra (TestScript) bằng cách “thu” các thao tác của mình trên đối tượng cần kiểm tra thành một tập những “Selenese”( ngôn ngữ kịch bản được phát triển cho Selenium IDE và Selenium Core- dưới dạng bản HTML) Sau đó chạy lại các câu lệnh này để kiểm tra Chức năng này rất hữu dụng cho phép tiết kiệm thời gian viết kịch bản kiểm tra.Selenium IDE cho phép lưu kịch bản đã thu dưới nhiều loại ngôn ngữ lập trình Selenium IDE có kiến trúc Browser và Web Server như hình:
Hình 1.9 Kiến trúc của Selenium IDE
Selenium IDE cũng chứa một menu ngữ cảnh cho phép lựa chọn yếu tố người dùng từ các trình duyệt đang hiển thị trang và sau đó chọn từ một danh
Trang 23sá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
1.3.3.2 Hướng dẫn cài đặt Selenium IDE
Bởi vì Selenium IDE là 1 add – on của Mozilla Firefox nên đầu tiên ta cần kiểm tra xem nó được cài đặt trên trình duyệt Firefox hay chưa? Muốn kiểm tra ta cần mở trình duyệt Firefox sau đó nhấp vào mục Tool trên Menu Bar rồi quan sát trên đó menu đổ xuống có mục Selenium IDE hay không Nếu thấy không có thì ta cần thực hiện những bước sau đây để cài tiện ích này trên Firefox
Bước 1: Truy cập vào trang: http://www.seleniumhq.org tại thẻ
“Download” và lựa chọn “Selenium IDE” rồi download
Hình 1.10 Trang download tiện ích Selenium IDE
Bước 2: Popup như hình hiện lên, click “Install” để cho phép cài đặt phần mềm trên máy tính
Hình 1.11 Quá trình cài đặt Selenium IDE
Bước 3: Bạn cần khởi động lại trình duyệt Firefox Như vậy bạn đã cài đặt thành công Selenium IDE Bạn sẽ thấy tiện ích Selenium IDE bên phải màn hình
Trang 24 Bước 4: Bạn có thể khởi động Selenium để trải nghiệm những tính năng của nó bằng cách: Click vào Tool trên Menu bar, di chuyển chuột và click lên mục Selenium IDE hoặc nhấn tổ hợp phím Ctrl+Alt+S hoặc click vào biểu tượng Selenium IDE ở góc phải màn hình
Hình 1.12 Thao tác mở IDE trên menu Tool
Một cửa sổ mới bật ra cho thấy giao diện của Selenium IDE
Hình 1.13 Giao diện của Selenium IDE
Trang 251.3.3.3 Các thành phần của Selenium IDE
Hình 1.14 Các thành phần và kí hiệu của Selenium IDE
Giải thích về một số kí hiệu:
Base URL: là nơi lưu trữ homepage của ứng dụng Web được kiểm thử
Thanh trượt : Điều chỉnh tốc độ nhanh chậm khi thực thi testcase
Nút : Thực thi tất cả các testcase chúng ta đang mở
Nút : Thực thi testcase đang được mở
Nút : Cho phép dừng thử nghiệm tại bất kỳ một điểm nào bạn muốn
Nút : Sau khi click vào biểu tượng Pause, nó sẽ chuyển sang biểu tượng Resume Với nút này cho phép bạn có thể tiếp tục chạy thử nghiệm của bạn tại đoạn đường bạn đã dừng
Nút : Bỏ qua một testcase khi nó đã bị tạm dừng
Nút : Được sử dụng để thu các testcase qua những thao tác bạn tác động đến trang Web cần kiểm thử
Textbox Command: danh sách các action mà Selenium IDE đang hỗ trợ
Textbox Target: Kết quả mong đợi của dòng lệnh
Textbox Value: Giá trị đầu vào của dòng lệnh
Trang 26Bả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 testcase có dạng HTML:
Hình 1.15 Lưu trữ các testcase dạng HTML của Selenium
Khu vực phía dưới Textbox Value sẽ hiển thị các log của Selenium trong khi các testcase chạy Nếu có một testcase bị thất bại Selenium IDE sẽ log một lỗi
Log: Hiển thị thông báo lỗi và các bước thực thi trong quá trình chạy các testcase tự động Ngay cả khi mình không chọn tab log, các thông tin này vẫn được hiển thị
Reference: Thẻ tham chiếu hướng dẫn sử dụng action đang được chọn Thẻ tham chiếu là lựa chọn mặc định bất cứ khi nào bạn nhập hoặc thay đổi các lệnh Selenese và các thông số trong bảng chế độ UI- Element và Rollup: Tính năng nâng cao của Selenium IDE khi mà chúng ta tự thiết kế các nhận diện control hay gom nhóm action
1.3.3.4 Các thao tác thực hiện kiểm thử tự động Selenium IDE
Khởi động chế độ ghi
Theo mặc định sau khi bật Selenium IDE lên thì chế độ Record đã được bật
Để tắt/bật chế độ này chỉ cần click vào nút Record màu đỏ
Trong quá trình ghi, Selenium IDE sẽ tự động chèn thêm các lệnh vào trường hợp thử nghiệm của bạn dựa trên hành động của bạn Thông thường điều này sẽ bao gồm:
Trang 27 Click a link- click or clickAndWait commands
Nhập các giá trị- Type command
Select options from a drop-down listbox– select command
Click checkboxes or radiobutton- click command
Chạy 1 test case: Chọn 1 testcase và click vào nút Run để chạy testcase đó
Stop and Start: Khi muốn dừng một testcase đang chạy bạn sử dụng nút Pause và muốn nó tiếp tục chạy lại ta dùng nút Resume
Chúng ta có thể thiết lập các điểm ngắt, điểm dừng bằng cách sử dụng break point và start point
Break point
Selenium IDE hỗ trợ thiết lập các điểm ngắt, điểm dừng các hoạt động của 1 testcase từ bất kỳ điểm nào trong trường hợp thử nghiệm Người ta có thể chạy một lệnh cụ thể giữa các test case và kiểm tra các testcase hoạt động tại điểm đó
Để làm điều này ta sẽ thiết lập một lệnh break point trước khi lệnh mà bạn muốn kiểm tra
Chèn ở dạng bảng: Chọn điểm trong Testcase của bạn nơi bạn muốn chèn
lệnh rồi chuột phải và chọn lệnh insert, IDE sẽ thêm một dòng trống trước dòng bạn đã chọn Bây giờ bạn sử dụng các lệnh chỉnh sửa văn bản để nhập lệnh mới
và các thông số của nó
Chèn ở trong mã nguồn: Chọn điểm trong testcase nơi bạn muốn chèn lệnh \
Trang 28 Chèn nhận xét
Nhận xét (Comment) có thể được thêm vào để làm Testcase của bạn dễ đọc hơn Những comments được bỏ qua khi các Testcase được chạy.Khác với khi thêm một command nếu thêm một comment trống thì nó không gây ra lỗi cho scripts của bạn
Chèn dạng bảng
Chọn một dòng trong TestCase nơi bạn muốn chèn câu lệnh Nhấp chuột phải vào và chọn Insert Comment Comment của bạn sẽ xuất iện trong văn bản màu tím
Chèn dạng mã nguồn
Chọn điểm trong testcase nơi bạn muốn chèn rồi thêm một bình luận kiểu HTML tức là <- Điền dòng comment ở đây ->
1.3.3.5 Các câu lệnh trong Selenium
Các câu lệnh của Selenium thường được gọi là Selenese, là tập hợp những command chạy test của bạn Một chuỗi những commands là một test script Selenium cung cấp một tập phong phú các command đầy đủ cho việc test các ứng dụng Web
Trong Selenese có thể kiểm tra sự tồn tại của các Elements giao diện dựa trên các thẻ tag HTML, kiểm tra các nội dung cụ thể kiểm tra các link hỏng, các trường đầu vào, các tùy chọn selection, form submit và dữ liệu bảng, theme vào, commands Selenium hỗ trợ kkieemr tra sizre,window, vị trí chuột, alert, các hàm ajax, cửa sổ pop up, event handling và nhiều tính năng ứng dụng web khác Selenese gồm 3 loại chính: Action, accessors, assertion
Action: là thao tác chung trên ứng dụng ví dụ “Click this link” Nếu thao tác thất bại sẽ có một lỗi, việc thực thi kiểm thử sẽ bị tạm dừng Một vài hành động sử dụng hậu tố “AndWait” ví dụ “Click and Wait”.Selenium sử dụng hậu tố này trong trường hợp chờ một trang web được tải
Accessors: 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 Đồng thời chúng có thể được sử dụng để sinh tự động các assertion
Trang 29 Assertion: giống với accessors nhưng chúng 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 ba dạng: “assert”, “verify”,
“waitFor” 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ử sẽ tiếp tục nhưng sẽ hiển thị một lỗi Còn lệnh “waitFor” chờ một vài điều kiện được thực thi, nó thành công khi điều kiện đúng và sẽ thất bại hoặc tạm dừng nếu các điều kiện không đúng
Một số lệnh thường được 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 một trang web mới
VerifyTitle/assertTitle: Xác định một tiêu đề trang mong đợi
VerifyTextPresent: Xác nhận văn bản cụ thể tồn tại ở một vị trí nào đó trên trang Sử dụng VerifyTextPresent khi bạn quan tâm đến văn bản chỉ có bản thân có mặt trên trang Lệnh sẽ không được sử dụng khi bạn cần phải kiểm tra văn bản nơi xảy ra 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 hơn là nội dung của nó Xác minh này không kiểm tra các văn bản chỉ kiểm tra các tag HTML Thông thường nó được sử dụng để kiểm tra sự hiện diện của một hình ảnh
VerifyText: Xác nhận văn bản được mong đợi và các thẻ HTML tương ứng
VerifyTable: Xác nhận các nội dung mong đợi của một bảng
waitForPageToLoad: Tạm dừng thực thi lệnh cho đến khi trang Web mong đợi được tải thành công, được gọi là tự động khi sử dụng lệnh clickAndWait
waitForElementPresent: Tạm dừng thực thi cho tới khi các yếu tố giao diện người dùng xuất hiện trên trang Web
Trang 301.3.4 Selenium RC/ Web driver
1.3.4.1 Giới thiệu chung về 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 kiểm thử Selenium Core được tích hợp với Selenium RC cho việc cài đặt trên máy chủ
Hình 1.16 Sơ đồ Selenium RC/ WebDriver
Selenium RC là công cụ phục vụ cho các công việc kiểm thử đòi hỏi nhiều thao tác với các website trên giao diện Selenium RC sử dụng ngôn ngữ lập trình kiểm thử các trường hợp phức tạp mà Selenium không hỗ trợ
Thành phần chính của Selenium RC gồm 2 phần:
Máy chủ Selenium: Thực hiện phân tích và chạy các lệnh được gửi đến từ các ứng dụng cần kiểm thử và các thao tác như HTTP proxy, phân tích và xác minh các thông điệp HTTP giữa trình duyệt và ứng dụng cần kiểm tra
Thư viện máy khách: Cung cấp giao tiếp giữa ngôn ngữ lập trình và máy
Máy chủ Selenium
Máy chủ Selenium nhận lệnh từ chương trình kiểm thử Selenium, thực hiện biên dịch nó và gửi lại thông báo kết quả của việc chạy các testcase
Trang 31Máy chủ Selenium được tích hợp Selenium Core và tự động đưa nó vào trình duyệt Điều này xảy ra khi chương trình được kiểm thử mở trên trình duyệt( sử dụng chức năng thư viện máy khách API) Selenium Core là một chương trình JavaScript, thực tế là một tập các chức chức năng dùng để biên dịch và thực thi các lệnh Selenese sử dụng trình duyệt để thông dịch JavaScript
Máy chỉ nhận các lệnh Selenese từ chương trình được kiểm thử sử dụng các
đề nghị HTTP GET/POST đơn giản Điều này có nghĩa là chúng ta có thể sử dụng mọi ngôn ngữ lập trình có khả năng gửi yêu cầu HTTP tới các kịch bản kiểm thử tự động trên trình duyệt
Các thư viện máy khách
Các thư viện máy khách cung cấp giao diện hỗ trợ lập trình cho phép chạy lệnh Selenium từ chương trình của chúng ta Các thư viện máy khách hỗ trợ các ngôn ngữ lập trình khác nhau thì khác nhau Giao diện lập trình( API) là một tập các chức năng lập trình hỗ trợ Selenium
Thư viện máy khách sử dụng lệnh Selenese và chuyển tới máy chủ Selenium
để xử lí các hoạt động cụ thể và kiểm tra ngược lại với các ứng dụng cần kiểm tra Thư viện máy khách cũng nhận kết quả của lệnh và chuyển trở lại chương trình Chương trình có thể nhận kết quả và lưu nó vào một biến chương trình và thông báo trở lại thành công hay thất bại hoặc có thể thực thi các hành động trực tiếp nếu nó là các lỗi không được mong đợi
1.3.5 Cài đặt Selenium Remote Control
Download Selenium Remote Control từ link: http://www.seleniumhq.org/ Sau khi download file zip Selenium RC từ trang: http://www.seleniumhq.org/ download và giải nén sẽ được các thư mục con Những thư mục này sẽ có tất cả các thành phần cần sử dụng cho Selenium và ngôn ngữ mình đã chọn
Khi đã chọn được ngôn ngữ lập trình, ta thực hiện:
Cài đặt máy chủ Selenium RC
Thiết lập một dự án sử dụng ngôn ngữ cụ thể với Driver máy khách cụ thể
Cài đặt máy chủ Selenium RC
Trang 32Máy chủ Selenium RC đơn giản là một file jar của Java standalone-2.53.0), nó không yêu cầu bất cứ cài đặt đặc biệt nào Ta chỉ cần tải
(selenium-server-về file zip và giải nén phần server trong thư mục mong muốn
Chạy Selenium Server
Trước khi bắt đầu kiểm thử, ta phải khởi động Server bằng cách đi đến thư mục chứa máy chủ Selenium RC, chạy file từ bảng điều khiển dòng lệnh( Command- line console)
Để server có thể chạy, máy tính cần cài java và biến mỗi trường PATH được cấu hình đúng để chạy từ bảng điều khiển
Sử dụng Java Client Driver
Download Selenium từ trang http://www.seleniumhq.org/download/
Giải nén file selenium-java-2.53.0.zip thành file selenium-java-2.53.0.jar
Mở Java IDE- Eclipse -> Tạo một Project mới
Thêm file selenium-java-2.53.0.jar vapf project
Thêm file selenium-java-2.53.0.jar vào classpath cho project
Từ Selenium IDE xuất ra một kịch bản cho một file Java và đặt nó trong project Java hoặc đơn giản là viết kịch bản Selenium bằng Jave sử dụng selenium-java-2.53.0
Chạy Selenium từ bảng điều khiển -> Thực thi việc kiểm thử từ Java IDE hoặc từ dòng lệnh
1.3.6 Báo cáo kết quả kiểm thử
Selenium RC không có cơ chế tự báo cáo kết quả kiểm thử Nhưng nó cho phép xây dựng báo cáo theo các đặc điểm của ngôn ngữ lập trình Chúng ta có thể sử dụng các framework kiểm thử của các ngôn ngữ lập trình để báo cáo Trong Java có hai framework thường sử dụng là Junit và TestNG
Trong đồ án em sẽ trình bày các bước để báo cáo kết quả kiểm thử trong Eclipse dựa trên framework TestNG Dưới đây là các bước cần thực hiện:
Bước 1: Chuột phải vào project chúng ta đã kiểm thử -> click Refresh (F5)
Trang 33 Bước 2: Ta sẽ nhìn thấy một thư mục “test-output” được tạo ra Click mở rộng nó và tìm kiếm tập tin index.html Đây chính là một báo cáo về kết quả chạy thử nghiệm gần nhất
Bước 3: Double-click vào tập tin index.html để mở nó trong trình duyệt web tích hợp sẵn trong Eclipse Bạn có thể làm mới trang này bất cứ lúc nào sau khi bạn chạy lại thử nghiệm của bạn bằng cách đơn giản nhấn F5 giống như trong các trình duyệt web thông thường