BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------
TÔ THỊ NGA
NGHIÊN CỨU - ỨNG DỤNG PHƯƠNG PHÁP VÀ CÔNG CỤ
KIỂM THỬ PHẦN MỀM TỰ ĐỘNG
Chuyên ngành : Công nghệ thông tin
LUẬN VĂN THẠC SĨ KỸ THUẬT
NGÀNH CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS. NGUYỄN THANH HÙNG
Hà Nội – 2017
1
LỜI CAM ĐOAN
Tôi tên là: Tô Thị Nga, học viên lớp 2015B CNTT – Trường Đại học Bách Khoa
Hà Nội. Tôi xin cam đoan toàn bộ nội dung của luận văn do tôi tự học tập, nghiên
cứu trên Internet, sách báo, các tài liệu trong và ngoài nước có liên quan. Không sao
chép hay sử dụng bài làm của bất kỳ ai khác, mọi tài liệu đều được trích dẫn cụ thể.
Tôi xin chịu hoàn toàn trách nhiệm về lời cam đoan của mình trước Quý Thầy Cô,
Khoa và Nhà trường.
Hà Nội, ngày 22 tháng 11 năm 2017
Người cam đoan
Tô Thị Nga
2
LỜI CẢM ƠN
Lời đầu tiên tôi xin chân thành cảm ơn TS. Nguyễn Thanh Hùng – Bộ môn
Công nghệ phần mềm - Viện Công nghệ thông tin và truyền thông - Đại học Bách
khoa Hà Nội người đã hướng dẫn vô cùng tận tình, tâm huyết để tôi có thể hoàn
thành luận văn này.
Tôi cũng chân thành cảm ơn các thầy cô trong bộ môn Công nghệ thông tin
đã tận tình chỉ bảo và giúp đỡ tôi trong suốt thời gian học và trong quá trình thực
hiện luận văn này.
Và cuối cùng tôi xin cảm ơn tất cả gia đình, bạn bè, những người đã sát cánh
cùng chia sẻ với tôi những lúc khó khăn giúp tôi có động lực để hoàn thành tốt luận
văn này.
Học viên
Tô Thị Nga
3
MỤC LỤC
LỜI CAM ĐOAN .......................................................................................................2
LỜI CẢM ƠN .............................................................................................................3
DANH MỤC KÝ HIỆU CHỮ VIẾT TẮT .................................................................8
DANH MỤC BẢNG VẼ ...........................................................................................9
DANH MỤC HÌNH VẼ ............................................................................................10
PHẦN MỞ ĐẦU .......................................................................................................10
PHẦN NỘI DUNG ...................................................................................................12
CHƯƠNG I : TÌM HIỂU TỔNG QUAN VỀ KIỂM THỬ TỰ ĐỘNG VÀ CÔNG
CỤ TỰ ĐỘNG ..........................................................................................................12
1.
Ý nghĩa, khái niệm kiểm thử tự động phần mềm .....................................12
1.1.
Kiểm thử tự động phần mềm là gì............................................................12
1.2.
Tại sao cần phải kiểm thử tự động phần mềm .........................................12
2.
Quy trình kiểm thử tự động phần mềm ....................................................13
2.1.
Mô hình chung của kiểm thử tự động phần mềm ....................................13
3. Một số công cụ kiểm thử phần mềm tự động ..............................................15
3.1. Nghiên cứu công cụ kiểm thử tự động QuickTest Professional .................15
3.1.1. Loại phần mềm hỗ trợ ..............................................................................15
3.1.2. Các thành phần quan trọng của QTP........................................................15
3.1.3. Ưu , nhược điểm của QTP........................................................................16
3.2.
Nghiên cứu công cụ kiểm thử hiệu năng..................................................17
3.2.1. Khái quát về kiểm thử hiệu năng .............................................................17
3.2.2. Nghiên cứu về công cụ Load Runner .......................................................17
4
4.
Nghiên cứu công cụ Selenium .................................................................18
4.1.
Tóm tắt lịch sử Selenium .........................................................................18
4.2.
Đặc điểm của Selenium ............................................................................18
4.3.
Cấu trúc Selenium ....................................................................................19
4.3.1. Selenium IDE (Integrated Development Environment) ...........................19
4.3.2. Selenium Gird ..........................................................................................20
4.3.3. Selenium RC ............................................................................................21
4.3.4. Selenium WebDriver ................................................................................22
4.4.
Ưu, nhược điểm của Selenium .................................................................23
4.4.1. Ưu điểm ....................................................................................................23
4.4.2. Nhược điểm ..............................................................................................24
5.
Chi tiết về Selenium Webdriver ..............................................................24
5.1.
Tổng quan về đối tượng UI (Locators) ...................................................24
5.2.
Cơ chế các script được viết ra bằng Selenium Webdriver .......................27
5.3. Các thư viện cần thiết để chạy SeleniumWebDriver ..................................28
5.3.3. Các hàm xử lý chung trong SeleniumWebDriver ....................................29
6.Kết luận chương ..............................................................................................30
CHƯƠNG II . TỰ ĐỘNG HÓA KỊCH BẢN KIỂM THỬ SỬ DỤNG SELENIUM
…………………………………………………………………………….31
BÀI TOÁN ĐẶT RA .............................................................................................31
1.
Ý tưởng bài toán: ......................................................................................31
2.
Phân tích yêu cầu......................................................................................32
2.1. Yêu cầu đặc tả .............................................................................................32
2.2. Biểu đồ Usecace ..........................................................................................33
5
2.2.1. Đặc tả Usecase Import file Test Case ......................................................34
2.2.2. Đặc tả Usecase Import file Config ...........................................................35
2.2.3. Đặc tả Usecase Chạy kịch bản kiểm thử ..................................................35
2.2.4. Đặc tả Usecase Dừng chạy kịch bản kiểm thử .........................................36
2.2.5. Đặc tả Usecase Quản lý Test Case import ...............................................37
2.2.6. Đặc tả Usecase Xóa TestCase ..................................................................38
2.2.7. Đặc tả Usecase Quản lý Test Result .......................................................38
2.3.Biểu đồ hoạt động.........................................................................................39
3.
Triển khai vấn đề ......................................................................................40
3.1.
Tạo Project sử dụng thư viện Maven .......................................................40
3.2.
Tạo Page Object Model (POM) ...............................................................41
3.2.1. Page Object làgì? ......................................................................................41
3.3.
Cấu trúc project ........................................................................................42
4.Chuẩn bị môi trường kiểm thử ........................................................................42
5.Chuẩn bị dữ liệu kiểm thử ...............................................................................44
6.Tạo file Cấu hình .............................................................................................46
7. Kết luận chương.............................................................................................47
CHƯƠNG III: TRIỂN KHAI VÀ KIỂM THỬ HỆ THỐNG ...................................48
1. Cài đặt triển khai hệ thống .............................................................................48
2. Kết quả...........................................................................................................52
2.1. Giao diện của công cụ kiểm thử .................................................................52
2.2. Các tính năng hiển thị trên công cụ .............................................................53
2.3. Xuất kết quả kiểm tra ..................................................................................54
3. Kiểm thử phần mềm .......................................................................................55
6
3.1. Lên kế hoạch kiểm thử ...............................................................................55
3.2. Thiết kế kịch bản kiểm thử công cụ ............................................................56
3.2.1. Kiểm thử giao diện ...................................................................................56
3.2.2. Kiểm thử chức năng .................................................................................56
4. Áp dụng kiểm thử ..........................................................................................59
5. Kết luận chương .............................................................................................60
CHƯƠNG IV: ĐÁNH GIÁ KẾT QUẢ ....................................................................62
1. Đánh giá kết quả .............................................................................................62
2. Hướng phát triển .............................................................................................63
KẾT LUẬN ...............................................................................................................64
TÀI LIỆU THAM KHẢO .........................................................................................65
7
DANH MỤC KÝ HIỆU CHỮ VIẾT TẮT
Chữ viết tắt
Chữ viết đầy đủ
Công nghệ thông tin
CNTT
QuickTest Professional
QTP
OR
Object Repository
Integrated Development Environment
IDE
RC
Remote Control
UI
User Interface
WAUT
Web Application Under Test
HTML (Hyper Text Markup
Ngôn ngữ đánh dấu siêu văn bản
Language)
TDD
Test-Driven Development
ATDD
Acceptance Test-Driven Development
BDD
Behaviour DrivenDevelopment
POM
Page Object Model
8
DANH MỤC BẢNG VẼ
Tên bảng
Bảng 1 : Mô hình chung của kiểm thử tự động phần mềm
Trang
9
Bảng 2 : Các bước thực hiện kiểm thử tự động
11
Bảng 3 : Các thành phần của Load Runner
15
Bảng 4 : Thư viện cần thiết để chạy Selenium WebDriver
34
Bảng 5 : Locate element sử dụng WebDriver
34
Bảng 6 : Các hàm thường sử dụng trong Selenium Webdriver
35
Bảng 7 : Đặc tả Usecase Import file Test Case
40
Bảng 8 : Đặc tả Usecase Import file Config
41
Bảng 9 : Đặc tả Usecase Chạy kịch bản kiểm thử
42
Bảng 10 : Đặc tả Usecase Dừng chạy kịch bản kiểm thử
42
Bảng 11 : Đặc tả Usecase Quản lý Test Case import
44
Bảng 12 : Đặc tả Usecase Xóa TestCase
44
Bảng 13 : Đặc tả Usecase Quản lý Test Result
51
Bảng 14 : Test case chức năng Login
51
Bảng 15 : Test case chức năng Đăng ký
52
Bảng 16 : Test case chức năng Mua hàng online
57
Bảng 17 : Kết quả chạy kiểm thử export ra excel
53
Bảng 18 : Test Case kiểm thử chức năng phần mềm
55
Bảng 19 : Test Case kiểm thử chức năng phần mềm
57
Bảng 20 : Bảng kết quả kiểm thử phần mềm
58
9
DANH MỤC HÌNH
Hình 1.4.1. Sơ đồ cầu trúc Selenium ........................................................................ 18
Hình 1.4.2 : Kiến trúc Selenium IDE ...................................................................... 19
Hình 1.4.3. Tương tác của Selenium RC đến máy chủ ........................................... 21
Hình 1.4.4. Tương tác của Selenium Webdriver ..................................................... 22
Hình 1.4.5. Xác định phần tử Web theo ID ............................................................. 24
Hình 1.4.6. Xác định phần tử Web theo Name ....................................................... 24
Hình 1.4.7. Xác định phần tử Web theo LinkText ................................................... 25
Hình 1.4.8. Xác định phần tử Web theo TagName ................................................... 25
Hình 1.4.9. Xác định phần tử Web theo ClassName .............................................. 26
Hình 1.4.10. Xác định phần tử Web theo CSS ........................................................ 26
Hình 2.1. Mô hình ý tưởng của phần mềm ............................................................. 30
Hình 2.2.1. Usecase tổng quan cho hệ thống............................................................ 32
Hình 2.2.2. Biểu đồ hoạt động cho flow kiểm thử website dựa theo kịch bản ......... 38
Hình 2.3.1. Cấu trúc POM ........................................................................................ 39
Hình 2.3.3. Cấu trúc Project ..................................................................................... 42
Hình 2.4.1. Màn hình đăng ký.................................................................................. 42
Hình 2.4.2. Màn hình Login tài khoản học viên ...................................................... 43
Hình 2.4.3. Luồng kiểm thử nghiệp vụ đặt hàng trên website tiki.......................... 43
Hình 2.5.1. File cấu hình ......................................................................................... 45
Hình 3.2.1. Giao diện phần mềm ............................................................................. 51
Hình 3.2.2. Kết quả export ra html .......................................................................... 54
10
PHẦN MỞ ĐẦU
Thế giới CNTT đang trong giai đoạn bùng nổ phát triển, các công ty phát
triển phần mềm muốn hòa nhập cùng xu hướng này cần phát triển phần mềm đáp
ứng nhu cầu ngày càng cao của người sử dụng, ngoài ra các công ty phần mềm
cũng cần phát triển mô hình kinh doanh theo quy trình chuẩn. Do đó, kiểm thử
phần mềm và quy trình phần mềm chuẩn là xu hướng phát triển mới hiện nay.
Để tạo ra sản phẩm công nghệ thông tin hay phần mềm có chất lượng thì hoạt động
kiểm thử phần mềm đóng vai trò rất quan trọng, trong khi đó hoạt động này lại tiêu
tốn và chiếm tỷ trọng khá lớn công sức và thời gian trong một dự án.
Qua thực tế cho thấy, có rất nhiều công cụ trong việc kiểm thử tự động phần mềm
đáp ứng được việc giảm nhân lực, giảm thời gian, hạn chế sai sót. Tuy nhiên , vẫn
cần phải thao tác từng testcase với việc xây dựng kịch bản bởi script và hầu như
việc đó luôn đòi hỏi người kiểm thử phải có khả năng về lập trình.
Đề tài “NGHIÊN CỨU - ỨNG DỤNG PHƯƠNG PHÁP VÀ CÔNG CỤ KIỂM
THỬ PHẦN MỀM TỰ ĐỘNG” nhằm đưa ra cái nhìn tổng quan về lĩnh vực kiểm
thử tự động, giới thiệu về một số loại công cụ kiểm thử. Và ứng dụng Selenium
Webdriver để xây dựng một phần mềm kiểm thửtự động website đáp ứng được nhu
cầu của người dùng, đảm bảo được tính chính xác của công cụ kiểm thử và đặc
biệt có thể áp dụng cho những người không có nhiều kiến thức về lập trình.
Nội dung luận văn bao gồm :
Chương 1 : Tìm hiểu tổng quan về kiểm thử tự động và công cụ tự động
Chương 2 : Tự động hóa kịch bản kiểm thử sử dụng Selenium
Chương 3 : Triển khai và kiểm thử hệ thống
Chương 4 : Đánh giá kết quả
11
PHẦN NỘI DUNG
CHƯƠNG I : TÌM HIỂU TỔNG QUAN VỀ KIỂM THỬ TỰ ĐỘNG VÀ
CÔNG CỤ TỰ ĐỘNG
1. Ý nghĩa, khái niệm kiểm thử tự động phần mềm
1.1.
Kiểm thử tự động phần mềm là gì
Kiểm thử tự động phần mềm là thực hiện kiểm thử phần mềm bằng một
chương trình đặc biệt với rất ít hoặc không có sự tương tác của con người.Đó là
quá trình thực hiện một cách tự động các bước trong một kịch bản kiểm thử . Công
cụ kiểm thử tự động có thể lấy dự liệu từ file bên ngoài (excel, csv, …) nhập vào
ứng dụng, so sánh kết quả mong đợi (từ excel, csv) với kết quả thực tế và xuất ra
báo cáo kết quả kiểm thử.. Nó giúp các kỹ sư kiểm thử (người kiểm thử) không phải
lặp đi lặp lại các bước nhàm chán
1.2.
Tại sao cần phải kiểm thử tự động phần mềm
Kiểm thử phần mềm tự động với mục đích :
Giảm bớt công sức và thời gian thực hiện quá trình kiểm thử
Tăng độ tin cậy.
Giảm sự nhàm chán cho con người.
Rèn luyện kỹ năng lập trình cho kiểm thử viên.
Giảm chi phí cho tổng quá trình kiểm thử.
Khi nào cần kiểm thử tự động phần mềm?
Không đủ tài nguyên:
o Những trường hợp kiểm thử cần thực hiện nhiều lần, thường xuyên phải thực
hện regression test, một số lượng testcase lớn cần thực hiện trong một thời
gian ngắn .
o Kiểm thử cần thực hiện ở nhiều môi trường khác nhau .
o
Những project có tính ổn định, đặc điểm kĩ thuật được xác định trước, test
màn hình chức năng không thay đổi trong tương lai.
o
Những trường họp kiểm thử xác nhận hoạt động cơ bản (di chuyển giữa các
màn hình).
12
o Kiểm tra sự kết hợp của nhiều giá trị đầu vào ở một bước nào đó.
o Kiểm tra nhiều màn hình của dữ liệu đầu vào.
Kiểm tra hồi quy: Nâng cấp phần mềm, kiểm tra lại các tính năng đã chạy tốt và
những tính năng đã sửa. Tuy nhiên, việc này khó đảm bảo về mặt thời gian.
Kiểm tra khả năng vận hành phần mềm trong môi trường đặc biệt:
o Đo tốc độ trung bình xử lý một yêu cầu của Web server.
o Xác định số yêu cầu tối đa được xử lý bởi Web Server.
o Xác định cấu hình máy thấp nhất mà phần mềm vẫn có thể hoạt động tốt
2. Quy trình kiểm thử tự động phần mềm
2.1.
Mô hình chung của kiểm thử tự động phần mềm
Kiểm thử tự động phần mềm bao gồm một chuỗi các quá trình, các hoạt động,
thao tác được quy tụ với nhau để thực hiện phần mềm cần kiểm thử và ghi lại kết
quả kiểm thử.
Specification
Test data
generator
Source code
Test
manager
Test data
Ocracle
Dynamic
analyser
Program
being tested
Test result
Test
predictions
Execution
report
File
comprator
Simulator
Report
generator
Bảng 1 :Mô hình chung của kiểm thử tự động phần mềm
13
Test results
report
Trong đó, các công cụ được dùng để tự động hóa quy trình kiểm thử trong mô hình
kiểm thử thực hiện các chức năng:
Test Manager: quản lý việc thực hiện các kiểm thử của chương trình, theo dõi dữ
liệu kiểm thử, kết quả mong đợi và các chức năng, tiện ích của chương trình
được kiểm thử.
Test data generator: sinh dữ liệu kiểm thử cho chương trình .
Oracle: tạo các phán đoán của kết quả mong đợi. Chú ý, ở đây không phải là cơ
sở dữ liệu .
Oracle File comparator: Đối chiếu kết quả kiểm thử chương trình với kết quả
kiểm thử trước đó và ghi lại sự khác nhau vào tài liệu.
Report generator: cung cấp các mẫu báo cáo và các tiện ích cho kết quả kiểm
thử .
Dynamic analyzer: thêm mã cho chương trình để tính lượng thời gian mỗi lệnh
được thực hiện.
Simulator: mô phỏng môi trường kiểm thử cho sản phẩ m phần mềm.
2.2.
Quy trình kiểm thử tự động
Bảng dưới đây mô tả các bước của quá trình kiểm thử tự động
STT
1
Bước thực hiện
Tạo kịch bản kiểm thử
Mô tả
Giai đoạn này dùng công cụ kiểm thử để
ghi lại các thao tác lên phần mềm cần kiểm
tra và tự động sinh ra các kịch bản kiểm
thử
2
Chỉnh sửa kịch bản kiểm thử
Chỉnh sửa kịch bản kiểm thử thực hiện
kiểm tra theo đúng yêu cầu đặt ra . Cụ thể,
là làm theo các trường hợp kiểm thử cần
thực hiện
14
3
Chạy kịch bản kiểm thử
Chạy kịch bản kiểm thử để kiểm tra phần
mềm có đưa ra đúng như kết quả mong
muốn không
Đánh giá kết quả
4
Đánh giá kết quả sau khi chạy kịch bản
kiểm thử
Bảng 2 : Các bước thực hiện kiểm thử tự động
3. Một số công cụ kiểm thử phần mềm tự động
3.1.
Nghiên cứu công cụ kiểm thử tự động chức năng bằng QuickTest
Professional
Quick Test Professional là công cụ kiểm thử dùng để kiểm tra chức năng
(functional test) và cho phép thực hiện kiểm tra hồi qui (regression test) một cách tự
động. Đây cũng là một công cụ ứng dụng phương pháp Keywork-driven – một kỹ
thuật scripting trong kiểm thử tự động hiện đại cho phép kiểm thử viên bổ sung
testcase bằng cách tạo file mô tả cho nó mà không cần chinh sửa hay bổ sung bất cứ
script nào.
3.1.1. Loại phần mềm hỗ trợ
QTP hỗ trợ nhiều loại phần mềm:
Ứng dụng windowns chuẩn/win 32.
Ứng dụng web theo chuẩn HTML/XML chạy trên nhiều trình duyệt.
Sử dụng Visual basic, hỗ trợ Unicode.
Một số chương trình khác đòi hỏi cài đặt thêm các thư viện.
3.1.2. Các thành phần quan trọng của QTP
Action
Giống như hàm hoặc thủ tục trong các ngôn ngữ lập trình khác, Action ghi lại
các bước thực hiện kiểm thử tự động và nó có thể được sử dụng lại nhiều lần.
Trong một test script có thể có nhiều Action.
Data table
15
Nơi lưu dữ liệu phục vụ cho kiểm thử tự động. Một test script sẽ có một Data
Table được dùng chung cho tất cả các Action. Bên cạnh đó, mỗi Action cũng có
một Data Table cho riêng mình.
Object Repository (OR)
Cấu trúc theo dạng cây, mô tả các đối tượng trong phần mềm được kiểm tra.
Đây được xem là cầu nối để test script tương tác với phần mềm được kiểm tra. Khi
ra lệnh cho QTP ghi lại các thao tác người dùng lên phần mềm thì trong OR sẽ tự
động phát sinh thành phần đại diện cho những đối tượng trên phần mềm vừa được
thao tác. OR có thể tổ chức thành 2 loại, một loại dùng chung cho nhiều test script,
loại khác dùng theo từng Action. Để xem OR, chọn menu Tools > Object
Repository.
Checkpoint
Có thể hiểu là nơi kiểm tra trong test script, khi chạy nó sẽ thực hiện so sánh
kết quả thực tế khi kiểm tra phần mềm với kết quả mong đợi. Sau khi tiến hành so
sánh QTP sẽ tự động ghi lại kết quả vào Test Results (nơi lưu kết quả khi chạy test
script).
3.1.3. Ưu , nhược điểm của QTP
Ưu điểm
Dễ sử dụng, bảo trì, tạo test script nhanh, cung cấp dữ liệu kiểm tra rõ ràng và dễ
hiểu.
Hỗ trợ làm việc theo nhóm thông qua sự chia sẻ thư viện và thống nhất quản lý
object repository.
Thực hiện kiểm thử tự động nhiều trình duyệt cùng một lúc.
Quản lý các điều kiện kiểm thử, xử lý ngoại lệ, cho phép kiểm thử hướng dữ liệu
tốt.
Nhược điểm
QTP không thể nhận ra các đối tượng đã được người dùng tùy chỉnh và một số
đối tượng phức tạp khác.
QTP chỉ chạy trên môi trường window .
16
QTP mất phí nên công cụ này không được sử dụng rộng rãi.
3.2.
Nghiên cứu công cụ kiểm thử hiệu năng
3.2.1. Khái quát về kiểm thử hiệu năng
Performance Testing là một loại kiểm thử nhằm xác định mức độ đáp ứng, băng
thông, độ tin cậy hoặc khả năng mở rộng của hệ thống dưới một khối lượng làm
việc truy cập nhất định. Performance Testing thường được sử dụng để:
●
Đánh giá mức độ sẵn sàng của sản phẩm.
●
Đánh giá dựa vào các tiêu chí hiệu suất.
●
So sánh giữa các đặc tính hiệu suất của đa hệ thống hoặc cấu hình hệ thống.
●
Tìm ra nguồn gốc của các vấn đề về hiệu suất.
●
Hỗ trợ điều chỉnh hệ thống.
●
Tìm các mức độ băng thông.
3.2.2. Nghiên cứu về công cụ Load Runner
Đặc điểm
LoadRunner giả lập nhiều người dùng ảo thực hiện các giao dịch cùng một
lúc. Sau đó LoadRunner giám sát các thông số xử lý của phần mềm được kiểm tra.
Kết quả thống kê sẽ được lưu lại và cho phép kiểm thử viên thực hiện phân tích.
Chức năng
Thành phần
Virtual User
Tự động tạo ra VuGen script để lưu lại các thao tác người
Generator
dùng tương tác lên phần mềm. VuGen script này còn được
xem là hoạt động của một người ảo mà LoadRunner giả lập.
Controller
Tổ chức, điều chỉnh, quản lý và giám sát hoạt động kiểm tra
tải. Thành phần này có chức năng tạo ra những tình huống
(scenario) kiểm tra.
Load Generator
Cho phép giả lập hàng ngày người dùng, hoạt động của
17
từng người sẽ được thực hiện theo VuGen script. Kết quả
thực hiện sẽ được thông báo cho Controller.
Analysis
Cung cấp việc xem, phân tích và so sánh các kết quả
Launcher
Nơi tập trung tất cả các thành phần của LoadRunner cho
người dùng .
Bảng 3 : Các thành phần của Load Runner
4.
4.1.
Nghiên cứu công cụ Selenium
Tóm tắt lịch sử Selenium
Selenium được đưa vào sử dụng lần đầu tiên vào năm 2004 khi Jason Huggins
đã thử nghiệm một ứng dụng nội bộ tại ThoughtWorks. Anh ta đã phát triển thư
viện Javascript mà có thể điều chỉnh tương tác với các trang, cho phép anh ta chạy
tự động đối với nhiều trình duyệt. Thư viện đó cuối cùng trở thành Selenium core,
nằm dưới mọi chức năng của của Selenium Remote Control và selenium IDE.
Năm 2006, một kỹ sư tài năng tại Google tên là Simon Stewart bắt đầu công
việc trên một dự án mà cậu ta gọi là WebDriver. Cho đến năm 2008, Seleium đã
trở thành cộng đồng lớn và hỗ trợ thương mại.
4.2.
Đặc điểm của Selenium
Selenium là bộ công cụ mã nguồn mở, mạnh mẽ, hỗ trợ các ứng dụng trên nền web,
nhiều platform và các trình duyệt phổ biến. Nó gồm nhiều công cụ với cách tiếp cận
khác nhau để hỗ trợ kiểm thử tự động. Bộ công cụ này rất linh hoạt cho phép lựa
chọn các yếu tố giao diện hay so sánh kết quả thí nghiệm dự kiến với thực tiễn.
Selenium hỗ trợ kiểm tra hầu hết trên các trình duyệt phổ biến hiện nay như
Firefox,Internet Explorer, Safari,.. cũng như các hệ điều hành chủ yếu như
Windows, Linux , Mac ,.. và hỗ trợ một số lớn các ngôn ngữ lập trình như C# , Java
, Perl , PHP , Python, Ruby...
Selenium có thể kết hợp thêm với một số công cụ khác như Bromien , Junit nhưng
với người dùng thông thường chỉ cần chạy tự động mà không cần cài thêm các công
cụ bổ trợ.
18
4.3.
Cấu trúc Selenium
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)
Selenium Suite
Selenium
IDE
Selenium
RC
WebDriver
Selenium
Grid
Selenium 2
Hình 1.4.1. Sơ đồ cầu trúc Selenium
4.3.1. Selenium IDE (Integrated Development Environment)
Selenium IDE là công cụ giúp bạn phát triển ca kiểm thử được xây dựng dưới
dạng add-ons của Fire-fox. Nó là cách tiện lợi nhất để xây dựng các ca kiếm thử,
gồm các phần tử giao diện giúp chúng ta có thể lựa chọn thể hiện các thao tác,
không chỉ tiết kiệm thời gian mà còn là cách thông minh để hiểu kịch bản
Selenium.
Bộ công cụ này cung cấp chức năng “thu và chạy lại” Record and Playback. Nhờ
đó người kiểm thử có thể nhanh chóng tạo một bộ kịch bản kiểm tra (test script)
bằng cách trực tiếp “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 câu lệnh “Selenese” ( ngôn ngữ kịch bản được phát triển cho
Selenium IDE và Selenium Core – có dạng bản HTML ) .
19
Sau đó chạy lại các câu lệnh này để kiểm tra. Chức năng 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 gồm
Browser và Web Server như hình:
Test script
containing
selenium
commands
Brower
Web
Server
Hình 1.4.2. Kiến trúc Selenium IDE
4.3.2. Selenium Gird
Selenium Grid cho phép các giải pháp Selenium RC để kiểm tra trên quy mô
lớn và dành cho việc kiểm thử và phải chạy trong nhiều môi trường. Selenium Grid
cho phép chạy các trường hợp kiểm tra song song, tức là các trường hợp kiểm tra
khác nhau có thể chạy tại một thời điểm trên các máy từ xa khác nhau. Điều này có
hai lợi thế. Thứ nhất, trường hợp có bộ dữ liệu kiểm tra lớn hoặc bộ dữ liệu kiểm
tra chạy chậm, tacó thể tăng hiệu suất nó đáng kể bằng cách sử dụng Selenium
Grid tới việc phân chia các trường hợp kiểm tra để chạy các trường hợp kiểm tra
khác nhau tại một thời điểm và trên nhiều máy khác nhau.
Như vậy, nếu chạy các trường hợp kiểm tra trên nhiều môi trường, ta có thể hỗ
trợ các máy từ xa khác nhau và thực hiện chúng tại một thời điểm. Trong mỗi
trường hợp Selenium Grid cải thiện được nhiều thời gian mà nó phải chạy cho các
20
- Xem thêm -