1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu phát triển phần mềm tự động kiểm định ứng dụng

135 38 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 135
Dung lượng 2,1 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Automation testing rất phong phú trong nhiều lĩnh vực như: Management Testing: quản lý việc phân tích, kiểm tra giám sát quy trình sản xuất, vòng đời và chất lượng sản phẩm; Automated So

Trang 1

TP HỒ CHÍ MINH, tháng 07 năm 2016

TRƯỜNG ĐẠI HỌC BÁCH KHOA

LÊ TRƯỜNG ANH TIẾN

NGHIÊN CỨU PHÁT TRIỂN PHẦN MỀM

TỰ ĐỘNG KIỂM ĐỊNH ỨNG DỤNG

Chuyên ngành: KỸ THUẬT VIỄN THÔNG

Mã số: 60520208

LUẬN VĂN THẠC SĨ

Trang 2

Cán bộ chấm nhận xét 1: TS Lê Đăng Quang

2 TS Huỳnh Phú Minh Cường

3 TS Lê Đăng Quang

Trang 3

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên: LÊ TRƯỜNG ANH TIẾN MSHV: 13461249

Ngày, tháng, năm sinh: 26/01/1980 Nơi sinh: TP.HCM

Chuyên ngành: Kỹ thuật Viễn thông Mã số: 60520208

I TÊN ĐỀ TÀI: Nghiên cứu phát triển phần mềm tự động kiểm định ứng dụng

II NHIỆM VỤ VÀ NỘI DUNG

- Xây dựng hệ thống automated software testing: xác định được các thành phần giao diện ứng dụng ghi vào script

- Xây dựng trình biên dịch có thể dịch được các lệnh cơ bản tương tác với ứng dụng

và lệnh điều kiện rẽ nhánh trong script đã lưu

- Ứng dụng thực tế vào việc đo thời gian quay số kết nối của phần mềm softfone đến tổng đài

III NGÀY GIAO NHIỆM VỤ: 06/7/2015

IV NGÀY HOÀN THÀNH NHIỆM VỤ: 10/6/2016

V CÁN BỘ HƯỚNG DẪN : TS LƯU THANH TRÀ

Tp HCM, ngày 10 tháng 6 năm 2016

CÁN BỘ HƯỚNG DẪN

TS LƯU THANH TRÀ

CHỦ NHIỆM BỘ MÔN ĐÀO TẠO

TS HUỲNH PHÚ MINH CƯỜNG TRƯỞNG KHOA

TS ĐỖ HỒNG TUẤN

Trang 4

Tôi xin chân thành bày tỏ lòng biết ơn sâu sắc đến thầy TS Lưu Thanh Trà đã trực tiếp hướng dẫn, tận tình chỉ bảo và tạo mọi điều kiện thuận lợi nhất, giúp đỡ tôi trong quá trình thực hiện Luận văn này

Chân thành cảm ơn quý thầy cô bộ môn Kỹ thuật Điện tử - Viễn thông Trường Đại học Bách khoa Tp Hồ Chí Minh đã hết lòng giảng dạy, truyền đạt kiến thức và giúp đỡ tôi trong suốt thời gian học tập tại trường

Chân thành cám ơn Phòng Đào tạo Sau đại học, Trường Đại học Bách khoa

Tp Hồ Chí Minh đã tạo điều kiện tốt cho tôi về trang thiết bị và tài liệu học tập trong suốt khóa học

Chân thành cám ơn các bạn học viên cao học và gia đình đã ủng hộ, giúp đỡ tôi trong học tập và thực hiện Luận văn này

Tp.HCM, ngày 10 tháng 6 năm 2016

KS Lê Trường Anh Tiến

Trang 5

cao hiệu suất hoạt động, tiết kiệm nguồn lực thời gian, chi phí và con người được ưu tiên hàng đầu Do đó xuất hiện khái niệm automated testing, dùng để chỉ việc tự động hóa quy trình thao tác kiểm định, kiểm tra ứng dụng hoặc tự động hóa các quy trình lặp lại lãng phí nhiều thời gian

Automation testing rất phong phú trong nhiều lĩnh vực như: Management Testing: quản lý việc phân tích, kiểm tra giám sát quy trình sản xuất, vòng đời và chất lượng sản phẩm; Automated Software Testing: tự động kiểm tra, kiểm định theo quy trình được lập trình trước trên nhiều nền tảng khác nhau; Performing Testing: kiểm tra đánh giá tính ổn định, độ tin cậy và khả năng đáp ứng của hệ thống; Security Testing: kiểm tra, phát hiện lỗi và đánh giá khả năng bảo mật của hệ thống…

Đề tài nghiên cứu phát triển một hệ thống automated testing cơ bản, có thể bắt được các thành phần giao diện ứng dụng lưu vào file script Đồng thời xây dựng một trình biên dịch yêu cầu hiểu được nội dung cú pháp và các lệnh của ngôn ngữ script, có thể lập trình file script để thay đổi tương tác tùy theo đáp ứng trả về trên ứng dụng cần test Hệ thống được ứng dụng để tự động test đáp ứng thời gian quay số và kết nối của phần mềm softphone voice ip đến tổng đài Hệ thống chỉ sử dụng các thư viện có sẵn trong Net của Microsoft Mã nguồn của phần mềm sẽ được công khai để mọi người có thể sử dụng phát triển thêm hoặc dùng cho mục đích riêng của mình Nội dung của luận văn có 4 chương:

Chương 1: GIỚI THIỆU

Chương 2: LÝ THUYẾT TỔNG QUAN VÀ TÌNH HÌNH NGHIÊN CỨU

Chương 3: CẤU TRÚC GIẢI THUẬT HỆ THỐNG VÀ KẾT QUẢ THỰC HIỆN Chương 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Trang 6

operating efficiency, resource saving time, costs and people are top priorities Hence the concept of automated testing appears, refers to the process automation expertise

to manipulate and examine applications or automate repetitive processes to avoid wasting much time

Automation testing is very rich in many fields such as: Management Testing: management analysis and monitoring production processes, lifecycle and product quality; Automated Software Testing: automatic inspection, according to pre-programmed process on many different platforms; Performing Testing: test evaluated the stability, reliability and the ability of the system to meet; Security Testing: checking, error detection and assessment of the security of the system

This thesis research and develope an automated testing system basically can get the application interface components stored in script files At the same time build a compiler required to understand the content of the command syntax language and script, the script file can be programmed to change depending on the response interactions returned on the need to test applications The system is used to automatically test the response time of the dial and connect to software IP PBX softphone voice The system uses the library only available in Microsoft Net The source code of the software will be made public so that people can use to develop more for their own purposes

The content of the thesis has four chapters:

Chapter 1: INTRODUCTION

Chapter 2: THEORY AND OVERVIEW OF RESEARCH

Chapter 3: SYSTEM ALGORITHM STRUCTURE AND RESULTS OF IMPLEMENTATION

Chapter 4: CONCLUSIONS AND FUTURE

Trang 7

sao chép kết quả trong bất cứ tài liệu hay bài báo nào đã công bố trước đây Luận Văn được thực hiện dưới sự hướng dẫn khoa học của thầy TS Lưu Thanh Trà

Các số liệu, các kết luận nghiên cứu được trình bày trong Luận Văn hoàn toàn trung thực Luận Văn có tham khảo và sử dụng các tài liệu được đăng tải trên các tạp chí, bài báo và trang web được đề cập trong phần tài liệu tham khảo

Tôi xin hoàn toàn chịu trách nhiệm với những lời cam đoan nói trên

Tp.HCM, ngày 10 tháng 06 năm 2016 Học viên thực hiện

Ký tên

Lê Trường Anh Tiến

Trang 8

MỤC LỤC

NHIỆM VỤ LUẬN VĂN THẠC SĨ iii

LỜI CẢM ƠN iv

TÓM TẮT LUẬN VĂN v

ABSTRACT vi

LỜI CAM ĐOAN vii

MỤC LỤC 1

DANH MỤC HÌNH VẼ 5

DANH MỤC BẢNG BIỂU 7

DANH MỤC CÁC TỪ VIẾT TẮT 8

Chương 1 : Giới thiệu 9

1.1 Tổng quan 9

1.2 Mục đích nghiên cứu đề tài 10

1.2.1 Yêu cầu 10

1.2.2 Tính năng 11

1.2.3 Độ phức tạp 12

1.2.4 Mở rộng 12

1.2.5 Ứng dụng 12

1.3 Phạm vi nghiên cứu và phương pháp nghiên cứu 12

1.3.1 Phạm vi nghiên cứu 12

1.3.2 Phương pháp nghiên cứu 13

Chương 2 : Lý thuyết tổng quan và tình hình nghiên cứu 14

2.1 Giới thiệu công nghệ Automation trên Windows 14

Trang 9

2.1.1 Lịch sử 15

2.1.2 Động lực và mục tiêu 15

2.1.3 Kỹ thuật tổng quan 15

2.1.4 Các thành phần (Elements) 17

2.1.5 Cây element (Element Tree) 18

2.1.6 Loại điều khiển (Control Types) 19

2.1.7 Các kiểu điều khiển (Control Patterns) 21

2.1.8 Các đặc tính (Properties) 23

2.1.9 Sự kiện (Events) 26

2.1.10 Kiểu text (Text Pattern) 27

2.1.11 UI Automation cho kiểm thử tự động 27

2.2 Giới thiệu công nghệ Automation trên Web 28

2.2.1 Tự động hóa hay không? 28

2.2.2 Giới thiệu Selenium 29

2.2.3 Bộ công cụ Selenium 29

1 Selenium 2 (Selenium WebDriver) 29

2 Selenium 1 (Selenium RC hoặc Remote Control) 30

3 Selenium IDE 30

4 Selenium Grid 30

2.2.4 Hỗ trợ trình duyệt 30

2.2.5 Ứng dụng thực tế với Selenium WebDriver 31

1 Test case 31

2 Cách thực hiện 33

3 Kết quả 35

Trang 10

2.2.6 Ứng dụng thực tế với Selenium IDE 35

1 Test Case 35

2 Cách thực hiện 35

3 Kết quả 36

2.3 Giới thiệu và so sánh về các hệ thống testing trong nhiều lĩnh vực khác nhau trên thế giới hiện nay 37

2.3.1 HP Quick Test Professional (QTP) 38

2.3.2 Selenium 39

2.3.3 So sánh giữa QTP và Selenium 40

2.4 Giới thiệu trình biên dịch (compiler): 42

2.4.1 Giới thiệu 42

2.4.2 Ngôn ngữ và cú pháp 45

2.4.3 Ứng dụng trình biên dịch vào đề tài 49

Chương 3 : Cấu trúc giải thuật chương trình và kết quả thực hiện 52

3.1 Giới thiệu giao diện 52

3.1.1 Menu chính 52

3.1.2 Tab UI Elements 53

3.1.3 Tab Logs 57

3.1.4 Tab Code 58

3.1.5 Tab Options 59

3.2 Cấu trúc chương trình 60

3.2.1 Phần bắt UI Element 61

3.2.2 Phần trình biên dịch 65

1 Hàm RunApp 72

Trang 11

2 Hàm GetID: 72

3 Hàm PushID: 72

4 Hàm ShowID: 72

5 Hàm SetID: 73

6 Hàm WaitID: 73

3.3 Kết quả thực hiện 73

3.3.1 Tets ứng dụng calculator của Windows 73

3.3.2 Test ứng dụng Softphone 3CX 75

Chương 4 : Kết luận và hướng phát triển 78

4.1 Kết luận 78

4.1.1 Kết quả đạt được 78

4.1.2 Những vấn đề còn hạn chế 78

4.2 Hướng phát triển 79

PHỤ LỤC: CODE LẬP TRÌNH 80

1 Class Form1 80

2 Class AutomationExtension 85

3 Class Compiler 104

4 Class CRC32 123

5 Class DrawRectangle 126

TÀI LIỆU THAM KHẢO 128

Trang 12

DANH MỤC HÌNH VẼ

Hình 2.1: Mô hình kỹ thuật tổng quan UIA 16

Hình 2.2: Mô tả một cửa sổ ứng dụng cơ bản và một số UI Element của nó 18

Hình 2.3: Mô hình cây UI Elements với gốc cây (root) là Desktop 19

Hình 2.4: Các properties của một UI Element thực tế, là một nút nhấn (button) của ứng dụng Calculator 25

Hình 2.5: Màn hình đăng nhập dùng Selenium WebDriver 32

Hình 2.6: Lấy các Element dùng Selenium WebDriver 32

Hình 2.7: Xác định Element trên trình duyệt 33

Hình 2.8: Add Selenium WebDriver vào ứng dụng 34

Hình 2.9: Kết quả thực tế dùng Selenium WebDriver 35

Hình 2.10: Kết quả thực tế dùng Selenium IDE 37

Hình 2.11: Hệ thống biên dịch mutipass 44

Hình 2.12: Front ends và back ends 45

Hình 2.13: Cấu trúc của biểu thức 47

Hình 3.1: Giao diện chương trình 52

Hình 3.2: Giao diện tab UI Elements 53

Hình 3.3: Cấu trúc cây Element của ứng dụng Calculator 54

Hình 3.4: Chuỗi ID xác định một UI Element 55

Hình 3.5: Menu hiển thị các lựa chọn tương tác cho một UI Element 56

Hình 3.6: Các Properties của một UI Element 57

Hình 3.7: Giao diện của tab Logs 57

Trang 13

Hình 3.8: Giao diện tab Code 58

Hình 3.9: Giao diện tab Options 59

Hình 3.10: Tương quan giữa các Class 61

Hình 3.11: Ví dụ highlight nút số 9 của ứng dụng Calculator 62

Hình 3.12: Lựa chọn các giá trị Properties để xác định một UI Element 63

Hình 3.13: Sơ đồ khối của trình biên dịch 65

Hình 3.14: Test trên ứng dụng Calculator 74

Hình 3.15: Giao diện của ứng dụng softphone 3CX 76

Hình 3.16: Kết quả test trên ứng dụng softphone 3CX 77

Trang 14

DANH MỤC BẢNG BIỂU

Bảng 2.1: Các thành phần của UIA 17

Bảng 2.2: Các loại điều khiển (Control Types) của UI Element 21

Bảng 2.3: Các kiểu điều khiển (Control Pattern) của UI Element 23

Bảng 2.4: Các Properties của một UI Element 25

Bảng 2.5: So sánh giữa HP QTP và Selenium 41

Trang 15

DANH MỤC CÁC TỪ VIẾT TẮT

MSAA Microsoft Active Accessibility

IDE Integrated Development Environment

JSON Java Script Object Notation

Trang 16

Chương 1: Giới thiệu

Chương 1 mục 1.1 giới thiệu tổng quan về khái niệm automated testing Mục 1.2 trình bày mục đích nghiên cứu của đề tài, các yêu cầu đặt ra, các tính năng đã đạt được, cũng như khả năng mở rộng trong tương lai Mục này có một số từ thuật ngữ liên quan được trình bày chi tiết trong chương 2

Kiểm tra yêu cầu việc đầu tư đáng kể tiền bạc và nguồn nhân lực Dùng công

cụ kiểm tra tự động có thể ghi nhận lại quá trình kiểm tra và chạy lại nếu có yêu cầu Một khi việc kiểm tra được tự động hóa, không cần có sự can thiệp của con người

Tại sao dùng test automation:

• Kiểm tra thủ công tốn thời gian, chi phí và nguồn lực

• Khó khăn để kiểm tra nhiều ứng dụng một lúc thủ công

• Tự động không yêu cầu sự can thiệp của con người, có thể chạy bất cứ lúc nào (chạy qua đêm chẳng hạn)

• Kiểm tra tự động tăng tốc độ kiểm tra ứng dụng, tăng phạm vi kiểm tra

• Kiểm tra thủ công có thể dẫn đến sự lặp lại nhàm chán và phát sinh lỗi

Các trường hợp có thể kiểm tra tự động:

• Các trường hợp kiểm tra có tính lặp lại

• Các trường hợp kiểm tra khó thực hiện thủ công hoặc rất chán ngắt cho con người

• Các trường hợp kiểm tra tiêu tốn quá nhiều thời gian

Các trường hợp không thích hợp cho việc kiểm tra tự động:

• Các công việc mới và chưa thực hiện thủ công ít nhất một lần

• Các công việc yêu cầu thay đổi thường xuyên

Trang 17

Các lợi ích của việc kiểm tra tự động:

• Nhanh hơn kiểm tra thủ công rất nhiều lần

• Kết quả đáng tin cậy

• Kết quả đảm bảo tính nhất quán

• Tiết kiệm thời gian và tiền bạc

• Đảm bảo sự chính xác cao

• Không cần sự can thiệp của con người

• Nâng cao hiệu suất

• Các kịch bản kiểm tra có thể sử dụng lại

• Có thể kiểm tra một cách thường xuyên

1.2 Mục đích nghiên cứu đề tài

Có nhiều ứng dụng test automation hiện nay trên thị trường rất mạnh và nhiều tính năng phong phú Tuy nhiên, các phần mềm này có thu phí bản quyền hàng năm

và chi phí sử dụng rất đắt Mục đích nghiên cứu của đề tài là xây dựng ứng dụng test automation đơn giản nhưng hiệu quả Đáp ứng yêu cầu cơ bản của một hệ thống tự động kiểm định, kiểm tra nhưng phần mã nguồn mở, công khai cho mọi người Có thể dựa vào nghiên cứu và sử dụng mã nguồn này để từ đó phát triển thêm, tạo nên một hệ thống hoàn thiện sau này

1.2.1 Yêu cầu

Có nhiều loại test automation khác nhau trong nhiều lĩnh vực khác nhau Mục đích nghiên cứu của đề tài là xây dựng một hệ thống test automation trên ứng dụng Windows gồm 2 phần chính:

• Phần bắt các UI Element (User Interface Element) trên ứng dụng test một cách chính xác, kết hợp với một số lệnh để tương tác với Element này tạo thành một kịch bản (script) để tùy biến thực hiện nhiều việc khác nhau, kết hợp với lệnh điều kiện If tùy theo giá trị thực tế trả về như thế nào sẽ có hành động khác nhau phù hợp Script là ngôn ngữ được thể hiện với những câu lệnh đơn giản và lưu ở định dạng văn bản dễ đọc Ví dụ test automation trên web: tự động điền username, điền password và nhấn nút đăng nhập

Trang 18

trên một website Tùy theo giá trị trả về là đăng nhập thành công hay thất bại ta sẽ có các bước tiếp theo khác nhau

• Phần biên dịch, đọc và phân tích các lệnh từ file script Trình biên dịch thực hiện chức năng phân tích từ vựng và phân tích cấu trúc ngữ pháp của từng dòng lệnh, từ đó chạy các dòng lệnh trong file scrip theo nội dung yêu cầu Đồng thời cũng có hệ thống logs ghi nhận lại các bước chạy thành công hoặc thất bại để người sử dụng kiểm tra và xử lý

• Xây dựng các UI Element theo cấu trúc cây phân nhánh với gốc là desktop

• Xây dựng được một trình biên dịch gồm có phần phân tích từ vựng, phân

tích cú pháp với cấu trúc lệnh rẽ nhánh có điều kiện If, kết hợp với một số

lệnh tương tác cơ bản với UI Element

• Có hệ thống logs để lưu lại quá trình biên dịch nhằm mục đích kiểm tra và xác định lỗi

Trang 19

1.2.3 Độ phức tạp

Để xây dựng một hệ thống test automation hoàn chỉnh, yêu cầu nhận diện, xác định và tương tác được tất cả các kiểu điều khiển (Control Pattern) của các thành phần UI Element như bảng 2.1

Phần trình biên dịch yêu cầu nhiều lệnh khác nhau để tương tác với mỗi UI Element khác nhau, cùng với nhiều lựa chọn và xuất kết quả báo cáo

Có một hệ thống báo cáo hoàn chỉnh, chi tiết để hỗ trợ người sử dụng

Mở rộng việc ứng dụng hệ thống test automation cho nhiều mục đích khác nhau như tự động hóa kiểm định sản phẩm phần mềm, tự động hóa các chương trình ứng dụng trên Windows, các ứng dụng hỗ trợ người dùng, …

1.3 Phạm vi nghiên cứu và phương pháp nghiên cứu

1.3.1 Phạm vi nghiên cứu

Giới hạn đối với các ứng dụng chạy trên môi trường Windows nền tảng WinForm, Dot Net và Windows Presentation Foundation (WPF)

Trang 20

Giới hạn thao tác đối với các điều khiển Control Type dạng nút nhấn (Button)

và trường Edit box dạng text

Đối với trình biên dịch, xây dựng một số lệnh cơ bản để tương tác với ứng

dụng cần test như: RunApp, GetID, PushID, WaitID, SetID, ShowID và lệnh điều kiện

rẽ nhánh If

1.3.2 Phương pháp nghiên cứu

Dùng công cụ lập trình Visual C# trong bộ Microsoft Visual Studio 2015, chỉ

sử dụng các thư việc sẵn có của Microsoft Ứng dụng chạy yêu cầu máy tính cài Net Framework 4.0 trở lên (tất cả các máy sử dụng hệ điều hành Windows 7 trở đi đều được cài sẵn)

Đề tài được phát triển bởi tham khảo các tài liệu nghiên cứu, các sách kỹ thuật liên quan được giới thiệu trong phần tài liệu tham khảo; diễn đàn cho các nhà phát triển ứng dụng của công ty Microsoft

Trang 21

Chương 2: Lý thuyết tổng quan và tình hình nghiên cứu

Trong lĩnh vực automated software testing có hai mảng lớn là kiểm định tự động các ứng dụng trên nền Windows và trên nền Web Chương 2 mục 2.1 trình bày chi tiết công nghệ User Interface Automation (UIA) của Microsoft trên nền Windows

mà đề tài nghiên cứu Tất cả các từ thuật ngữ viết tắt trong mục này được công ty Microsoft định nghĩa và sử dụng trong các tài liệu kỹ thuật của họ

Mục 2.2 trình bày hệ thống automation mã nguồn trên nền Web là Selenium cũng như một số ví dụ ứng dụng hệ thống này trong thực tế Mục 2.3 so sánh các đặc điểm, tính năng, ưu khuyết điểm giữa hai hệ thống automated testing rất nổi tiếng hiện nay, HP Quick Test Pro là hệ thống được thương mại hóa và Selenium là một hệ thống mã nguồn mở

Đối với một hệ thống automated testing, sau khi ghi nhận lại các thành phần giao diện của ứng dụng và các tương tác trên các thành phần này thành các dòng lệnh lưu vào một kịch bản dạng text đơn giản (file script), hệ thống cần phải có một trình biên dịch để dịch ngược lại các lệnh và thực thi các lệnh theo yêu cầu Do đó, mục 2.4.1 chương 2 giới thiệu thế nào là một trình biên dịch cơ bản, mục 2.4.2 trình bày cách ứng dụng trình biên dịch vào hệ thống automated testing mà đề tài đang xây dựng

2.1 Giới thiệu công nghệ Automation trên Windows

Công nghệ User Interface Automation (UIA) kế thừa MS Active Accessibility (MSAA) của Microsoft, cung cấp các truy cập có thể lập trình đến tất cả các thành phần giao diện người dùng (User Interface element – UI element) trên desktop, nhằm mục đích hỗ trợ người sử dụng (assistive) và tự động hóa kiểm tra (test automation)

Hỗ trợ các ứng dụng được viết trên nền WPF, WinForm, ASP.NET, Win32, trong đó WPF mặc định hỗ trợ UIA

Công cụ hỗ trợ (assistive tool) như công cụ đọc màn hình có thể thông báo cho người dùng (ví dụ như một cửa sổ được mở) hoặc công cụ kiểm tra (automation tool)

có thể dùng UIA để chạy và chờ đến khi kết thúc một loạt thao tác được ghi nhận của người sử dụng

Trang 22

Các thành phần giao diện người dùng (User Interface - UI) có thể được xem như một cấu trúc cây với desktop là gốc, cửa sổ ứng dụng là nhánh trực tiếp, các thành phần của ứng dụng là các nhánh con, mỗi một thành phần được gọi là UI Element hay Automation Element (AE) UI Element hỗ trợ pattern, các pattern khác nhau với các cấu trúc điều khiển khác nhau Ví dụ: nút (button) có invoke pattern, tương đương với click trên nút đó Các edit boxes có value pattern, có thể đặt giá trị cho chúng

UIA cung cấp cách để tìm kiếm trên cây để xác định các nhánh dựa trên các điều kiện cung cấp Ví dụ như tìm một UI Element từ gốc cây (desktop) hoặc từ của

sổ ứng dụng đang chạy UIA cũng hỗ trợ thông báo đến người dùng với các Events (sự kiện) nếu có thao tác tác động lên các Element này

2.1.1 Lịch sử

Năm 2005, Microsoft phát hành UIA như là một kế thừa MSAA Các API UI Automation đã được phát hành như là một phần của NET Framework 3.0, được bao gồm như là một phần của Windows Vista, Windows 7, và Windows Server 2008 SDK

2.1.2 Động lực và mục tiêu

Là một kế thừa của MSAA, UIA nhằm giải quyết các mục tiêu sau đây:

• Tạo sự hiệu quả cho các ứng dụng bên ngoài mà không cần móc (hook) vào các tiến trình của một ứng dụng đích

• Đưa ra thêm nhiều thông tin về các giao diện người dùng

• Cùng tồn tại và sử dụng với MSAA, nhưng không kế thừa những vấn đề tồn tại trong MSAA

• Cung cấp một thay thế cho MSAA nhưng đơn giản hơn để thực hiện triển khai

2.1.3 Kỹ thuật tổng quan

Ở phía client, UIA cung cấp một giao diện NET trong UIAutomationClient.dll

và một giao diện triển khai trực tiếp trong UIAutomationCore.dll

Ở phía server, UIAutomationCore.dll được gắn vào tất cả hoặc một số tiến trình lựa chọn trên desktop để thực lấy dữ liệu theo yêu cầu của phía client Các DLL

Trang 23

cũng có thể tải các UIA plugins (gọi là providers) vào tiến trình chủ của nó để trích xuất dữ liệu sử dụng các kỹ thuật khác nhau Sơ đồ tổng quát được mô tả ở hình 2.1

và ý nghĩa của các thành phần được trình bày ở bảng 2.1

Hình 2.1: Mô hình kỹ thuật tổng quan UIA

UIA có 4 providers chính và các thành phần client, bao gồm:

và client cho các ứng dụng unmanaged client (ứng dụng viết trên nền C++); các ứng dụng unmanaged (client hoặc provider) không yêu cầu các thư viện được liệt kê dưới đây

Managed Provider API

(UIAutomationProvider.dll)

Một tập hợp các định nghĩa giao diện và chức năng được thực hiện bởi các ứng dụng managed UIA (ứng dụng được viết trên nền C# và VB.NET) Providers là các đối

Trang 24

Các thành phần Mô tả

tượng cung cấp thông tin về thành phần giao diện người dùng và đáp ứng với lập trình đầu vào

Managed Client API

(UIAutomationClient.dll)

Một tập hợp các định nghĩa giao diện và các hàm cho các ứng dụng managed client UIA

UIAutomationClientsideProviders.dll Một tập hợp các UIA providers cho điều

khiển Win32 cũ và các ứng dụng MSAA Provider về phía client này hiện có sẵn cho các ứng dụng managed client theo mặc định

Bảng 2.1: Các thành phần của UIA

2.1.4 Các thành phần (Elements)

UIA cho thấy tất cả các mảnh của giao diện người dùng cho các ứng dụng khách (client application) như là một phần tử tự động hóa AE (Automation Element) Các thành phần này được chứa trong một cấu trúc cây, với desktop như là phần tử gốc của cây

Automation Element phơi bày ra các đặc tính (properties) của thành phần UI

mà chúng đại diện Một trong những đặc tính là các loại điều khiển (control types), trong đó xác định sự thể hiện cơ bản của nó và các chức năng như một thực thể nhận biết duy nhất (ví dụ, một nút (button) hoặc hộp kiểm tra (check box))

Ngoài ra, các thành phần này phơi bày các kiểu điều khiển (control patterns) cung cấp các đặc tính (properties) cụ thể với các loại điều khiển của chúng Kiểu điều khiển cũng phơi bày các phương pháp cho phép ứng dụng khách lấy thêm thông tin

về các yếu tố và cung cấp đầu vào Hình 2.2 trình bày ứng dụng Calculator của Windows cùng với một số kiểu điều khiển (Control Type) khác nhau của nó

Ứng dụng khách có thể lọc xem dữ liệu của cây theo kiểu điều khiển hoặc xem kiểu nội dung Ứng dụng cũng có thể tạo các kiểu xem tùy chỉnh

Trang 25

Hình 2.2: Mô tả một cửa sổ ứng dụng cơ bản và một số UI Element của nó

2.1.5 Cây element (Element Tree)

Trong cây UIA có một thành phần gốc đại diện cho dektop hiện thời và các thành phần con đại diện cho các cửa sổ ứng dụng Mỗi thành phần con có thể chứa các thành phần đại diện cho phần của giao diện người dùng như menu, các nút, thanh công cụ, và các hộp tùy chọn Những thành phần này, đến lượt nó, có thể chứa các thành phần khác, chẳng hạn như danh sách các mục

Cây UIA không phải là một cấu trúc cố định và ít khi được nhìn thấy trong toàn bộ của nó bởi vì nó có thể chứa hàng ngàn thành phần khác Các bộ phận của cây được xây dựng khi cần thiết, và cây có thể có những thay đổi như các thành phần được thêm vào, di chuyển, hoặc xóa bỏ Ví dụ hình 2.3 vẽ một cây với gốc là desktop,

có 3 nhánh con là các ứng dụng 1, ứng dụng 2 và ứng dụng 3 Trong ứng dụng 1 có các UI Element là các nhánh con tạo nên một cấu trúc cây

Trang 26

Hình 2.3: Mô hình cây UI Elements với gốc cây (root) là Desktop

2.1.6 Loại điều khiển (Control Types)

Các loại điều khiển UIA là những định danh đã biết có thể được sử dụng để chỉ những loại điều khiển một thành phần cụ thể đại diện, chẳng hạn như một hộp combo (combo box) hoặc một nút (button)

Có một định danh đã biết cho phép công nghệ hỗ trợ (assistive technology - AT) các thiết bị dễ dàng hơn xác định những loại điều khiển có sẵn trong giao diện người dùng (UI) và làm thế nào để tương tác với các điều khiển Một đại diện có thể đọc được của thông tin kiểu diều khiển UIA là sẵn có là đặc tính LocalizedControlType, có thể được tùy biến bằng cách điều khiển hoặc các nhà phát triển ứng dụng

UI Element được phân biệt bởi các kiểu Control Type, có nhiều loại Control Type khác nhau Các Control Types mà UI Automation hỗ trợ ở bảng 2.2:

Trang 27

Control type Định nghĩa

Trang 28

Control type Định nghĩa

Bảng 2.2: Các loại điều khiển (Control Types) của UI Element

2.1.7 Các kiểu điều khiển (Control Patterns)

Các kiểu điều khiển cung cấp một cách để phân loại và phơi bày một chức năng điều khiển độc lập của loại điều khiển hay sự xuất hiện của điều khiển Các kiểu điều khiển khác nhau được mô tả trong bảng 2.3

UIA sử dụng kiểu điều khiển để đại diện cho các hành vi điều khiển chung Ví

dụ, kiểu điều khiển Invoke được sử dụng cho các điều khiển có thể được tác động (như nút nhấn - button) và kiểu điều khiển Scroll được sử dụng cho các điều khiển có thể cuộn (như hộp danh sách – list boxes, danh sách – list views, hoặc hộp combo – combo boxes) Bởi vì mỗi kiểu điều khiển đại diện cho một chức năng riêng biệt, chúng có thể được kết hợp để mô tả đầy đủ các chức năng được hỗ trợ bởi một điều khiển xác định

Control Pattern Mô tả

DockPattern

Được sử dụng cho các điều khiển có thể neo trong một vùng chứa Ví dụ các thanh công cụ (toolbars) hoặc tool palettes

ExpandCollapsePattern

Được sử dụng cho các điều khiển có thể được mở rộng hoặc thu lại Ví dụ, các mục trình đơn (menu items) trong một ứng dụng như menu File

GridPattern

Được sử dụng cho các điều khiển có hỗ trợ chức năng lưới như thay đổi kích thước và di chuyển đến một ô được xác định Ví dụ như cách hiển thị biểu tượng icon lớn

Trang 29

Control Pattern Mô tả

(large icon view) trong Windows Explorer hoặc các bảng đơn giản mà không cần tiêu đề trong Microsoft Word

GridItemPattern

Được sử dụng cho điều khiển có các ô trong lưới Các ô riêng lẻ hỗ trợ các kiểu GridItem Ví dụ, mỗi ô trong Microsoft Windows Explorer trong cách hiển thị dạng chi tiết (detail view)

InvokePattern Được sử dụng cho các điều khiển có thể được tác động,

chẳng hạn như một nút nhấn (button)

MultipleViewPattern

Được sử dụng cho các điều khiển có thể chuyển đổi giữa nhiều cách hiển thị của cùng một thông tin dữ liệu Ví dụ một điều khiển dạng listview, nơi dữ liệu có thể được hiển thị ở chế độ thu nhỏ (thumbnail), tiêu đề (title), biểu tượng (icon), danh sách (list), hoặc chi tiết (detail views)

RangeValuePattern

Được sử dụng cho điều khiển có một khoảng các giá trị

có thể được đặt cho điều khiển này Ví dụ, một điều khiển spinner thể hiện năm có thể có một khoảng giá trị từ năm

1900 đến năm 2010, trong khi một điều khiển spinner khác thể hiện tháng sẽ có một khoảng giá trị các tháng từ

1 đến 12

ScrollPattern

Được sử dụng cho các điều khiển có thể cuộn Ví dụ, một điều khiển mà có thanh cuộn được kích hoạt khi có nhiều thông tin hơn có thể được hiển thị trong khu vực có thể xem của điều khiển đó

ScrollItemPattern

Được sử dụng cho điều khiển có nhiều mục trong một danh sách có thể cuộn Ví dụ, một điều khiển danh sách như hộp combo box

SelectionPattern Được sử dụng cho điều khiển có thể lựa chọn Ví dụ, hộp

list box hoặc combo box

Trang 30

Control Pattern Mô tả

SelectionItemPattern Được sử dụng cho các mục trong điều khiển có thể lựa

chọn, chẳng hạn như hộp list box và combo box

TablePattern Được sử dụng cho các điều khiển có một lưới cũng như

có thông tin tiêu đề Ví dụ, các bảng tính Microsoft Excel TableItemPattern Được sử dụng cho các mục trong một bảng

TextPattern Được sử dụng cho các điều khiển dạng edit và các tài liệu

trình bày thông tin dạng văn bản

Bảng 2.3: Các kiểu điều khiển (Control Pattern) của UI Element

2.1.8 Các đặc tính (Properties)

UIA phơi bày các đặc tính trên các thành phần UIA và các kiểu điều khiển Các tính chất này cho phép các ứng dụng khách UIA để khám phá thông tin về các

Trang 31

phần của giao diện người dùng (UI), đặc biệt là các điều khiển, bao gồm cả dữ liệu tĩnh và dữ liệu động

Mỗi một UI Element luôn có các thành phần properties như trong bảng hình

4 Tùy theo UI Element đó thuộc loại Control Type nào mà các thành phần properties

sẽ có giá trị khác nhau Bảng 2.4 liệt kê tất cả các đặc tính của một UI Element:

AcceleratorKey Gets a string containing the accelerator key combinations

for the element

AccessKey Gets a string containing the access key character for the

element

AutomationId Gets a string containing the UI Automation identifier (ID)

for the element

BoundingRectangle Gets the coordinates of the rectangle that completely

encloses the element

ClassName Gets a string containing the class name of the element as

assigned by the control developer

ControlType Gets the ControlType of the element

FrameworkId Gets the name of the underlying UI framework

HasKeyboardFocus Gets a value that indicates whether the element has

keyboard focus

HelpText Gets the help text associated with the element

IsContentElement Gets a value that specifies whether the element is a content

element

IsControlElement Gets a value that indicates whether the element is viewed as

a control

IsEnabled Gets a value that indicates whether the user interface (UI)

item referenced by the UI Automation element is enabled IsKeyboardFocusable Gets a value that indicates whether the UI Automation

element can accept keyboard focus

Trang 32

Tên Mô tả

IsOffscreen Gets a value that indicates whether the UI Automation

element is visible on the screen

IsPassword Gets a value that indicates whether the UI Automation

element contains protected content

IsRequiredForForm Gets a value that indicates whether the UI Automation

element is required to be filled out on a form

ItemStatus Gets a description of the status of an item within an element ItemType Gets a description of the type of an item

LabeledBy Gets the element that contains the text label for this

element

LocalizedControlType Gets a description of the control type

NativeWindowHandle Gets the handle of the element's window

Orientation Gets the orientation of the control

ProcessId Gets the process identifier (ID) of this element

Bảng 2.4: Các Properties của một UI Element

Hình 2.4: Các properties của một UI Element thực tế, là một nút nhấn (button) của

ứng dụng Calculator

Trang 33

Trong các properties của một UI Element, ta quan tâm đến một số trường chính như sau:

• AutomationId: là kiểu chuỗi chứa số id của một UI Element, mỗi UI Element có một id duy nhất phân biệt nó với cái khác trong cùng một nhánh Element

• BoundingRectangle: kiểu Rect, gồm các thông số (x, y, width, height) Là

vị trí Element trên màn hình ở tọa độ (x, y), chiều dài và chiều rộng của

• IsControlElement: xác định UI Element có là kiểu điều khiển hay không

• IsEnabled: xác định element này được enable hay disable trên giao diện

• Name: xác định tên của element, lưu ý là một số element không được đặt tên

• ProcessId: xác định ID của process đang chạy Tất cả các UI Element của cùng một ứng dụng có cùng một ProcessId giống nhau Mỗi một ứng dụng khi chạy sẽ được hệ điều hành gán cho một ProcessId riêng biệt và duy nhất, mỗi lần chạy khác nhau sẽ có ProcessId khác nhau Ta có thể sử dụng giá trị ProcessId để tìm ngược lại đường dẫn của ứng dụng bằng hàm Process.GetProcessById(ProcessId).MainModule.FileName

2.1.9 Sự kiện (Events)

Sự kiện thông báo UIA là một tính năng quan trọng cho công nghệ hỗ trợ (AT) như đọc màn hình và phóng to màn hình Những ứng dụng khách UIA theo dõi sự kiện được đưa ra bởi UIA cung cấp xảy ra bên trong UIA, và sử dụng thông tin để thông báo cho người dùng cuối

Hiệu quả được cải thiện bằng cách cho phép các ứng dụng cung cấp dịch vụ

để nâng cao sự kiện chọn lọc, tùy thuộc vào việc ứng dụng khách đã đăng ký vào các

Trang 34

sự kiện, hoặc không gì cả, nếu không có ứng dụng khách đang lắng nghe cho bất kỳ

sự kiện nào

2.1.10 Kiểu text (Text Pattern)

UIA cho thấy nhiều nội dung văn bản, bao gồm định dạng và các thuộc tính phong cách của các điều khiển văn bản trong nền tảng UIA hỗ trợ Những điều khiển này bao gồm trong Microsoft NET Framework TextBox và RichTextBox cũng như tương đương của chúng trong Win32

Phơi bày các nội dung văn bản của một điều khiển được thực hiện thông qua việc sử dụng các kiểu điều khiển TextPattern, đại diện cho các nội dung của vùng chứa văn bản như là một luồng văn bản Đổi lại, TextPattern đòi hỏi sự hỗ trợ của các lớp TextPatternRange để bộc lộ định dạng và thuộc tính phong cách TextPatternRange hỗ trợ TextPattern bởi đại diện cho một khoảng text vùng chứa văn bản với các điểm bắt đầu và điểm cuối Nhiều hay tách rời dòng văn bản có thể được đại diện bởi nhiều hơn một đối tượng TextPatternRange TextPatternRange hỗ trợ chức năng như nhân bản, lựa chọn, so sánh

2.1.11 UI Automation cho kiểm thử tự động

UIA cũng hữu ích như một bộ khung cho việc lập trình truy cập trong các kịch bản thử nghiệm tự động Ngoài việc cung cấp các giải pháp tinh tế hơn cho khả năng truy cập, nó cũng được thiết kế đặc biệt để cung cấp các chức năng mạnh mẽ để kiểm tra tự động

Lập trình truy cập cung cấp khả năng bắt chước, thông qua mã lập trình, bất

kỳ sự tương tác và kinh nghiệm bởi các tương tác người dùng truyền thống UIA cho phép lập trình truy cập thông qua năm thành phần:

• Cây UIA tạo điều kiện cho duyệt thông qua cấu trúc logic của giao diện người dùng cho khả năng truy cập và tự động hóa

• Các thành phần UI (UI Automation Elements) là các phần riêng biệt trong giao diện người dùng

• Các đặc tính tự động hóa UI (UI Automation Properties) cung cấp thông tin cụ thể về các thành phần giao diện người dùng hoặc các kiểu điều khiển (Control Pattern)

Trang 35

• Các kiểu điều khiển tự động hóa UI (UI Automation Control Pattern) xác định một khía cạnh cụ thể của các chức năng của điều khiển hoặc tính năng; chúng có thể bao gồm đặc tính, phương pháp, sự kiện và thông tin cấu trúc

• Các sự kiện tự động hóa UI (UI Automation Events) cung cấp một kích hoạt để đáp ứng với những thay đổi và thông báo các thông tin trong UIA

2.2 Giới thiệu công nghệ Automation trên Web

Rất nhiều phần mềm ứng dụng ngày nay được viết như các ứng dụng dựa trên web để chạy trong một trình duyệt Internet Hiệu quả của việc thử nghiệm các ứng dụng này rất khác nhau giữa các công ty và tổ chức

Trong một thời đại của các quá trình phần mềm tương tác và đáp ứng cao, test automation thường xuyên trở thành một yêu cầu cho các dự án phần mềm, kiểm tra

tự động hóa thường là câu trả lời Kiểm tra tự động có nghĩa là sử dụng một công cụ phần mềm để chạy thử nghiệm lặp lại đối với các ứng dụng được thử nghiệm

Có rất nhiều lợi thế để kiểm thử tự động Hầu hết đều liên quan đến việc lặp lại của các bài kiểm tra và tốc độ mà tại đó các bài kiểm tra có thể được thực thi Có một số công cụ mã nguồn mở và thương mại sẵn sàng cho việc hỗ trợ sự phát triển của kiểm thử tự động Selenium có thể là giải pháp mã nguồn mở được dùng nhiều nhất

Kiểm tra tự động hóa có lợi thế rất lớn để nâng cao hiệu quả lâu dài của quá trình thử nghiệm của một đội ngũ kiểm tra phần mềm Kiểm tra tự động hỗ trợ:

• Kiểm tra lặp lại thường xuyên

• Thông tin phản hồi nhanh chóng đến nhà phát triển

• Lặp đi lặp lại hầu như không giới hạn các trường hợp thực hiện kiểm tra

• Báo cáo các khiếm khuyết được tùy chỉnh

• Tìm các khuyết tật bị bỏ qua bởi các kiểm tra thủ công

2.2.1 Tự động hóa hay không?

Tự động hóa luôn luôn có lợi thế? Khi nào ta nên quyết định tự động hóa? Không phải là luôn luôn thuận lợi để tự động hóa trong các trường hợp thử nghiệm Có nhiều trường hợp khi kiểm tra thủ có thể thích hợp hơn Ví dụ, nếu giao diện người dùng của ứng dụng sẽ thay đổi đáng kể trong tương lai gần, khi đó bất kỳ

Trang 36

tự động hóa có thể cần phải được viết lại Ngoài ra, đôi khi đơn giản là không đủ thời gian để xây dựng tự động hóa kiểm tra Trong ngắn hạn, kiểm tra thủ công có thể có hiệu quả hơn Nếu một ứng dụng có thời hạn chót rất chặt chẽ, hiện nay không có thử nghiệm tự động có sẵn, và nó bắt buộc rằng các thử nghiệm được thực hiện trong một khoảng thời gian đó, thì khi đó kiểm tra thủ công là giải pháp tốt nhất

2.2.2 Giới thiệu Selenium

Selenium là một tập hợp các công cụ phần mềm khác nhau với cách tiếp cận khác nhau để hỗ trợ kiểm thử tự động Hầu hết các kỹ sư đảm bảo chất lượng (QA Engineers) của Selenium tập trung vào một hoặc hai công cụ mà hầu hết đáp ứng nhu cầu của các dự án của họ, tuy nhiên việc học tất cả các công cụ này sẽ cung cấp cho bạn nhiều lựa chọn khác nhau để tiếp cận vấn đề tự động hóa thử nghiệm khác nhau Toàn bộ bộ công cụ tập hợp phong phú các chức năng kiểm tra thiết kế riêng cho nhu cầu của các thử nghiệm của ứng dụng web của tất cả các loại Những hoạt động linh hoạt, cho phép nhiều tùy chọn để định vị các thành phần giao diện người dùng và so sánh kết quả kiểm tra dự kiến đối với hành vi ứng dụng thực tế Một trong những tính năng chính của Selenium là sự hỗ trợ để thực hiện các bài kiểm tra của một người trên nhiều nền tảng trình duyệt khác nhau

2.2.3 Bộ công cụ Selenium

Selenium bao gồm nhiều công cụ phần mềm Mỗi cái có một vai trò cụ thể

1 Selenium 2 (Selenium WebDriver)

Selenium 2 là định hướng tương lai của dự án và sự bổ sung mới nhất cho bộ công cụ Selenium Thương hiệu công cụ tự động hóa mới này cung cấp tất cả các loại tính năng tuyệt vời, bao gồm các API kết hợp và hướng đối tượng cũng như một câu trả lời cho những hạn chế của việc phiên bản cũ

Cả Selenium và nhà phát triển WebDriver đồng ý rằng cả hai công cụ đều có những ưu và rằng việc sáp nhập hai dự án này sẽ tạo ra một công cụ tự động hóa nhiều mạnh mẽ hơn

Selenium 2.0 là sản phẩm của nỗ lực đó Nó hỗ trợ các API WebDriver và các công nghệ nền tảng, cùng với công nghệ Selenium 1 bên dưới API WebDriver cho

Trang 37

sự linh hoạt tối đa trong các thử nghiệm Ngoài ra, Selenium 2 vẫn chạy giao diện Selenium RC của Selenium 1 đối với vấn đề tương thích ngược

2 Selenium 1 (Selenium RC hoặc Remote Control)

Selenium RC là dự án Selenium chính trong một thời gian dài, trước khi WebDriver/Selenium hợp nhất đưa lên Selenium 2, các công cụ mới nhất và mạnh

4 Selenium Grid

Selenium Grid cho phép các giải pháp Selenium RC mở rộng cho các thử nghiệm lớn và dãy thử nghiệm phải được chạy trong nhiều môi trường Selenium Grid cho phép chạy các bài kiểm tra song song, có nghĩa là, các bài kiểm tra khác nhau có thể chạy cùng lúc trên máy từ xa khác nhau Điều này có hai lợi thế Đầu tiên, nếu bạn có một bộ thử nghiệm lớn, hoặc một bộ thử nghiệm chạy chậm, bạn có thể tăng hiệu quả của nó đáng kể bằng cách sử dụng Selenium Grid để chia bộ kiểm tra của bạn để chạy thử nghiệm khác nhau tại cùng một thời gian sử dụng các loại máy khác nhau Ngoài ra, nếu bạn phải chạy bộ kiểm tra của bạn trên nhiều môi trường mà bạn có thể có các máy từ xa khác nhau hỗ trợ và chạy thử nghiệm của bạn trong họ cùng một lúc Trong mỗi trường hợp Selenium Grid cải thiện đáng kể thời gian cần để chạy bằng cách sử dụng xử lý song song

2.2.4 Hỗ trợ trình duyệt

Trong Selenium 2.0, các trình duyệt được hỗ trợ khác nhau tùy thuộc vào việc bạn đang sử dụng Selenium WebDriver hoặc Selenium RC

Trang 38

Selenium WebDriver hỗ trợ các trình duyệt sau cùng với các hệ điều hành mà các trình duyệt này tương thích:

• Google Chrome

• Internet Explorer 7, 8, 9, 10, và 11 trên hệ điều hành Vista, Windows 7, Windows 8 và Windows 10 Tính đến ngày 15/4/2014, IE 6 không còn được hỗ trợ Hỗ trợ chạy các phiên bản 32-bit và 64-bit của trình duyệt

• Firefox: ESR mới nhất, trước ESR, phiên bản hiện tại, một trong những phiên bản trước đó

• Safari

• Opera

• HtmlUnit

• PhantomJs

• Android (với Selendroid hoặc appium)

• iOS (với ios-driver hoặc appium)

Selenium 1.0 và Selenium-RC: hỗ trợ các trình duyệt cũ với tính năng hạn chế

2.2.5 Ứng dụng thực tế với Selenium WebDriver

Trang 39

Hình 2.5: Màn hình đăng nhập dùng Selenium WebDriver

• Lấy giá trị tên học viên và ngành học bằng cách xác định giá trị của các element tương ứng (Hình 2.6) Toàn bộ công việc được thực hiện một cách

tự động, từ bước điền tên đăng nhập, mật khẩu đến lấy giá trị tên và ngành học lưu vào các biến, người dùng không cần thực hiện một thao tác nào

Hình 2.6: Lấy các Element dùng Selenium WebDriver

Trang 40

2 Cách thực hiện

Khác với các hệ thống test automation trên Windows, trên nền web ta xác định các Element dựa theo các thuộc tính của Document Object Model (DOM) như ID, Xpath, CssStyle… Ví dụ ở hình 2.7, dùng addon FirePath trên trình duyệt Firefox, ta

xác định Element tên học viên có chuỗi ID là: //*[@id='header_col3']/div[1]/b

Hình 2.7: Xác định Element trên trình duyệt

Để tích hợp công cụ Selenium WebDriver, đầu tiên tạo một new project tên Selenium, chuột phải vào project chọn “Manage Nuget Packages for Solution…”, chọn và cài gói Selenium.WebDriver như hình 2.8

Ngày đăng: 27/01/2021, 08:18

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w