12/08/2018, 13:28

Cucumber automation testing

I.Test Automation for Web Applications Ứng dụng phần mềm ngày nay thường được viết bằng các ứng dựng web-based và được chạy trên các trình duyệt internet. Và Test Automation đã trở thành một phần không thể thiếu trong mỗi dự án phần mềm. Test Automation là việc sử dụng một công cụ phần mềm để lặp ...

I.Test Automation for Web Applications

Ứng dụng phần mềm ngày nay thường được viết bằng các ứng dựng web-based và được chạy trên các trình duyệt internet. Và Test Automation đã trở thành một phần không thể thiếu trong mỗi dự án phần mềm. Test Automation là việc sử dụng một công cụ phần mềm để lặp đi lặp lại việc kiểm thử cho một ứng dụng. Có rất nhiều ưu điểm của test automation, hầu hết đều liên quan đến việc lặp test và tốc độ test. Có rất nhiều công cụ mã nguồn mở hỗ trợ cho việc phát triển test automation. Selenium là một giải pháp mã nguồn mở phổ biến nhất

automation_testing_process.jpg

II.Selenium WebDriver

II.1. Introducing Selenium

Selenium là một tập hợp các công cụ phần mềm khác nhau với một cách tiếp cận khác nhau để hỗ trợ kiểm thử tự động. Hầu hết các Selenium QA tập chung vào một hai công cụ để giải quyết vấn đề của dự án. 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 kiểm thử khác nhau.

Selenium hỗ trợ nhiều ngôn ngữ lập trình.

Selenium hỗ trợ chạy trên nhiều OS khác nhau với mức độ chỉnh sửa script hầu như là không có. Thực sự thì điều này phụ thuộc phần lớn vào khả năng viết script của chúng ta.

Selenium thực sự chỉ hỗ trợ chúng ta tương tác với Browser

selenium-webdriver-workflow.jpg

II.2Gherkin

Gherkin là ngôn ngữ mà cucumber có thể hiểu được. Nó cho phép bạn mô tả hành vi của phần mềm mà không đi vào chi tiết việc thực hiện hành vi đó như thế nào

Gherkin phục vụ cho 2 mục đích là tài liệu hướng dẫn và tự động kiểm thử.

Gherkin có một vài quy ước:

  • Một file Gherkin thì có chứa một mô tả của một feature đơn.
  • File name phải có extension là .feature

IV. Cucumber

IV.1. Cucumber scenarios

Kịch bản của cucumber bao gồm các bước như Givens, Whens và Thens

  • Givens: Được sử dụng để mô tả ngữ cảnh của hệ thống hay kịch bản trước khi người dùng tương tác với hệ thống. Một khi cucumber thực thi bước Givens nó sẽ cấu hình hệ thống cũng như tạo ra các đối tượng hay thêm dữ liệu test vào cơ sở dữ liệu.

  • Whens: Được sử dụng để mô tả một sự kiện hay một hành động, nó có thể là một người tương tác với hệ thống, hoặc nó có thể là một sự kiện được kích hoạt bởi một hệ thống khác.

  • Thens: được sử dụng để mô tả một đầu ra mong muốn hay một kết quả.

Inside-Cucumber.jpg

IV.2. Feature

Mỗi một file .feature có duy nhất một feature, được bắt đầu bằng keyword "Feature", một feature thì thường có nhiều scenarios. Mỗi một scenario có nhiều steps, và nó phải bắt đầu bằng các từ khóa Given, When, Then, But hoặc And

Feature còn có thể có background, scenario ouline và example.

Step definitions

Mỗi một step của cucumber sẽ match với một step definition. Một step definition được viết bằng Ruby. Mỗi một step bao gồm một keyword, một chuỗi string hay một regular expression và một block

Given /there are (d+) coffees left in the machine/ do |n|
  @machine = Machine.new(n.to_i)
end

Test automation là một cách làm cho quá trình kiểm thử trở nên dễ dàng, ít tốn nhân lực. Test automation giúp bạn có thể lặp đi lặp lại quá trình test nào đó. Chắc hẳn nó sẽ rất nhàm nếu bạn phải làm việc đó một cách thủ công

Tham khảo https://github.com/cucumber/cucumber/wiki/

https://github.com/khanhhd/myapp

0