Selenium NodeJS là gì?

Selenium là một robot phần mềm được gửi đến từ tương lai để giúp chúng tôi kiểm tra các ứng dụng web. Nhưng hãy nhớ rằng nó không phải là một trong những robot thay đổi hình dạng lạ mắt hơn là có thể chạy rất nhanh. Nó giống như một trong những robot thực sự mạnh, không nhanh lắm và phù hợp nhất để hoàn thành một mục tiêu nhất định

Điều đó có nghĩa là Selenium thực sự tốt trong một số thứ cụ thể. Nếu bạn biết chúng là gì và bám sát chúng thì bạn có thể dễ dàng viết các bài kiểm tra đáng tin cậy, có thể mở rộng và bảo trì mà bạn và nhóm của bạn có thể tin tưởng

Selenium là gì và không tốt ở đâu

Selenium được xây dựng để tự động hóa các trình duyệt, cụ thể là tương tác của con người với chúng. Những việc như điều hướng đến các trang, nhấp vào các thành phần, nhập văn bản vào các trường nhập liệu, v.v.

Nó ít lý tưởng hơn để kiểm tra chức năng cấp thấp hơn như mã trạng thái HTTP hoặc tiêu đề HTTP. Mặc dù bạn có thể sử dụng Selenium theo cách này, nhưng nó yêu cầu thiết lập bổ sung công cụ của bên thứ ba (e. g. , một máy chủ proxy như BrowserMob Proxy ) và đó là một con dốc trơn trượt vì có rất nhiều trường hợp cạnh để xem xét ở cấp độ này

Selenium nổi bật

Selenium hoạt động trên mọi trình duyệt chính, trong mọi ngôn ngữ lập trình chính và trên mọi hệ điều hành chính. Mỗi ràng buộc ngôn ngữ và trình duyệt đang được tích cực phát triển để luôn cập nhật. Vâng, ngay cả Internet Explorer (nhờ Jim Evans. ). Và WebDriver (thứ điều khiển Selenium) đã trở thành một đặc điểm kỹ thuật của W3C

Selenium có thể chạy trên máy tính cục bộ của bạn, trên máy chủ từ xa, trên một nhóm máy chủ (với Selenium Grid) hoặc trên nhà cung cấp đám mây bên thứ ba. Khi bộ thử nghiệm của bạn phát triển, các lần chạy thử nghiệm của bạn sẽ mất nhiều thời gian hơn để hoàn thành. Để tăng tốc chúng, bạn sẽ muốn chạy chúng song song, đó là lúc lợi ích của việc có máy chủ của riêng bạn hoặc sử dụng nhà cung cấp đám mây – điều đó, và khả năng có nhiều kết hợp trình duyệt và hệ điều hành để chạy thử nghiệm của bạn trên

Một trong những triết lý hướng dẫn của Selenium là có thể viết bài kiểm tra của bạn một lần và chạy chúng trên nhiều trình duyệt. Mặc dù đây là một đề xuất màu hồng, nhưng nó không hoàn toàn chính xác. Có một số vấn đề cần chú ý khi bạn tham gia. Nhưng đừng lo lắng, chúng tôi sẽ trình bày chi tiết những điều này trong suốt cuốn sách

Không thể phóng đại tầm quan trọng của kiểm thử phần mềm trong công nghệ phần mềm và nó thậm chí còn quan trọng hơn trong phát triển front-end. Chỉ kiểm tra ứng dụng của bạn bằng kiểm tra chức năng và đơn vị có thể không đảm bảo tính chính xác của ứng dụng. Trong trường hợp này, thử nghiệm đầu cuối (E2E) có thể rất hữu ích vì nó có thể sao chép hành vi của người dùng trong ứng dụng của bạn để đảm bảo rằng ứng dụng hoạt động chính xác. Thông thường, quy trình này bao gồm việc viết một tập lệnh để mô phỏng người dùng điều hướng qua một ứng dụng, thử nghiệm một số tính năng và hành vi nhất định trong quá trình thực hiện

trong nút. js, bạn có thể sử dụng Selenium để tự động hóa các bài kiểm tra E2E của mình. Điều này sẽ cho phép bạn thử nghiệm các tính năng mới và giải quyết các bản sửa lỗi, đồng thời đảm bảo rằng giao diện người dùng của ứng dụng của bạn vẫn hoạt động

Selenium là gì?

Selenium là một bộ công cụ thường được sử dụng trong hệ sinh thái thử nghiệm để thử nghiệm trên nhiều trình duyệt. Nó hỗ trợ tất cả các trình duyệt web chính, khiến nó trở thành một trong những trình duyệt được sử dụng rộng rãi nhất để tự động kiểm tra ứng dụng web. Selenium WebDriver là bộ API cơ bản và các ràng buộc ngôn ngữ được liên kết cho phép Selenium (và các công cụ tương thích với WebDriver khác) giao tiếp với các trình duyệt web theo cách tiêu chuẩn

điều kiện tiên quyết

Dưới đây là các điều kiện tiên quyết bạn sẽ cần phải làm theo cùng với hướng dẫn này

  • Node và npm được cài đặt trên máy tính của bạn
  • Có kiến ​​thức cơ bản về JavaScript

Thiết lập môi trường thử nghiệm của chúng tôi

Để bắt đầu, hãy tạo một thư mục cho dự án này

mkdir e2e-selenium-node

Điều hướng vào thư mục và khởi tạo

cd e2e-selenium-node
npm init
6 trong thư mục của bạn

cd e2e-selenium-node
npm init

Ghi chú. Chạy lệnh này sẽ hiển thị một loạt lời nhắc. Tôi đã chọn thêm mô tả tùy chỉnh và giấy phép cho dự án này, nhưng các giá trị mặc định sẽ hoạt động tốt và bạn có thể nhấn vào

cd e2e-selenium-node
npm init
7 để trả lời từng lời nhắc

Bây giờ lệnh sẽ tạo tệp

cd e2e-selenium-node
npm init
8 cho bạn trong thư mục hiện tại của bạn. Tệp cấu hình này sẽ quản lý các phụ thuộc dự án của bạn và có thể được tùy chỉnh khi chúng tôi tiếp tục thử nghiệm

Dưới đây là ảnh chụp ban đầu nó sẽ trông như thế nào

{
  "name": "e2e-selenium-node",
  "version": "1.0.0",
  "description": "end-to-end test in node using selenium",
  "main": "index.js",
  "scripts": {
    "test": "test"
  },
  "author": "Reflect run",
  "license": "ISC"
}

Nút. js & cấu hình Selenium

Sau khi thiết lập dự án, bước tiếp theo là cài đặt các gói Selenium Webdriver và ChromeDriver, như hình bên dưới

selen-webdriver. Selenium Webdriver là một thư viện tự động hóa trình duyệt. Nó có thể được sử dụng để kiểm tra các ứng dụng web hoặc cho bất kỳ tác vụ nào yêu cầu tự động hóa các tương tác trong trình duyệt web

Để cài đặt gói, hãy chạy lệnh sau

npm install selenium-webdriver

chromedriver. ChromeDriver là một máy chủ độc lập hoặc có thể thực thi riêng biệt mà Selenium WebDriver sử dụng để kiểm soát Chrome

Chạy lệnh sau để cài đặt gói

npm install chromedriver

Ghi chú. Trong hướng dẫn này, chúng tôi sử dụng Chrome làm trình duyệt để tự động hóa. Nếu bạn muốn sử dụng các trình duyệt khác, bạn có thể sử dụng hướng dẫn này

Sau khi cài đặt gói

cd e2e-selenium-node
npm init
9, hãy điều hướng đến chromedriver. crom. org/downloads để cài đặt phiên bản ChromeDriver mới nhất. Giải nén tệp, sao chép tệp thực thi vào vị trí thư mục bạn chọn và sao chép đường dẫn tệp của nó

Đối với cả người dùng Windows và macOS, nếu bạn không biết cách thêm đường dẫn tệp, hãy làm theo hướng dẫn này tại đây

Tạo các thử nghiệm đầu tiên của bạn

Để xác minh rằng chúng tôi đã thiết lập thành công Node. js và Selenium, hãy chạy thử nghiệm đơn giản. Tạo một tệp kiểm tra bên trong thư mục gốc của bạn có tên là

{
  "name": "e2e-selenium-node",
  "version": "1.0.0",
  "description": "end-to-end test in node using selenium",
  "main": "index.js",
  "scripts": {
    "test": "test"
  },
  "author": "Reflect run",
  "license": "ISC"
}
0 và thêm tệp kiểm tra sau

cd e2e-selenium-node
npm init
0

Thử nghiệm ở trên tự động hóa một quy trình khá đơn giản bằng Selenium. Dưới đây là giải thích về luồng thử nghiệm

  1. Mở cửa sổ trình duyệt chrome

    cd e2e-selenium-node
    npm init
    
    1

    Ở đây, chúng tôi khởi tạo trình điều khiển web Chrome mới để mở trình duyệt Chrome bằng cách sử dụng lớp

    {
      "name": "e2e-selenium-node",
      "version": "1.0.0",
      "description": "end-to-end test in node using selenium",
      "main": "index.js",
      "scripts": {
        "test": "test"
      },
      "author": "Reflect run",
      "license": "ISC"
    }
    
    1 mà chúng tôi đã nhập từ
    {
      "name": "e2e-selenium-node",
      "version": "1.0.0",
      "description": "end-to-end test in node using selenium",
      "main": "index.js",
      "scripts": {
        "test": "test"
      },
      "author": "Reflect run",
      "license": "ISC"
    }
    
    2. Nếu bạn muốn sử dụng một trình duyệt khác, chẳng hạn như Firefox, hãy chuyển tên trình duyệt làm tham số cho hàm
    {
      "name": "e2e-selenium-node",
      "version": "1.0.0",
      "description": "end-to-end test in node using selenium",
      "main": "index.js",
      "scripts": {
        "test": "test"
      },
      "author": "Reflect run",
      "license": "ISC"
    }
    
    3

  2. Tới trang web Reflect

    Với mục đích của thử nghiệm này, khi trình duyệt mở ra, chúng tôi sẽ muốn nó tự động điều hướng đến một trang web cụ thể. Chẳng hạn, hãy đặt nó để điều hướng đến một trang web mẫu

    cd e2e-selenium-node
    npm init
    
    5

  3. Đóng trình duyệt

    Khi trang web Reflect chạy thành công, hãy đóng cửa sổ trình duyệt

    cd e2e-selenium-node
    npm init
    
    6

    Bạn có thể đọc thêm về tất cả các lớp có thể và các chức năng có sẵn trong tài liệu

    Bây giờ, chúng ta sẽ có một tập lệnh tự động mở Chrome và điều hướng đến trang web ví dụ. Để chạy thử nghiệm, hãy sử dụng lệnh bên dưới

    cd e2e-selenium-node
    npm init
    
    7

    Ảnh chụp nhanh của bạn sẽ trông như thế này

    Selenium NodeJS là gì?

Viết Selenium end-to-end tests

Trong phần này, chúng tôi sẽ lập mô hình câu chuyện của người dùng và viết bài kiểm tra e2e cho câu chuyện đó. Chúng tôi sẽ viết các bài kiểm tra để khẳng định rằng người dùng có thể thực hiện thành công một số hành động cụ thể trên Google. Vì đây là hướng dẫn, chúng tôi sẽ sử dụng Selenium để kiểm tra một trang web công cộng, mặc dù bạn thường sử dụng nó để kiểm tra ứng dụng của riêng mình

Để viết thử nghiệm E2E cho một câu chuyện người dùng cụ thể, chúng tôi sẽ mô phỏng các hành động trong suốt quá trình thử nghiệm như thể chúng tôi là người dùng và cuối cùng khẳng định rằng trạng thái ứng dụng kết quả phù hợp với mong đợi của chúng tôi. Thử nghiệm của chúng tôi sẽ thực hiện các hành động sau.

  • Truy cập một trang trên quả táo của bạn. g. Google
  • Tìm và truy vấn một thành phần tìm kiếm trên trang
  • Tương tác với phần tử tìm kiếm bằng cách nhấp vào enter
  • Xác minh rằng ứng dụng ở đúng trạng thái sau khi tương tác

Tạo tập tin thử nghiệm của bạn

Điều hướng vào thư mục dự án mà chúng tôi đã tạo trước đó. Thêm tệp thử nghiệm mới có tên

{
  "name": "e2e-selenium-node",
  "version": "1.0.0",
  "description": "end-to-end test in node using selenium",
  "main": "index.js",
  "scripts": {
    "test": "test"
  },
  "author": "Reflect run",
  "license": "ISC"
}
4 vào thư mục gốc của thư mục dự án và thêm các thử nghiệm sau

cd e2e-selenium-node
npm init
0

Bây giờ, chúng tôi sẽ kiểm tra thử nghiệm ở trên để xem liệu nó có khớp với câu chuyện của người dùng mà chúng tôi đã xác định trước đó hay không đồng thời giải thích cách chúng tôi sử dụng Selenium để tự động hóa việc này

  1. Truy cập một trang trong ứng dụng của bạn e. Google

    Điều hướng đến Google

    cd e2e-selenium-node
    npm init
    
    1

  2. Tìm và truy vấn một thành phần tìm kiếm trên trang

    Để tự động nhập từ tìm kiếm vào hộp tìm kiếm, chúng tôi cần biết phần tử DOM của tìm kiếm
    đầu vào. Khi bạn kiểm tra mã nguồn google, bạn sẽ nhận thấy rằng thuộc tính

    {
      "name": "e2e-selenium-node",
      "version": "1.0.0",
      "description": "end-to-end test in node using selenium",
      "main": "index.js",
      "scripts": {
        "test": "test"
      },
      "author": "Reflect run",
      "license": "ISC"
    }
    
    5 là
    {
      "name": "e2e-selenium-node",
      "version": "1.0.0",
      "description": "end-to-end test in node using selenium",
      "main": "index.js",
      "scripts": {
        "test": "test"
      },
      "author": "Reflect run",
      "license": "ISC"
    }
    
    6. Sau đó, chúng tôi
    có thể sử dụng thuộc tính này để lấy phần tử đầu vào DOM.

    Selenium NodeJS là gì?

    Lớp

    {
      "name": "e2e-selenium-node",
      "version": "1.0.0",
      "description": "end-to-end test in node using selenium",
      "main": "index.js",
      "scripts": {
        "test": "test"
      },
      "author": "Reflect run",
      "license": "ISC"
    }
    
    7 do Selenium cung cấp cho phép chúng tôi xác định vị trí các phần tử DOM trên trang, sau đó chúng tôi sử dụng các thuộc tính
    {
      "name": "e2e-selenium-node",
      "version": "1.0.0",
      "description": "end-to-end test in node using selenium",
      "main": "index.js",
      "scripts": {
        "test": "test"
      },
      "author": "Reflect run",
      "license": "ISC"
    }
    
    5 để lấy phần tử DOM với
    {
      "name": "e2e-selenium-node",
      "version": "1.0.0",
      "description": "end-to-end test in node using selenium",
      "main": "index.js",
      "scripts": {
        "test": "test"
      },
      "author": "Reflect run",
      "license": "ISC"
    }
    
    9

    cd e2e-selenium-node
    npm init
    
    2

    Bạn có thể nhắm mục tiêu phần tử DOM với các thuộc tính khác ngoài

    {
      "name": "e2e-selenium-node",
      "version": "1.0.0",
      "description": "end-to-end test in node using selenium",
      "main": "index.js",
      "scripts": {
        "test": "test"
      },
      "author": "Reflect run",
      "license": "ISC"
    }
    
    5. Đọc thêm về
    các chức năng và thuộc tính có thể có trong tài liệu Selenium.

  3. Tương tác với phần tử bằng cách nhấp vào enter

    Tiếp theo, chúng tôi sẽ bắt chước một tình huống người dùng bằng cách nhập truy vấn tìm kiếm

    npm install selenium-webdriver
    
    1 vào hộp tìm kiếm, rồi nhấn phím Enter

    cd e2e-selenium-node
    npm init
    
    3

    Chúng tôi sẽ đợi trang tải kết quả tìm kiếm cho đến khi tiêu đề trang hiện tại bằng

    npm install selenium-webdriver
    
    2. Để làm điều này, chúng ta sẽ sử dụng chức năng chờ trong Selenium. Hàm
    npm install selenium-webdriver
    
    3 chờ một điều kiện đánh giá thành một giá trị đã đặt. Điều kiện tham số
    npm install selenium-webdriver
    
    4 tạo một điều kiện sẽ đợi tiêu đề trang hiện tại khớp với giá trị đã cho
    npm install selenium-webdriver
    
    5. Bạn có thể tìm hiểu thêm về lớp
    npm install selenium-webdriver
    
    6 và hàm
    npm install selenium-webdriver
    
    7, cũng như các hàm có sẵn khác trong tài liệu

    Khi chúng tôi đã khẳng định rằng tiêu đề trang hiện tại bằng với 'Phản hồi chạy - Tìm kiếm của Google', chúng tôi sẽ in tiêu đề trang hiện tại ra bảng điều khiển

    cd e2e-selenium-node
    npm init
    
    4

Bây giờ chúng tôi có một tập lệnh triển khai câu chuyện người dùng của chúng tôi. Chạy tệp thử nghiệm ở trên bằng lệnh bên dưới

cd e2e-selenium-node
npm init
5

Lệnh này sẽ tự động mở Chrome và nhanh chóng điều hướng đến trang web được chỉ định google. com. Dưới đây là ảnh chụp nhanh về những gì bạn sẽ nhận được

Selenium NodeJS là gì?

Phần kết luận

Trong hướng dẫn này, chúng ta đã học cách sử dụng Selenium để tự động kiểm thử từ đầu đến cuối trong Node. phát triển js. Bây giờ bạn sẽ cảm thấy quen thuộc với tất cả các điều kiện tiên quyết cần thiết để thiết lập Selenium với Node. js và chạy thử nghiệm của bạn trong Chrome

Hãy thử phản ánh. Một nền tảng thử nghiệm đầu cuối hiện đại

Reflect là một nền tảng thử nghiệm không cần mã cho phép bạn xây dựng và chạy thử nghiệm trên tất cả các trình duyệt phổ biến. Sử dụng nền tảng thử nghiệm đám mây như Reflect cho phép bạn chạy thử nghiệm tự động trong trình duyệt thực mà không cần phải đứng lên và tự duy trì cơ sở hạ tầng thử nghiệm của riêng mình

Nút Selenium JS là gì?

Selenium là thư viện tự động hóa trình duyệt . Thường được sử dụng để thử nghiệm các ứng dụng web, Selenium có thể được sử dụng cho bất kỳ tác vụ nào yêu cầu tự động hóa tương tác với trình duyệt.

Bạn có thể sử dụng Selenium trong nút JS không?

Nếu bạn là một Nút. js, thì việc thêm Selenium vào dự án của bạn có thể tạo ra các thử nghiệm có thể thực thi được, có thể xem được, đồng thời cũng là tài liệu sống về cách mã có thể thực hiện - dễ dàng như thêm một .

Selenium là gì và tại sao nó được sử dụng?

Selenium là công cụ nguồn mở tự động hóa trình duyệt web . Nó cung cấp một giao diện duy nhất cho phép bạn viết các tập lệnh kiểm tra bằng các ngôn ngữ lập trình như Ruby, Java, NodeJS, PHP, Perl, Python và C#, trong số những ngôn ngữ khác.

Node JS trong kiểm thử tự động là gì?

js. Nút là thời gian chạy JavaScript cho phép bạn chạy JavaScript trên máy chủ và nhiều người thực sự hào hứng với nó vì nó cho phép các nhà phát triển coi JavaScript là .