Selenium dưa chuột
Trong hướng dẫn Selenium trước, chúng tôi đã giới thiệu cho bạn về Selenium Grid, một môi trường thực hiện kiểm thử phân tán để tăng tốc độ thực hiện một lần kiểm thử Show Bây giờ, khi kết thúc loạt bài đào tạo về Selenium toàn diện này, chúng ta đang tìm hiểu về kiểm tra Selenium nâng cao và các khái niệm liên quan Trong hướng dẫn này và hướng dẫn tiếp theo, chúng tôi sẽ giới thiệu cho bạn về Cucumber – khung Phát triển theo định hướng hành vi (BDD) được sử dụng với Selenium để thực hiện kiểm thử chấp nhận Bạn sẽ học được gì
giới thiệu dưa chuộtDưa chuột là một công cụ dựa trên khung Phát triển theo định hướng hành vi (BDD) được sử dụng để viết các bài kiểm tra chấp nhận cho ứng dụng web. Nó cho phép tự động hóa xác thực chức năng ở định dạng dễ đọc và dễ hiểu (như tiếng Anh thuần túy) cho Nhà phân tích kinh doanh, Nhà phát triển, Người kiểm tra, v.v. Các tệp tính năng dưa chuột có thể dùng làm tài liệu tốt cho tất cả. Có nhiều công cụ khác như JBehave cũng hỗ trợ khung BDD. Ban đầu, Cucumber được triển khai trong Ruby và sau đó được mở rộng sang Java framework. Cả hai công cụ đều hỗ trợ JUnit bản địa Phát triển hướng hành vi là một phần mở rộng của Phát triển hướng thử nghiệm và nó được sử dụng để kiểm tra hệ thống thay vì kiểm tra đoạn mã cụ thể. Chúng ta sẽ thảo luận thêm về BDD và phong cách viết bài kiểm tra BDD Dưa chuột có thể được sử dụng cùng với Selenium, Watir và Capybara, v.v. Cucumber hỗ trợ nhiều ngôn ngữ khác như Perl, PHP, Python, Net, v.v. Trong hướng dẫn này, chúng ta sẽ tập trung vào Cucumber với ngôn ngữ Java Khái niệm cơ bản về dưa chuộtĐể hiểu về dưa leo, chúng ta cần biết hết đặc điểm của dưa leo và công dụng của nó # 1) Tệp tính năng Các tệp tính năng là một phần thiết yếu của dưa chuột được sử dụng để viết các bước tự động hóa thử nghiệm hoặc thử nghiệm chấp nhận. Điều này có thể được sử dụng làm tài liệu trực tiếp. Các bước là đặc tả ứng dụng. Tất cả các tệp tính năng kết thúc bằng. tiện ích mở rộng tính năng Tệp tính năng mẫu Tính năng. Chức năng đăng nhập Tính năng Để đảm bảo Chức năng đăng nhập hoạt động, Kịch bản. Chức năng đăng nhập Người dùng nhất định điều hướng đến SOFTWARETETINGHELP. COM Kịch bản. Chức năng đăng nhập Có thể bạn quan tâmNgười dùng nhất định điều hướng đến SOFTWARETETINGHELP. COM #2) Tính năng Điều này cung cấp thông tin về chức năng kinh doanh cấp cao (Tham khảo ví dụ trước) và mục đích của Ứng dụng được kiểm tra. Mọi người sẽ có thể hiểu mục đích của tệp tính năng bằng cách đọc bước Tính năng đầu tiên. Phần này về cơ bản được giữ ngắn gọn #3) Kịch bản Về cơ bản, một kịch bản đại diện cho một chức năng cụ thể đang được thử nghiệm. Bằng cách xem kịch bản, người dùng sẽ có thể hiểu ý định đằng sau kịch bản và nội dung của bài kiểm tra. Mỗi kịch bản nên tuân theo định dạng nhất định, khi nào và sau đó. Ngôn ngữ này được gọi là "dưa chuột"
Thí dụ Tính năng. Chức năng đăng nhập Tính năng Kịch bản. Chức năng đăng nhập Ví dụ về nền Tiểu sử Người dùng đã đăng nhập với tư cách là quản trị viên cơ sở dữ liệu #4) Phác thảo kịch bản Phác thảo kịch bản được sử dụng khi cùng một thử nghiệm phải được thực hiện với các tập dữ liệu khác nhau. Hãy lấy ví dụ tương tự. Chúng tôi phải kiểm tra chức năng đăng nhập với nhiều bộ tên người dùng và mật khẩu khác nhau Tính năng. Chức năng đăng nhập Tính năng Để đảm bảo Chức năng đăng nhập hoạt động, Phác thảo kịch bản. Chức năng đăng nhập Người dùng nhất định điều hướng đến SOFTWARETESTINGHELP. COM Ví dụ. Ghi chú
#5) Thẻ Cucumber theo mặc định chạy tất cả các kịch bản trong tất cả các tệp tính năng. Trong các dự án thời gian thực, có thể có hàng trăm tệp tính năng không bắt buộc phải chạy mọi lúc Ví dụ. Các tệp tính năng liên quan đến kiểm tra khói không cần phải chạy mọi lúc. Vì vậy, nếu bạn đề cập đến một thẻ là không khói trong mỗi tệp tính năng có liên quan đến thử nghiệm khói và chạy thử nghiệm dưa chuột với thẻ @SmokeTest. Cucumber sẽ chỉ chạy những tệp tính năng dành riêng cho các thẻ nhất định. Vui lòng làm theo ví dụ dưới đây. Bạn có thể chỉ định nhiều thẻ trong một tệp tính năng Ví dụ về việc sử dụng các thẻ đơn @SmokeTest Tính năng. Chức năng đăng nhập Tính năng Để đảm bảo Chức năng đăng nhập hoạt động, Phác thảo kịch bản. Chức năng đăng nhập Người dùng nhất định điều hướng đến SOFTWARETESTINGHELP. COM Ví dụ. Ví dụ về việc sử dụng nhiều thẻ Như được hiển thị trong ví dụ dưới đây, cùng một tệp tính năng có thể được sử dụng cho các kịch bản thử nghiệm khói cũng như cho kịch bản thử nghiệm đăng nhập. Khi bạn định chạy tập lệnh của mình để kiểm tra khói, hãy sử dụng @SmokeTest. Tương tự, khi bạn muốn tập lệnh của mình chạy để kiểm tra Đăng nhập, hãy sử dụng thẻ @LoginTest Bất kỳ số lượng thẻ nào cũng có thể được đề cập cho tệp tính năng cũng như cho kịch bản @SmokeTest @LoginTest Tính năng. Chức năng đăng nhập Tính năng Để đảm bảo Chức năng đăng nhập hoạt động, Phác thảo kịch bản. Chức năng đăng nhập Người dùng nhất định điều hướng đến SOFTWARETETINGHELP. COM Ví dụ. Tương tự, bạn có thể chỉ định các thẻ để chạy kịch bản cụ thể trong tệp tính năng. Vui lòng kiểm tra ví dụ dưới đây để chạy kịch bản cụ thể Tính năng. Chức năng đăng nhập Tính năng Để đảm bảo Chức năng đăng nhập hoạt động, @positiveScenario Người dùng nhất định điều hướng đến SOFTWARETETINGHELP. COM @negaviveScenario Người dùng nhất định điều hướng đến SOFTWARETETINGHELP. COM #6) Người chạy JUnit Để chạy tệp tính năng cụ thể, dưa chuột, hãy sử dụng Trình chạy JUnit tiêu chuẩn và chỉ định các thẻ trong @Cucumber. Tùy chọn. Nhiều thẻ có thể được cung cấp bằng cách sử dụng dấu phẩy riêng biệt. Tại đây bạn có thể chỉ định đường dẫn của báo cáo và loại báo cáo bạn muốn tạo Ví dụ về Junit Runner import cucumber.api.junit.Cucumber;import org.junit.runner.RunWith; @RunWith(Cucumber.class) @Cucumber.Options(format={"SimpleHtmlReport:report/smokeTest.html"},tags={"@smokeTest"}) Public class JUnitRunner { } Tương tự, bạn có thể hướng dẫn cho dưa chuột chạy nhiều thẻ. Ví dụ dưới đây minh họa cách sử dụng nhiều thẻ trong dưa chuột để chạy các kịch bản khác nhau import cucumber.api.junit.Cucumber; import org.junit.runner.RunWith; @RunWith(Cucumber.class) @Cucumber.Options(format={"SimpleHtmlReport:report/smokeTest.html"},tags={"@smokeTest",”@LoginTest”}) Public class JUnitRunner { } #7) Báo cáo dưa chuột Cucumber tạo định dạng HTML của riêng mình. Tuy nhiên, báo cáo tốt hơn có thể được thực hiện bằng Jenkins hoặc công cụ tre. Chi tiết về báo cáo được đề cập trong chủ đề tiếp theo của dưa chuột Thiết lập dự án dưa chuộtGiải thích chi tiết về thiết lập dự án dưa chuột có sẵn trong hướng dẫn tiếp theo. Vui lòng tham khảo Hướng dẫn dưa chuột Phần 2 để biết thêm thông tin về thiết lập dự án. Hãy nhớ rằng không cần cài đặt phần mềm bổ sung cho dưa chuột Triển khai tệp Tính năng Chúng tôi phải triển khai các bước này trong Java để kiểm tra các tệp tính năng. Cần tạo một lớp chứa các câu lệnh đã cho, khi nào và sau đó. Cucumber sử dụng các chú thích của nó và tất cả các bước được nhúng trong các chú thích đó (đã cho, khi nào, sau đó). Mỗi cụm từ bắt đầu bằng “^” để dưa chuột hiểu bắt đầu bước. Tương tự, mỗi bước kết thúc bằng “$”. Người dùng có thể sử dụng các biểu thức chính quy để chuyển dữ liệu thử nghiệm khác nhau. Biểu thức chính quy lấy dữ liệu từ các bước tính năng và chuyển sang định nghĩa bước. Thứ tự của các tham số phụ thuộc vào cách chúng được truyền từ tệp tính năng. Vui lòng tham khảo hướng dẫn tiếp theo để thiết lập dự án và ánh xạ giữa các tệp tính năng và các lớp Java Thí dụ Ví dụ dưới đây là để minh họa cách các tệp tính năng có thể được triển khai Trong ví dụ này, chúng tôi chưa sử dụng bất kỳ API Selenium nào. Điều này chỉ cho thấy cách dưa chuột hoạt động như một khung độc lập. Vui lòng làm theo hướng dẫn tiếp theo để tích hợp selen với dưa chuột public class LoginTest { @Given("^user navigates to SOFTWARETETINGHELP.COM$") public void navigatePage() { system.out.println(“Cucumber executed Given statement”); } @When("^user logs in using Username as \"(.*)\" and Password \"(.*)\"$") public void login(String usename,String password) { system.out.println(“Username is:”+ usename); system.out.println(“Password is:”+ password); } @When("^click the Submit button$") public void clickTheSubmitButton() { system.out.println(“Executing When statement”) } @Then("^Home page should be displayed$") public void validatePage() { system.out.println(“Executing Then statement”) } @Then("^login should be successful$") public void validateLoginSuccess() { system.out.println(“Executing 2nd Then statement”) } } Khi bạn thực thi lớp người chạy dưa chuột, dưa chuột sẽ bắt đầu đọc các bước của tệp tính năng. Ví dụ: khi bạn thực thi @smokeTest, dưa chuột sẽ đọc Bước tính năng và Đưa ra một tuyên bố về kịch bản. Ngay khi dưa chuột tìm thấy câu lệnh Given, câu lệnh Given tương tự sẽ được tìm kiếm cho các tệp java của bạn. Nếu bước tương tự được tìm thấy trong tệp java thì dưa chuột sẽ thực thi chức năng được chỉ định cho cùng một bước nếu không dưa chuột sẽ bỏ qua bước Sự kết luậnTrong hướng dẫn này, chúng tôi đã đề cập đến các tính năng của công cụ dưa chuột và cách sử dụng nó trong tình huống thời gian thực. Trong chương tiếp theo, chúng tôi sẽ giới thiệu cách thiết lập một dự án dưa chuột – java và cách tích hợp Selenium WebDriver với Cucumber Chúng ta có thể sử dụng Cucumber và Selenium với Python không?Bạn sẽ có thể tạo khung thử nghiệm BDD của Cucumber bằng Python, Behave, Selenium WebDriver ,.
Chúng ta có thể sử dụng Selenium với Dưa chuột không?Selenium và Cucumber là sự kết hợp tuyệt vời khi nói đến tự động hóa ứng dụng web , vì Cucumber cho phép bạn viết bài kiểm tra nhanh chóng bằng ngôn ngữ giống tiếng Anh và Selenium cho phép bạn chạy trên .
Selenium hay dưa chuột cái nào tốt hơn?Selenium hỗ trợ các câu điều kiện nhưng Cucumber thì không. Test Scripts được viết dựa trên các yêu cầu trong Selenium nhưng với Cucumber, bạn bắt đầu với các kịch bản trước. Tập lệnh Selenium khó phát triển trong khi Cucumber dễ phát triển hơn .
Dưa chuột trong Python là gì?Cucumber là công cụ thử nghiệm hỗ trợ khung Phát triển theo định hướng hành vi (BDD) . Nó xác định hành vi của ứng dụng bằng cách sử dụng văn bản tiếng Anh đơn giản, được xác định bởi một ngôn ngữ gọi là Gherkin. Cucumber cho phép xác thực chức năng tự động dễ đọc và dễ hiểu. |
Bài Viết Liên Quan
Liên kết Google sheet với Google Calendar
Nhớ hồi còn đi học, chả phải để tâm, lo lắng đến điều gì, chỉ có đến dịp Tết là mình ngồi đếm lịch âm để biết số ngày nghỉ còn lại. Mỗi ...
Kiểu động trong Python là gì
Ngôn ngữ lập trình có thể được phân loại thành hai loại Dynamic typing và static typing. Python là một ngôn ngữ được gõ động. Điều này có nghĩa là trình ...
Tuyển bóng đá K-State 2023
MANHATTAN - Những ngày và giờ trước ngày ký hợp đồng bóng đá ở trường đại học có thể là những ngày khó khăn đối với huấn luyện viên cũng như điều ...
Làm thế nào để bạn tìm thấy lỗi tiêu chuẩn của một danh sách trong python?
Bài viết này hướng dẫn bạn cách tính độ lệch chuẩn của một danh sách các giá trị số đã cho trong PythonĐịnh nghĩa và xây dựng vấn đềĐộ lệch chuẩn ...
Không gian tên hvac Python
Đã thử nghiệm với bản phát hành mới nhất, HEAD ref và 3 phiên bản nhỏ trước đó (tính từ bản phát hành mới nhất) của Vault. Hỗ trợ chính thức hiện ...
OPPO A7 giá bao nhiêu
Đặc điểm sản phẩmModel:A7 64GBMàu sắc:XanhNhà sản xuất:OPPOXuất xứ:Trung QuốcThời gian bảo hành:12 ThángĐịa điểm bảo hành:Nguyễn KimRAM:4 GBBộ nhớ ...
CakePHP có phải là một khung không?
CakePHP là một nền tảng mã nguồn mở rất nhanh được sử dụng để phát triển PHP Framework. Nó là một mô hình dựa trên MVC với mục tiêu là tạo ứng dụng ...
Python lấy kích thước của chuỗi
Xây dựng vấn đề. Đưa ra một chuỗi my_string. Tìm số ký tự của chuỗi. Ví dụ: chuỗi what is my length? phải mang lại số nguyên 18 vì nó có 18 ký tựDưới ...
Đặt hình ảnh nổi bật WordPress
Một hình ảnh nổi bật của WordPress có chức năng như một tấm thiệp chào mừng trực quan, một gợi ý để khách truy cập vào và tận hưởng những gì đằng ...
Cách xem World Juniors 2023 tại Mỹ
Hoa Kỳ và Canada sẽ đối đầu vào Thứ Tư, ngày 4 tháng 1 năm 2023, trong trận bán kết IIHF World JuniorTrò chơi sẽ diễn ra lúc 6. 30 giờ. m. EST và sẽ được phát ...
Bootstrap PHP MySQL
Trong bài đăng này, Chúng ta sẽ xem cách phát triển Ứng dụng CRUD (Tạo, Đọc, Cập nhật, Xóa) bằng Bootstrap 5, PHP - OOP, PDO - MySQL và Tìm nạp API của ES6 ...
Cá bao nhiêu tiền 1kg
Tìm hiểu về giá cá bớp biển bao nhiêu tiền 1kg? Cá bớp biển và cá bớp nuôi giá cả có gì khác nhau không? Cá bớp tươi và cá bớp đông lạnh chất lượng ...
Cách hiển thị tệp html trong studio android
Bạn có thể cung cấp nội dung dựa trên web—chẳng hạn như HTML, JavaScript và CSS—để ứng dụng của bạn sử dụng mà bạn biên dịch tĩnh vào ứng dụng thay ...
Tệp đã đọc () trong Python là gì?
Nếu chương trình và tệp nằm trong cùng một thư mục, bạn chỉ cần chỉ định tên tệp của tệp. Nếu không, bạn cần bao gồm đường dẫn đến tệp cũng như ...
Hướng dẫn văn bản python
GHI CHÚ. Trang web này không được dùng nữa. Trang web sẽ ngừng hoạt động sau ngày 31 tháng 1 năm 2023 và lưu lượng truy cập sẽ chuyển hướng đến trang web mới ...
Làm cách nào để bao gồm nhiều tệp PHP?
Không có sự khác biệt lớn giữa include và include_once. Sự khác biệt chính là bao gồm sẽ thêm tệp được chỉ định mỗi khi nó được gọi. Tuy nhiên, ...
Đăng ký SLCC mùa xuân 2023
Ngày 17/10 mở đăng ký cho tân sinh viên. Sinh viên hiện tại cũng có thể tiếp tục đăng ký lớp học tại thời điểm này. Để biết thêm thông tin, hãy liên hệ ...
Mảng từ phương thức trong JavaScript là gì?
Trong JavaScript, mảng là một cấu trúc dữ liệu chứa danh sách các phần tử lưu trữ nhiều giá trị trong một biến duy nhất. Sức mạnh của mảng JavaScript nằm ...
Làm cách nào để sử dụng FFmpeg trong quy trình con Python?
Tạo một thể hiện của lớp from better_ffmpeg_progress import FfmpegProcess # Pass a list of FFmpeg arguments, like you would if using subprocess.run() process = FfmpegProcess([ffmpeg, ...