1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo cuối kỳ tìm hiểu công cụ kiểm thử selenium

36 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Báo Cáo Cuối Kỳ Tìm Hiểu Công Cụ Kiểm Thử Selenium
Tác giả Trương Thị Huyền Trâm - 21020413, Trần Tuấn Nghĩa - 21020549, Phan Thị Nhã Phương - 21020379
Người hướng dẫn ThS. Nguyễn Thị Thu Trang
Trường học Đại Học Quốc Gia Hà Nội
Chuyên ngành Kiểm Thử Và Đảm Bảo Chất Lượng Phần Mềm
Thể loại báo cáo
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 36
Dung lượng 3,06 MB

Cấu trúc

  • I. Tổng quan (4)
    • 1. Thách thức với kiểm thử thủ công (4)
    • 2. Giới thiệu (4)
    • 3. Các tính năng nổi bật của Selenium (5)
    • 4. Tổng quan về các thành phần của Selenium (5)
    • 5. Ưu nhược điểm của Selenium (7)
  • II. Các thành phần của Selenium (7)
    • 1. Selenium IDE (7)
      • 1.1. Giới thiệu (7)
      • 1.2. Định nghĩa (7)
      • 1.3. Giao diện Selenium IDE (8)
      • 1.4. Ưu nhược điểm của Selenium IDE (10)
      • 1.5. Hướng dẫn cài đặt (10)
      • 1.6. Lệnh Selenium IDE (12)
      • 1.7. Sử dụng Selenium IDE (14)
    • 2. Selenium RC (15)
      • 2.1. Giới thiệu (15)
      • 2.2. Định nghĩa (15)
      • 2.3. Kiến trúc (16)
      • 2.4. Ưu nhược điểm (16)
    • 3. Selenium Grid (17)
      • 3.1. Giới thiệu (17)
      • 3.2. Định nghĩa (17)
      • 3.3. Kiến trúc (17)
      • 3.4. Ưu nhược điểm (19)
      • 3.5. Hướng dẫn cài đặt (20)
      • 3.6. Cơ chế hoạt động (20)
    • 4. Selenium Driver (22)
      • 4.1. Giới thiệu (22)
      • 4.2. Định nghĩa (22)
      • 4.3. Kiến trúc (22)
      • 4.4. Ưu nhược điểm (24)
      • 4.5. Hướng dẫn cài đặt (24)
  • III. Kiểm thử trên Selenium (28)
    • 1. Hướng dẫn cài đặt (28)
    • 2. Tiêu chí chọn test case (28)
      • 2.1. Ưu điểm của Automation test (28)
      • 2.2. Tiêu chí chọn test case (29)
    • 3. Demo (30)
  • IV. Mở rộng vấn đề (30)
    • 1. So sánh với các công cụ kiểm thử khác (30)
      • 1.1. So sánh đặc điểm của Katalon Studio với Selenium (30)
      • 1.2. Bảng so sánh ưu nhược điểm (31)
    • 2. So sánh Selenium WebDriver và Selenium Remote Control (32)
    • 3. Lựa chọn công cụ Selenium phù hợp (33)
  • V. Kết luận (35)
  • VI. Tài liệu tham khảo (35)

Nội dung

Thế nhưng lại có 1 số nhược điểm có thể gặpphải: ● Cực kỳ tốn thời gian ● Nguy cơ sai sót cao ● Yêu cầu sự có mặt của tester 24/7 ● Yêu cầu tạo nhật ký thủ công Selenium là một bộ kiểm t

Tổng quan

Thách thức với kiểm thử thủ công

Kiểm thử phần mềm là quá trình quan trọng nhằm phát hiện và sửa chữa lỗi trong phần mềm, đảm bảo rằng sản phẩm đáp ứng đầy đủ các yêu cầu và tiêu chuẩn của khách hàng.

- Kiểm thử là giai đoạn rất quan trọng trong vòng đời phát triển phần mềm.

- Kiểm thử thủ công là một trong những cách cơ bản của kiểm thử phần mềm.

Nó không yêu cầu kiến thức về bất kỳ công cụ kiểm thử nào và có thể kiểm thử bất kỳ ứng dụng nào, nhưng vẫn tồn tại một số nhược điểm cần lưu ý.

● Cực kỳ tốn thời gian

● Nguy cơ sai sót cao

● Yêu cầu sự có mặt của tester 24/7

● Yêu cầu tạo nhật ký thủ công

● Có phạm vi giới hạn

- Chúng ta có thể tự động hóa quá trình kiểm thử Điều đó sẽ làm cho quá trình bớt đơn điệu hơn và Selenium làm được điều này.

Giới thiệu

Selenium được phát triển bởi Jason Huggins vào năm 2004, khi ông tạo ra chương trình JavaScript mang tên "JavaScript Test Runner" để tự động hóa các hành động trong trình duyệt Sau đó, ông đã phát triển mã nguồn mở JavaScript Runner, được đổi tên thành Selenium Core.

Selenium là một bộ kiểm tra tự động mã nguồn mở miễn phí, chuyên dùng cho các ứng dụng web trên nhiều trình duyệt và nền tảng khác nhau Nó không chỉ giúp tự động hóa việc kiểm tra ứng dụng web mà còn hỗ trợ đa nền tảng, cho phép các trường hợp thử nghiệm chạy đồng thời trên Windows, Mac OS, Linux và Solaris Được hỗ trợ bởi các trình duyệt lớn như Chrome, Firefox, IE và Safari, Selenium đã trở thành công cụ kiểm thử tự động hóa hàng đầu, giúp các nhà phát triển tạo ra các bộ công cụ tự động hóa mạnh mẽ và linh hoạt, đồng thời là công nghệ cốt lõi cho nhiều công cụ, API và framework tự động hóa khác.

Selenium là một bộ công cụ phần mềm đa dạng, không chỉ là một công cụ đơn lẻ, nhằm hỗ trợ tự động hóa kiểm tra hệ thống Nó cho phép người dùng viết kịch bản kiểm tra bằng nhiều ngôn ngữ lập trình khác nhau, bao gồm Java, PHP, C#, Ruby và Python.

Các tính năng nổi bật của Selenium

● Hỗ trợ nhiều trình duyệt:

Selenium hỗ trợ nhiều trình duyệt khác nhau (Google Chrome, Mozilla Firefox,

MS Edge, Opera và Safari) để thực thi các test case.

● Khả năng tương thích đa ngôn ngữ

Selenium hỗ trợ nhiều ngôn ngữ lập trình khác nhau (Java, Python, C # Net, Ruby, JavaScript và Kotlin) để viết các trường hợp kiểm tra.

Selenium là phần mềm di động linh hoạt, có khả năng hoạt động trên nhiều hệ điều hành khác nhau như Linux, Mac, UNIX và Windows.

● Selenium hỗ trợ thực hiện kiểm thử song song giúp giảm thời gian và tăng hiệu quả của các kiểm thử.

● Dễ dàng nhận dạng và sử dụng các Web Element

Selenium hỗ trợ xác định các Web Element trên ứng dụng web thông qua các locator, giúp đơn giản hóa việc triển khai các element trong quy trình tự động hóa kiểm thử Ngoài ra, có nhiều Selenium IDE khác nhau mà bạn có thể tích hợp vào website của mình thông qua các extension.

● Khả năng tái sử dụng và các tính năng bổ sung

Tất cả các script hỗ trợ kiểm tra tính tương thích trình duyệt đều được viết với Selenium, cùng với các plugin bổ sung giúp mở rộng phạm vi thử nghiệm ứng dụng và có khả năng tùy chỉnh linh hoạt.

● Không cần cài đặt máy chủ

Bạn không cần cài đặt máy chủ cho Selenium Selenium có thể tương tác trực tiếp với trình duyệt.

● Sử dụng một ngôn ngữ cho các kiểm thử

Selenium sử dụng DSL để kiểm thử các ứng dụng web Ngôn ngữ này bao gồm

200 câu lệnh và là một ngôn ngữ lập trình dễ học.

Selenium cho phép người dùng tự động hóa các tập lệnh kiểm thử trên các thiết bị khác nhau như Android, iPhone, v.v.

Tổng quan về các thành phần của Selenium

Selenium là một bộ phần mềm đa dạng, không chỉ đơn thuần là một công cụ, mà còn đáp ứng nhiều nhu cầu thử nghiệm khác nhau của các tổ chức.

● Selenium Integrated Development Environment (Selenium IDE)

● Selenium Remote Control (Selenium RC)

Hiện tại, Selenium RC và Selenium WebDriver được sáp nhập vào một khuôn khổ duy nhất để tạo thành Selenium 2 (Selenium 1 đề cập đến Selenium RC).

Từ Selenium 2 phát triển dần lên Selenium 3 và Selenium 4 là bản mới nhất hiện nay Tính tới thời điểm hiện tại là 4.4.0 (27/09/2022)

Ưu nhược điểm của Selenium

- Selenium là mã nguồn mở , mọi người có thể download source code về sử dụng, và thay đổi code tùy theo nhu cầu.

Selenium hỗ trợ viết test scripts bằng nhiều ngôn ngữ lập trình như Java, C#, Perl, Python, Ruby và PHP Tuy nhiên, 77% người kiểm thử Selenium chọn Java làm ngôn ngữ chính Lưu ý rằng Selenium IDE không hỗ trợ ngôn ngữ nào, trong khi QTP chỉ cho phép viết bằng VBScript.

- Selenium hỗ trợ nhiều hệ điều hành : Windows, Linux, Macintosh (viết Test Cases có thể deploy ở các hệ điều hành khác)

- Selenium hỗ trợ nhiều trình duyệt lớn (Mozilla, Chrome, IE, Opera, Safari ) (viết Test Cases chung và chỉ có browser driver thay đổi )

- Selenium là công cụ test tự động recording, editing và debugging tests.

- Không được cung cấp Technical support free và tin cậy vì là mã nguồn mở

- Chỉ hỗ trợ các ứng dụng Web

Using Selenium WebDriver can be challenging due to its reliance on manual coding for test cases, as it lacks user-friendly features like recording, checkpoints, and data tables This means that developers must invest time in learning how to write test cases step by step for each task, which can be a barrier for those new to the tool.

- Khó cài đặt môi trường Test Selenium hơn UFT, Silk Test,

- Ít hỗ trợ cho việc Test hình ảnh

- Không có tính năng tích hợp cho Test Manager

Các thành phần của Selenium

Selenium IDE

Shinya Kasatani, một nhà phát triển từ Nhật Bản, đã phát triển Selenium IDE, một phần mở rộng của Firefox cho phép tự động hóa trình duyệt thông qua tính năng ghi lại và phát lại Ý tưởng của ông nhằm tăng tốc quá trình tạo ra các trường hợp thử nghiệm Vào năm 2006, ông đã tặng Selenium IDE cho dự án Selenium, góp phần quan trọng vào sự phát triển của công cụ này.

Selenium Integrated Development Environment (IDE) là framework đơn giản nhất trong bộ Selenium, dễ học và cài đặt như một plugin trình duyệt Nó hỗ trợ lưu test case dưới nhiều định dạng file khác nhau như HTML, Java, PHP Tuy nhiên, do tính đơn giản của nó, Selenium IDE chỉ nên được sử dụng như một công cụ tạo mẫu.

The Selenium IDE toolbar features several tabs, including File, Edit, Action, Options, and Help, each offering various options to facilitate user navigation and enhance usability.

[1] : Nơi bạn tạo nhiều test cases để có thể chạy nối tiếp nhau.

[2] : Chạy theo thứ tự tất cả các test cases đang có trong bảng

[3] : Chạy test case đang được chọn (in đậm) trong bảng

[4] : Tab chuyển giữa giao diện tương tác mặc định và giao diện code.

[5] : Record (ghi) lại những thao tác trên focus tab rồi chuyển chúng thành lệnh của Selenium.

[6] : Ô nhập liệu để bạn có thể thay đổi / chỉnh sửa giá trị của “lệnh” sao cho phù hợp.

Khi chạy nhiều test cases, nếu gặp lỗi, Selenium sẽ bỏ qua test case đó và tiếp tục với các test cases tiếp theo Thông tin về lỗi sẽ được ghi nhận và đánh dấu bằng màu đỏ.

- Bên cạnh đó, trên Toolbar của Selenium có hỗ trợ bạn xuất file test cases ra các ngôn ngữ khác như Java, Python…

1.4 Ưu nhược điểm của Selenium IDE:

- Dễ dàng cài đặt, sử dụng, tiết kiệm thời gian

- Không yêu cầu kinh nghiệm lập trình

- Có thể convert qua các ngôn ngữ lập trình khác như: HTML, Java, C#, Python, Ruby

- Có thể debug, set breakpoint, thêm comment vào script cho dễ đọc

- Chỉ hỗ trợ chạy trên firefox (cần cấu hình để chạy được trên Chrome/ IE)

- Không hỗ trợ biểu thức điều kiện/ vòng lặp (cần cài đặt thêm để chạy được vòng lặp)

- Không hỗ trợ test report (cần cài đặt thêm để hiển thị report)

- Không cho phép đọc dữ liệu từ file: text (.txt), excel (.xls), csv (cần cài đặt thêm để đọc dữ liệu từ file csv/ xml)

- Không hỗ trợ database/ mobile testing (việc này là hơi quá với 1 plugin trình duyệt)

- Khó khăn khi xử lý những case/ workflow phức tạp

Bước 1: Truy cập trang web http://docs.seleniumhq.org/download, lựa chọn phiên bản Selenium IDE cần download.

Bước 2: Click vào link chứa Selenium IDE cần download:

Bước 3: Nhấn Add to Firefox, trình duyệt Firefox sẽ tự động add Selenium IDE

Bước 4: Khởi động lại trình duyệt Firefox sẽ thấy biểu tượng của Selenium IDE xuất hiện như hình bên dưới.

1.6.1 Tổng quan câu lệnh Selenium IDE:

Mỗi bước kiểm thử của Selenium IDE có thể chia thành 3 phần như sau:

● Target - mục tiêu/ đối tượng

1.6.2 Các loại câu lệnh Selenium IDE:

Có 3 loại câu lệnh được chia thành các nhóm sau:

1.6.2.1 Actions Đó là những câu lệnh tương tác trực tiếp với ứng dụng bằng cách thay đổi trạng thái hoặc truyền các dữ liệu kiểm thử.

Câu lệnh "type" cho phép người dùng tương tác trực tiếp với các phần tử trên website, chẳng hạn như ô textbox Nó cho phép nhập giá trị cụ thể vào textbox, và giá trị được nhập sẽ được hiển thị chính xác.

Trong trường hợp lệnh dạng Action bị thất bại, toàn bộ phần kịch bản sau đó cũng sẽ dừng lại và không thực hiện tiếp nữa.

Các câu lệnh này cho phép người dùng lưu trữ dữ liệu vào các biến do chính họ định nghĩa Những giá trị được lưu trữ có thể được sử dụng để xác nhận hoặc xác minh trong tương lai.

Lệnh "storeAllLinks" cho phép người dùng đọc và lưu tất cả các hyperlink trên một trang web vào một biến tùy chỉnh Nếu cần lưu nhiều giá trị, người dùng có thể sử dụng các biến kiểu mảng để tổ chức dữ liệu hiệu quả hơn.

Assertions tương tự như Accessors, nhưng không liên quan đến các tương tác trực tiếp với ứng dụng Chúng được sử dụng để xác minh các trạng thái hiện tại của ứng dụng so với trạng thái mong muốn.

- "Assert": để chắc chắn rằng thực hiện kiểm thử sẽ kết thúc trong trường hợp thất bại

- "Verify": cho phép Selenium IDE tiếp tục thực hiện kịch bản ngày cả khi việc xác minh bị lỗi.

Lệnh "Wait for" là một chỉ thị chờ đợi cho đến khi một điều kiện nhất định được thỏa mãn trước khi tiếp tục thực hiện các bước tiếp theo Điều kiện này có thể tương tự như việc chờ cho trang web tải thành công và các phần tử hiển thị đầy đủ Tuy nhiên, lệnh này vẫn cho phép tiến hành các bước tiếp theo ngay cả khi điều kiện không được đáp ứng trong khoảng thời gian đã định.

1.6.3 Các câu lệnh thường dùng:

The "open" command allows users to open a specific link in the browser The "assertTitle" command retrieves the current webpage's title and compares it against a specified value to verify its accuracy.

Xác minh/ xác nhận sự xuất hiện của 1 phần tử trên web.

Xác minh/ xác nhận các text hiện có trên 1 trang web.

1 type, typeKeys, sendKeys Nhập 1 giá trị (dạng String) vào 1 phần tử cụ thể trên web.

Kích vào 1 phần tử web cụ thể trên trang 1 waitForPageToLoad Tạm dừng việc thực hiện cho đến khi trang load thành công.

1 waitForElementPresent Tạm dừng thực hiện cho đến khi hiển thị 1 phần tử cụ thể.

Kích vào button "OK" hoặc "Cancel" khi hộp xác nhận tiếp theo hiển thị.

1.7.1 Quy trình tạo kịch bản kiểm thử trên Selenium IDE:

Phần 1: Recording - Selenium IDE hỗ trợ người dùng ghi lại các tương tác của người dùng với trình duyệt Các hoạt động được ghi lại đó tạo nên kịch bản lệnh Selenium IDE.

Phần 2: Playing back - Trong giai đoạn này, chúng ta sẽ thực thi các kịch bản đã được ghi lại để xác minh và kiểm soát độ ổn định và tỷ lệ thành công của kịch bản.

Phần 3: Saving - Khi ghi được một kịch bản ổn định, chúng ta có thể lưu lại để chạy hoặc test hồi quy trong tương lai.

1.7.2 Các tính năng thông dụng của Selenium IDE:

- Cài đặt tốc độ thực hiện: Chúng ta có thể thiết lập tốc độ để tối ưu hơn việc load trang web.

- Sử dụng "Execute this command": Cho phép người dùng thực hiện từng bước kiểm thử đơn lẻ trong một bộ kịch bản mà không cần chạy toàn bộ.

- Sử dụng Start point: cho phép người dùng chọn một step bất kỳ để bắt đầu chạy trong một kịch bản test.

- Sử dụng Breakpoint: cho phép người dùng tạo ra điểm dừng trong một kịch bản test Break point là điểm sẽ dừng thực thi kịch bản.

- Sử dụng nút Find: tìm và định vị được các phần tử web trên 1 trang.

- Sử dụng các Format khác: hỗ trợ chuyển định dạng của kịch bản sang một ngôn ngữ lập trình khác từ format mặc định là HTML.

Selenium RC

Paul Hammant đã phát triển một máy chủ hoạt động như một proxy HTTP nhằm "lừa" trình duyệt tin rằng Selenium Core và ứng dụng web đang được thử nghiệm đến từ cùng một tên miền Hệ thống này được biết đến với tên gọi Selenium Remote Control, hay còn gọi là Selenium 1.

Selenium RC là framework kiểm thử web hàng đầu trong dự án Selenium, nổi bật trong thời gian dài Đây là công cụ đầu tiên cho phép người dùng tự động hóa kiểm tra web bằng ngôn ngữ lập trình tùy chọn của họ.

Kể từ phiên bản 2.25.0, RC có thể hỗ trợ các ngôn ngữ lập trình sau:

Selenium-Core là một công cụ ban đầu được phát triển, bao gồm một tập hợp các hàm Javascript để diễn giải và thực thi các lệnh Selenese thông qua trình thông dịch Javascript tích hợp của trình duyệt Công cụ này sau đó đã được tích hợp vào trình duyệt web.

Để sử dụng Selenium hiệu quả, cần cài đặt các bản sao cục bộ của Selenium – Core và trình duyệt web sao cho chúng thuộc về cùng một miền, điều này được gọi là Chính sách nguồn gốc giống nhau (Same Origin Policy) Selenium RC đã được phát triển để khắc phục các hạn chế liên quan đến vấn đề này.

- Máy chủ hoạt động như một proxy HTTP được định cấu hình máy khách và

“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 nguồn gốc.

Selenium RC là một máy chủ Java cho phép viết kiểm thử ứng dụng bằng nhiều ngôn ngữ lập trình như Java, C#, và Perl Máy chủ này nhận lệnh từ chương trình người dùng và chuyển đổi chúng thành các lệnh Javascript thông qua Selenium-Core để tương tác với trình duyệt.

- Chạy trên các trình duyệt và các hệ điều hành khác nhau.

- Hỗ trợ các hoạt động lặp lại và điều kiện.

- Hỗ trợ các trình duyệt mới.

- Thực thi nhanh hơn Selenium IDE.

- Có thể hỗ trợ data-driven testing.

- Cài đặt phức tạp hơn Selenium IDE.

- Yêu cầu Selenium RC Server để thực run.

- Sự tương tác trình duyệt ít thực tế hơn.

- Kết quả không phù hợp và sử dụng JavaScript.

- Thời gian thực thi chậm hơn WebDriver.

- Phải có kiến thức về lập trình.

Selenium Grid

Selenium Grid, được phát triển bởi Patrick Lightbody, nhằm mục đích giảm thiểu thời gian thực hiện thử nghiệm Ban đầu, hệ thống này được gọi là "Hosted QA" Nó có khả năng chụp ảnh màn hình của trình duyệt trong các giai đoạn và gửi lệnh Selenium đến nhiều máy tính cùng lúc.

Selenium Grid là một máy chủ proxy thông minh cho phép chạy thử nghiệm song song trên nhiều máy, giúp quản lý các phiên bản và cấu hình trình duyệt một cách tập trung Với phiên bản mới Selenium Grid 4, không chia sẻ mã nguồn với phiên bản trước, nó sử dụng công nghệ hiện đại để mở rộng quy mô và cho phép thực thi cục bộ Điều này đơn giản hóa quá trình kiểm tra trình duyệt chéo, khi một bài kiểm tra có thể được thực hiện trên nhiều máy và trình duyệt cùng lúc, từ đó dễ dàng phân tích và so sánh kết quả.

Selenium Grid 4 là phiên bản cải tiến từ các phiên bản trước, được thiết kế để hỗ trợ khả năng mở rộng và phân tán trên nền tảng đám mây Đây là một giải pháp hoàn toàn mới, đáp ứng nhu cầu của thời đại hiện đại.

Grid được cấu tạo bởi sáu thành phần (component) khác nhau bao gồm:router, distributor, session map, new session queue, node và event bus.

1 Event Bus - Bus sự kiện

Bus sự kiện là cầu nối liên lạc giữa các Nodes, Distributor, New Session Queue và Session Map Grid chủ yếu sử dụng tin nhắn để giao tiếp nội bộ, giúp tiết kiệm chi phí so với việc gọi HTTP Khi khởi động Grid trong chế độ phân phối hoàn toàn, Bus sự kiện là thành phần đầu tiên cần khởi động.

2 Session Queue - Hàng đợi phiên

Hệ thống này có chức năng tiếp nhận các yêu cầu gửi đến theo dạng hàng đợi, trong đó yêu cầu nào đến trước sẽ được xử lý trước Nó được cấu hình thông qua các tham số có thể điều chỉnh để thiết lập thời gian chờ cho từng yêu cầu và khoảng thời gian chờ để thử lại các yêu cầu không thành công.

Bộ phân phốicó hai trách nhiệm chính:

1 Đăng ký và theo dõi tất cả các Nút cũng như khả năng của chúng:

Để đăng ký Nút với bộ phân phối, bạn cần gửi sự kiện đăng ký Nút qua Bus Sự kiện Bộ phân phối sẽ đọc sự kiện này và thực hiện yêu cầu HTTP để xác nhận sự tồn tại của Nút Nếu yêu cầu thành công, bộ phân phối sẽ tiến hành đăng ký Nút và theo dõi tất cả các khả năng của Nút thông qua GridModel.

2 Truy vấn Hàng đợi phiên mới và xử lý mọi yêu cầu phiên mới đang chờ xử lý:

Khi một yêu cầu phiên mới được gửi đến Bộ định tuyến, nó sẽ được chuyển tiếp đến Hàng đợi phiên mới, nơi nó sẽ đợi trong hàng đợi.

Bộ phân phối sẽ kiểm tra Hàng đợi phiên mới để xác định các yêu cầu phiên đang chờ xử lý và tìm kiếm Nút thích hợp để tạo phiên Sau khi phiên được tạo, Nhà phân phối sẽ lưu trữ mối quan hệ giữa id phiên và Nút thực thi trong Bản đồ phiên.

Một Grid có thể chứa nhiều Nút Mỗi Nút quản lý các vị trí cho các trình duyệt có sẵn của máy nơi nó đang chạy.

Nút tự đăng ký với Bộ phân phối thông qua Bus sự kiện và cấu hình của nó được gửi như một phần của thông báo đăng ký.

Node tự động đăng ký tất cả các trình điều khiển trình duyệt có sẵn trên máy, tạo khe cắm cho mỗi CPU cho Chrome và Firefox, trong khi Safari chỉ có một vị trí Thông qua cấu hình cụ thể, Node có thể chạy các phiên trong vùng chứa Docker hoặc thực hiện các lệnh chuyển tiếp.

Nút chỉ thực hiện các lệnh mà nó nhận được mà không đánh giá hay đưa ra phán đoán Nó không kiểm soát bất kỳ hoạt động nào ngoài các lệnh và phản hồi Hệ điều hành của các máy chạy Node không cần phải giống với các thành phần khác, bao gồm cả Linux.

5 Session Map - Bản đồ phiên

Bản đồ phiên là kho lưu trữ dữ liệu quan trọng, giữ mối quan hệ giữa id phiên và Nút nơi phiên đang hoạt động Nó hỗ trợ Router trong việc chuyển tiếp yêu cầu tới Node, giúp bộ định tuyến truy xuất thông tin từ Bản đồ phiên liên quan đến id phiên cụ thể.

Bộ định tuyến là lối vào của Grid, nhận tất cả các yêu cầu bên ngoài và chuyển tiếp chúng đến đúng thành phần.

Nếu Bộ định tuyến nhận được yêu cầu phiên mới, nó sẽ được chuyển tiếp đến Hàng đợi phiên mới.

Nếu yêu cầu liên quan đến phiên hiện tại, Bộ định tuyến sẽ truy vấn Bản đồ phiên để lấy ID nút mà phiên đang hoạt động Sau đó, yêu cầu sẽ được chuyển tiếp trực tiếp đến Nút tương ứng.

Bột định tuyến cân bằng tải trong Grid giúp tối ưu hóa quy trình bằng cách phân phối các yêu cầu đến các thành phần có khả năng xử lý tốt hơn, từ đó ngăn chặn tình trạng quá tải ở những thành phần không cần thiết.

- Được hỗ trợ bởi đa dạng framework và ngôn ngữ

- Tăng tính hiệu quả và tiết kiệm công sức dựa trên việc thực thi test song song trên nhiều luồng

- Hỗ trợ kiểm thử trên đa dạng các trình duyệt web và cả ứng dụng di động.

- Miễn phí, được cải tiến thường xuyên nhờ vào mã nguồn mở.

- Được hỗ trợ bởi cộng đồng kỹ thuật viên đông đảo.

Khả năng mở rộng của ứng dụng này tương đối kém so với nhiều ứng dụng hiện đại, không thể tăng hoặc giảm quy mô một cách linh hoạt theo yêu cầu.

- đố biết đang làm gì

Mỗi máy chủ được cấu hình với một tập hợp các phiên bản trình duyệt cố định, điều này tạo ra khó khăn cho việc thực hiện các thay đổi trong tương lai.

- Đòi hỏi người dùng có kỹ thuật chuyên môn cao.

- Trình duyệt web được cài đặt

- Driver cho trình duyệt web

- Selenium Manager sẽ config driver tự động nếu bạn thêm

- Cài đặt và thêm vào Path

- Tải phiên bản Selenium Server jar file từ bản phát hành mới nhất

- Chạy lệnhjava -jar selenium-server-.jar standalone

- Trỏ WebDriver test sang http://localhost:4444

- (Tuỳ chọn) Kiểu tra độ tương thích bằng cách mở http://localhost:4444 trên trình duyệt

Selenium Grid cung cấp ba cách tiếp cận chính để triển khai, bao gồm Standalone, Hub-Node và Distributed Trong đó, chế độ Standalone là phương pháp đơn giản nhất, kết hợp tất cả các thành phần của Grid vào một hệ thống duy nhất Ở chế độ này, người dùng có thể sử dụng đầy đủ chức năng của Grid chỉ với một lệnh trong một quy trình và trên một máy duy nhất.

Selenium Driver

Simon Stewart đã phát triển WebDriver vào khoảng năm 2006, trong bối cảnh các trình duyệt và ứng dụng web ngày càng mạnh mẽ nhưng cũng có nhiều hạn chế đối với các chương trình JavaScript như Selenium Core WebDriver trở thành khung thử nghiệm nền tảng đầu tiên cho phép điều khiển trình duyệt từ cấp hệ điều hành.

Selenium WebDriver là phiên bản cải tiến của Selenium RC, được phát triển để khắc phục những hạn chế của phiên bản trước Mặc dù được xem là phiên bản nâng cao, nhưng kiến trúc của Selenium WebDriver hoàn toàn khác biệt so với Selenium RC.

Selenium hỗ trợ tự động hóa tất cả các trình duyệt chính trên thị trường thông qua việc sử dụng WebDriver.

WebDriver là một API và giao thức xác định giao diện trung lập về ngôn ngữ, cho phép kiểm soát hành vi của trình duyệt web Mỗi trình duyệt có một triển khai WebDriver riêng, được gọi là trình điều khiển, chịu trách nhiệm ủy quyền cho trình duyệt và quản lý giao tiếp giữa Selenium và trình duyệt.

Sự tách biệt trong Selenium nhằm yêu cầu các nhà cung cấp trình duyệt chịu trách nhiệm về việc triển khai Selenium sử dụng các trình điều khiển bên thứ ba khi có thể, nhưng cũng duy trì các trình điều khiển riêng cho những trường hợp không thể Khung Selenium kết nối các phần này qua giao diện người dùng, cho phép sử dụng các chương trình phụ trợ của trình duyệt một cách mượt mà, hỗ trợ tự động hóa đa trình duyệt và đa nền tảng Việc thiết lập Selenium khác biệt so với các công cụ thương mại khác.

Trước khi bắt đầu viết mã với Selenium, bạn cần cài đặt các thư viện liên kết ngôn ngữ phù hợp, chọn trình duyệt mà bạn muốn sử dụng và cài đặt trình điều khiển tương ứng cho trình duyệt đó.

API Selenium Webdriver tương tác với các trình duyệt thực bằng trình điều khiển trình duyệt và hiểu các khối chính bao gồm:

Các nhà phát triển và người kiểm tra phần mềm thường chọn ngôn ngữ lập trình mà họ quen thuộc để viết các tập lệnh tự động hóa, như C#, Java, Python, hoặc Perl Sự đa dạng này có thể gây khó khăn trong quá trình phát triển Tuy nhiên, thư viện máy khách Selenium hỗ trợ nhiều ngôn ngữ, cho phép người dùng viết tập lệnh bằng ngôn ngữ mà họ cảm thấy thoải mái nhất, trong khi Selenium sẽ xử lý các tác vụ tự động hóa còn lại.

Giao thức JSON (Ký hiệu đối tượng JavaScript) cho phép truyền dữ liệu hiệu quả giữa Máy khách và Máy chủ trên web Nó hoạt động như một phần của API REST (Chuyển trạng thái đại diện), cung cấp cơ chế truyền tải và xác định dịch vụ web RESTful thông qua JSON qua giao thức HTTP.

Trình điều khiển trình duyệt cho phép tương tác với trình duyệt và gửi các lệnh tự động hóa Nó xử lý các chức năng bên trong của trình duyệt, giúp thực hiện các tác vụ một cách hiệu quả Mỗi loại trình duyệt đều có trình điều khiển riêng biệt Để chạy tập lệnh tự động hóa, cần tuân theo các bước cụ thể liên quan đến trình điều khiển của từng trình duyệt.

- Yêu cầu HTTP được tạo cho mọi lệnh Selenium và gửi đến trình điều khiển trình duyệt.

- Trình điều khiển trình duyệt cụ thể nhận được yêu cầu HTTP thông qua máy chủ HTTP.

- Máy chủ HTTP gửi tất cả các bước để thực hiện một chức năng được thực thi trên trình duyệt.

- Báo cáo thực hiện thử nghiệm được gửi trở lại máy chủ và máy chủ HTTP sẽ gửi nó đến tập lệnh Tự động hóa.

4 Browsers Điểm hay nhất của Selenium Webdriver là nó hỗ trợ tất cả các trình duyệt chính như Google Chrome, Mozilla Firefox, Internet Explorer và Safari. Mỗi trình duyệt đều có Webdriver cụ thể để thực thi các tập lệnh tự động hóa.

- Selenium Webdriver hoàn thành việc thực thi các tập lệnh thử nghiệm nhanh hơn khi so sánh với các công cụ khác.

- API ngắn gọn hơn ( giao diện lập trình ứng dụng ) so với Selenium RC

- Có thể thực hiện Communicate trực tiếp với trình duyệt

- Tương tác với trình duyệt tương tự như thao tác của một người dùng thật.

- Tốc độ sẽ nhanh hơn so với Selenium IDE, Selenium RC

- Thao tác dễ với nhiều phép tính toán thuộc dạng logic hoặc có điều kiện phức tạp.

- WebDriver có thể hỗ trợ trình duyệt “ headless" HtmlUnit trong khi Selenium

RC không thể ( HtmlUnit là một trình duyệt vô hình - không có GUI - xử lý tốc độ rất nhanh vì không phải tải các phần tử trang).

- Hỗ trợ nhiều hệ điều hành như Windows, Mac, Linux, Unix, …

- Tương thích với một loạt các ngôn ngữ bao gồm Python, Java, Perl, Ruby, …

- Cung cấp hỗ trợ cho các trình duyệt hiện đại như Chrome, Firefox, Opera, Safari và Internet Explorer.

- Quá trình cài đặt còn phức tạp hơn so với Selenium IDE

- Đòi hỏi người dùng cần phải có các kỹ năng lập trình.

- Không thể dễ dàng hỗ trợ các trình duyệt mới như Selenium RC bởi vì nó hoạt động ở cấp độ hệ điều hành.

- Không có lệnh tích hợp để tạo kết quả kiểm tra tự động.

Bước 1: Cài đặt Java Software Development Kit (JDK)

Tải xuống và cài đặt JDK tại đây

Bước 2: Cài đặt Eclipse IDE

Tải xuống phiên bản mới nhất của "Eclipse IDE for Java Developers" tại đây Đảm bảo chọn chính xác giữa phiên bản Windows 32 Bit và 64 Bit.

Bước 3: Cài đặt Selenium WebDriver

Bạn có thể tải WebDriver Selenium cho Trình điều khiển máy khách Java tại đây Ngoài ra, bạn cũng có thể tìm thấy trình điều khiển cho các ngôn ngữ lập trình khác, nhưng hãy chắc chắn chọn đúng phiên bản dành cho Java.

Bước 4: Configure Eclipse IDE với WebDriver

1 Khởi chạy tệp "eclipse.exe" bên trong thư mục "eclipse" mà chúng tôi đã trích xuất ở bước 2 Nếu bạn thực hiện đúng bước 2, thì tệp thực thi sẽ nằm trên C:\eclipse\eclipse.exe.

2 Khi được yêu cầu chọn không gian làm việc, chỉ cần chấp nhận vị trí mặc định.

3 Tạo một dự án mới thông qua Tệp > Mới > Dự án Java Đặt tên dự án là

4 Một cửa sổ bật lên mới sẽ mở ra Nhập chi tiết như sau

- Vị trí lưu dự án

- Chọn tùy chọn bố cục dự án

- Nhấp vào nút Kết thúc

Bước 5: Import thư viện Selenium vào project.

Kiểm thử trên Selenium

Tiêu chí chọn test case

2.1 Ưu điểm của Automation test:

- Độ tin cậy cao: các công cụ có sự ổn định cao vì hoạt động theo quy trình định sẵn Đặc biệt trong trường hợp nhiều test cases.

- Khả năng lặp: giúp các tester không phải lặp đi lặp lại các thao tác (ví dụ: nhập dữ liệu, click, check kết quả,…) một cách nhàm chán.

- Khả năng tái sử dụng: với một bộ kiểm thử tự động, bạn có thể sử dụng cho nhiều phiên bản ứng dụng khác nhau.

Kiểm thử tự động mang lại tốc độ vượt trội so với kiểm thử thủ công, với khả năng hoàn thành một trường hợp kiểm thử chỉ trong 30 giây, trong khi kiểm thử thủ công thường mất ít nhất 5 phút.

- Chi phí thấp: nếu bạn áp dụng kiểm thử tự động đúng cách, người ta có thể tiết kiệm được nhiều chi phí, thời gian và nhận lực.

2.2 Tiêu chí chọn test case:

Việc sinh test case phụ thuộc vào yêu cầu cụ thể của ứng dụng web và môi trường kiểm thử Một số tiêu chí quan trọng để chọn test case bao gồm tính đầy đủ, tính chính xác, và khả năng tái sử dụng.

Xác định các chức năng quan trọng nhất của ứng dụng web là bước đầu tiên trong quá trình kiểm thử Hãy lựa chọn các test case liên quan đến những chức năng thiết yếu như đăng nhập, đăng ký, tìm kiếm, thanh toán, và các chức năng cốt lõi khác để đảm bảo hiệu suất và độ tin cậy của ứng dụng.

Để đảm bảo chất lượng sản phẩm, cần chọn lọc các test case kiểm thử cho những tính năng phổ biến mà người dùng thường xuyên sử dụng Việc này giúp đảm bảo rằng các tính năng quan trọng được kiểm tra một cách kỹ lưỡng, từ đó nâng cao trải nghiệm người dùng.

Khi kiểm thử các chức năng phức tạp, việc lựa chọn các test case phù hợp là rất quan trọng để phát hiện lỗi tiềm ẩn Điều này không chỉ giúp phát hiện sớm các vấn đề trong mã nguồn mà còn trong giao diện người dùng, từ đó nâng cao chất lượng sản phẩm.

Xác thực dữ liệu đầu vào là một bước quan trọng trong kiểm thử phần mềm, bao gồm việc chọn các test case phù hợp Quá trình này không chỉ kiểm tra các trường dữ liệu theo đúng định dạng yêu cầu mà còn xử lý dữ liệu không hợp lệ Ngoài ra, việc xác minh tính năng bảo mật cũng rất cần thiết, bao gồm xử lý các ký tự đặc biệt và mã độc để đảm bảo an toàn cho hệ thống.

Kiểm tra tương tác người dùng là quy trình quan trọng trong việc đảm bảo ứng dụng web hoạt động hiệu quả Điều này bao gồm việc lựa chọn các test case phù hợp để đánh giá phản hồi của ứng dụng khi người dùng thực hiện các hành động như nhấp vào nút, điền vào biểu mẫu, hoặc tương tác với các thành phần trên trang web.

Kiểm tra đa trình duyệt và đa nền tảng là rất quan trọng để đảm bảo ứng dụng web của bạn hoạt động hiệu quả trên nhiều trình duyệt và nền tảng khác nhau Hãy lựa chọn các test case kiểm thử phù hợp để xác minh tính tương thích và độ tin cậy của ứng dụng, giúp mang lại trải nghiệm tốt nhất cho người dùng.

Kiểm tra xử lý lỗi và khôi phục là một phần quan trọng trong quy trình kiểm thử ứng dụng Cần chọn các test case phù hợp để đánh giá khả năng của ứng dụng trong việc xử lý các tình huống lỗi và khôi phục sau sự cố Điều này bao gồm việc kiểm tra các thông báo lỗi, cách ứng dụng xử lý ngoại lệ và khả năng phục hồi tổng thể của nó.

Để đảm bảo hiệu suất và khả năng chịu tải của ứng dụng trong điều kiện tải cao, cần lựa chọn các test case kiểm thử phù hợp nhằm đánh giá các yếu tố này một cách chính xác.

Kiểm tra tích hợp là bước quan trọng khi ứng dụng của bạn tương tác với các hệ thống khác Hãy chọn các test case phù hợp để đảm bảo kiểm tra hiệu quả sự tích hợp và giao tiếp giữa các thành phần trong hệ thống.

Trong quá trình kiểm thử, việc lựa chọn các test case phù hợp là rất quan trọng để đảm bảo tuân thủ các quy định và văn bản pháp luật Điều này bao gồm việc kiểm tra các vùng nguyên tắc như quyền riêng tư, an ninh và quyền truy cập Việc này không chỉ giúp bảo vệ thông tin mà còn đảm bảo rằng hệ thống hoạt động trong khuôn khổ pháp lý đã được xác định.

Mở rộng vấn đề

So sánh với các công cụ kiểm thử khác

1.1 So sánh đặc điểm của Katalon Studio với Selenium:

Nền tảng Đa nền tảng Đa nền tảng

Các dạng hỗ trợ kiểm thử

Web apps Windows desktop, Web apps, Mobile apps, API/Web service

Ngôn ngữ lập trình Java, C#, Perl, Python,

Yêu cầu kỹ năng lập trình

Cần có kỹ năng lập trình ở mức nâng cao để tích hợp các công cụ khác nhau

Không yêu cầu Đối với các kịch bản nâng cao mới yêu cầu có kỹ năng lập trình

Cài đặt, sử dụng Yêu cầu cài đặt và tích hợp các công cụ khác nhau

Dễ dàng cài đặt và sử dụng

Thời gian tạo kịch bản test

Chậm Nhanh do có Katalon recorder

Phải hard-code dữ liệu vào trong code

Hỗ trợ nhiều nguồn dữ liệu như CSV, Excel, database

Các keyword dựng sẵn Phải tự xây dựng Được định nghĩa và tích hợp sẵn

Báo cáo ca kiểm thử không tích hợp có khả năng kết nối với các công cụ kiểm thử khác, giúp hỗ trợ các hệ thống CI trong việc gọi và thực hiện các ca kiểm thử một cách hiệu quả.

Kiểm thử hình ảnh Yêu cầu cài đặt thư viện bổ sung

Kiểm thử phân tích Không Katalon analytics

Loại giấy phép Mã nguồn mở (apache) Phần mềm miễn phí

Chi phí Miễn phí Miễn phí

1.2 Bảng so sánh ưu nhược điểm

Selenium Katalon Studio Ưu điểm

Mã nguồn mở, không mất phí license và bảo trì

Không yêu cầu giấy phép và bảo trì, dịch vụ hỗ trợ chuyên dụng có sẵn với mức phí nếu cần, hoàn toàn miễn phí Phần mềm này được ưa chuộng bởi người dùng nhờ khả năng hỗ trợ nhiều nền tảng và kiểm thử trên các trình duyệt web khác nhau, cho phép kiểm thử Web, Mobile, Desktop và API một cách hiệu quả.

Cộng đồng người dùng và phát triển lớn và tích cực để theo kịp các công nghệ phần mềm

Tích hợp các framework và tính năng cần thiết để tạo và thực hiện các trường hợp thử nghiệm nhanh

Tích hợp nhiều công cụ và framework khác nhau để nâng cao khả năng phát triển, sản phẩm này được xây dựng dựa trên framework Selenium nhưng đã đơn giản hóa yêu cầu về kỹ năng lập trình nâng cao mà Selenium đòi hỏi.

Người kiểm thử cần có kỹ năng và kinh nghiệm lập trình tốt để thiết lập và tích hợp Selenium với các công cụ và framework khác

Framework mới nổi với một cộng đồng phát triển nhanh chóng

Mất thời gian thiết lập và tích hợp các framework khác khi build dự án mới

Các tính năng vẫn đang phát triển

Hỗ trợ chậm từ cộng đồng Thiếu các lựa chọn đầy đủ về ngôn ngữ, chỉ hỗ trợJava/Groovy

So sánh Selenium WebDriver và Selenium Remote Control

Kiến trúc Đơn giản hơn Phức tạp hơn

Tốc độ Nhanh hơn Chậm hơn

Tương tác thực Trực tiếp Trung gian thông qua

API Trực quan, ngắn gọn hơn

Chứa các dòng lệnh, đặt tên các thao tác gây dễ nhầm lẫn

Hỗ trợ của trình duyệt Có hỗ trợ HtmlUnit Không hỗ trợ HtmlUnit

Báo cáo kiểm thử Không hỗ trợ sẵn, có thể coding để tự custom chức năng này

Có tự động tạo tệp HTML chứa báo cáo kết quả kiểm thử

Hỗ trợ với trình duyệt mới

Không thể sẵn sàng hỗ trợ trình duyệt mới

Lựa chọn công cụ Selenium phù hợp

Công cụ Tại sao chọn?

Selenium IDE Để tìm hiểu về các khái niệm về thử nghiệm tự động và Selenium, bao gồm:

- Các lệnh Selen như kiểu, mỡ, bấm và đợi, xác nhận, xác minh, v.v.

- Các trình định vị như id, name, xpath, css selector, v.v.

- Thực thi mã JavaScript tùy chỉnh bằng cách sử dụng chay script

-Xuất các trường hợp thử nghiệm ở các định dạng khác nhau.

-Tạo các kiểm thử với ít hoặc không có kiến thức về lập trình.

- Để tạo các trường hợp kiểm thử đơn giản và các bộ kiểm thử mà bạn có thể xuất sau này sang RC hoặc WebDriver.

- Để kiểm tra một ứng dụng web chỉ chống lại Firefox.

- Để thiết kế một bài kiểm tra sử dụng một ngôn ngữ hơn WebDriver

- Để chạy kiểm thử của bạn với các trình duyệt khác nhau (ngoại trừ HtmlUnit) trên các hệ điều hành khác nhau.

-Để triển khai các kiểm thử của bạn trên nhiều môi trường sử dụng lưới

- Để kiểm tra ứng dụng của bạn dựa trên trình duyệt mới hỗ trợ JavaScript.

- Để kiểm tra các ứng dụng web với các kịch bản dựa trên AJAX phức tạp.

- Để sử dụng một ngôn ngữ lập trình nhất định trong việc thiết kế trường hợp thử nghiệm của bạn.

- Để kiểm tra các ứng dụng có nhiều chức năng dựa trên

- Để thực hiện các kiểm tra trên trình duyệt HtmlUnit Để tạo kết quả kiểm tra tùy chỉnh.

- Để chạy các kịch bản lệnh Selenium

RC của bạn trong nhiều trình duyệt và hệ điều hành đồng thời.

- Để chạy một bộ thử nghiệm khổng lồ,cần phải hoàn thành trong thời gian sớm nhất có thể

Ngày đăng: 27/12/2024, 10:44

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

TÀI LIỆU LIÊN QUAN

w