Web automation là gì

Selenium là gì?

  • Selenium là công cụ kiểm thử tự động miễn phí ( trên mã nguồn mở) Dành cho các ứng dụng web trên các trình duyệt và các nền tảng khác nhau.

  • Selenium chỉ tập chung vào việc tự động hóa các ứng dụng dựa trên Web.

  • Selenium không chỉ là công cụ duy nhất mà là một bộ phận phần mềm , mỗi bộ phận phục vụ cho các nhu cầu kiểm thử khác nhau của tổ chức. Nó gồm 4 phần

  • Môi trường phát triển tích hợp Selenium (IDE)

  • Selenium Remote Control

  • WebDriver (Phần ví dụ phía dưới mình sẽ dùng cái này)

  • Selenium Grid

Web automation là gì

Trong phạm vi bài viết này mình chỉ tìm hiểu về Selenium WebDriver thôi nhé.

Selenium webdriver là gì?

Selenium WebDriver( gọi tắt là WebDriver) là 1 automation framework của web , cho phép thực thi các test của bạn đối với các trình duyệt khác nhau, không chỉ Firefox, Chrome (nó không giống như Selenium IDE).

WebDriver cũng cho phép bạn sử dụng các ngôn ngữ lập trình trong việc tạo test script của bạn.

Bạn có thể sử dụng conditional operations như if- else hay là switch-case hoặc vòng lặp do-while.

WebDriver hỗ trợ nhiều ngôn ngữ lập trình khác nhau như Java, .Net, PHP, Python, Perl, Ruby. Không nhất thiết bạn phải am hiểu tất cả các ngôn ngữ trên nhưng để sử dụng WebDriver 1 cách hiệu quả hơn, bạn nên biết ít nhất một trong số những ngôn ngữ trên.

Trên đây là khái niệm sơ qua về selenium. Nếu bạn muốn tìm hiểu kỹ có thể vào trang chủ của nó để đọc kỹ hơn nhé.

Cucumber là gì?

  • Cucumber dịch từ tiếng anh sang là quả dưa chuột mà mấy chị em phụ nữ rất thích (:troll)
  • Cucumber là công cụ test tự động, chính xác hơn là công cụ để viết BDD
  • Cucumber được viết dưới dạng plain text language gọi là Gherkin.
  • Phần mở rộng của Gherkin là *.feature

Tìm hiểu về cú pháp Gherkin

Cú pháp gherkin chia thành 3 thành phần chính là Feature, Scenario và step

  • Mỗi file gồm một Feature
  • Mỗi Feature gồm nhiều Scenario, bắt đầu bằng từ khóa “Feature:”. Mỗi Feature là 1 chức năng
  • Mỗi Scenario gồm nhiều step, bắt đầu bằng từ khóa “Scenario:”. Mỗi Scenario là một testcase.
  • Mỗi step sẽ bắt đầu bằng các keyword như Given, When, Then, But hoặc And

Cucumber không phân biệt các step. Tuy nhiên nên viết theo đúng mặt ngữ nghĩa để dễ dàng đọc hiểu.

  • “Given”: Mô tả ngữ cảnh ban đầu của hệ thống
  • “When”: Mô tả hành vi
  • “Then”: Mô tả kết quả
  • “And”, “But”: Kết hợp nhiều step giống nhau.

OK lý thuyết như vậy đủ rồi. Tiếp theo mình sẽ làm một demo nhỏ nhé.

Chuẩn bị

  1. Cài đặt Web Driver(for Linux)

Copy chromedriver vào thư mục /usr/local/bin/.

sudo mv chromedriver /usr/local/bin/

gem install cucumber

gem install gherkin

gem install selenium-webdriver

gem install rspec

Bắt đầu thôi nào Mình sẽ làm 1 demo đơn giản như sau:

Mở trình duyệt lên -> vào google.com -> nhập sun * enter -> click vào link dẫn đến trang https://sun-asterisk.vn/

  • Tạo thư mục cho project (tên gì tùy bạn nhé). Sau đó chạy lệnh
cucumber --init

Web automation là gì

  • Ok sau khi init project thành công gõ lệnh code . để mở VScode lên nhé. Lúc này cấu trúc cây thư mục sẽ như hình dưới:
    Web automation là gì
  1. Viết kịch bản test bằng Gherkin
  • Tạo một file tên là searching.feature trong thư mục features
    Web automation là gì
@SearchingGoogle Feature: Searching Google @sun @smoke Scenario: User want to search a sun-asterisk Given User open google.com Then User type the keyword "sun *" Then User want to check result search Then User want to open sun-asterisk.vn
  1. Cài đặt automation support/env.rb
require "selenium-webdriver" require "rspec/expectations" require "test/unit/assertions"

*Note:

require sử dụng để gọi gến thư viện của các gem mà mình đã cài đặt. Giúp cho ta có thể sử dụng đc cái automation methods trong code của mình.

support/hook.rb

Before do $browser = Selenium::WebDriver.for:chrome end After do $browser.quit end

Note:

  • Tất cả câu lệnh trong Before block sẽ được thực thi trước khi automation step được thực thi.
  • Tất cả câu lệnh trong After block sẽ được thực thi sau khi automation step được thực thi.
  • Selenium::WebDriver.for:chrome sẽ chạy Google Chrome browser thông qua chromedriver. Lưu ý version của trình duyệt và driver phải giống nhau nhé.

support/screen_action.rb

def scroll_up $browser.execute_script("window.scrollTo(0, 0)") end def scroll_down $browser.execute_script("window.scrollTo(0, document.body.scrollHeight)") end def maximize_browser $browser.manage.window.maximize end def minimize_browser $browser.manage.window.minimize end def open_url(url) $browser.navigate.to url end

Tạo thư mục pages trong thư mục features với 2 file là home_page.rb và search_page.rb

home_page.rb

$search_field = "q" $google_search_btn = "btnK" $im_feeling_lucky_btn = "btnI" $sun_link = ".//h3[contains(text(),'Trang chủ - Sun* Inc. Tuyển Dụng')]" def input_home_search_field(keyword) $browser.find_element(:name, $search_field).send_keys(keyword) end def clear_home_search_field $browser.find_element(:name, $search_field).clear end def submit_home_search_field $browser.find_element(:name, $search_field).submit end def tap_google_search_btn $browser.find_element(:name, $google_search_btn).click end def tap_im_feeling_lucky_btn $browser.find_element(:name, $im_feeling_lucky_btn).click end def check_search_result url = $browser.current_url expect(url).to include("sun+*") end def open_sun_asterisk $browser.find_element(:xpath, $sun_link).click end

search_page.rb

$search_field = "q" def input_search_field(keyword) $browser.find_element(:name, $search_field).send_keys(keyword) end def clear_search_field $browser.find_element(:name, $search_field).clear end
  1. Định nghĩa các bước sẽ chạy test case

Tạo file searching_step.rb trong thư mục step_definitions

searching_step.rb

require_relative "../support/screen_action.rb" Given("User open google.com") do maximize_browser() open_url("https://google.com") sleep(2) end Then("User type the keyword {string}") do |keyword| input_home_search_field(keyword) sleep(2) submit_home_search_field end Then("User want to check result search") do check_search_result sleep(2) end Then("User want to open sun-asterisk.vn") do sleep(2) open_sun_asterisk sleep(2) end

Ok như vậy đã xong bây giờ muốn chạy test case chúng ta chỉ cần gõ lệnh

cucumber

Kết quả chạy sẽ như hình phía dưới

Web automation là gì

Web automation là gì

Ok ! cám ơn bạn đã học hết bài viết của mình nhé.

Tài liệu tham khảo: https://cucumber.io/

https://seleniumcucumber.info/selenium-cucumber/

https://github.com/selenium-cucumber/selenium-cucumber-ruby

Nếu bạn đang có website và muốn tự động hóa hoạt động trên website của mình? Hay bạn chưa có website, muốn sở hữu một website, landing page với đầy đủ tính năng bán hàng và CSKH tự động? Chúc mừng bạn đã đến đúng chỗ!

Hi bạn, tôi là Nguyễn Trọng Thơ, Founder iNET & Unica. Tôi đã từng giống bạn, muốn kinh doanh trên Internet nhưng không biết phải bắt đầu từ đâu. Website tạo ra chỉ lèo tèo vài người truy cập. Khách chỉ xem nhưng không mua, không biết cách làm thế nào để tăng tỷ lệ chuyển đổi khách ghé thăm thành người mua hàng, không biết cách lôi kéo khách hàng quay trở lại website,..

Cho đến 1 ngày, tôi biết được Bí Mật của những người thành công trên Internet. Công việc kinh doanh của tôi đã thay đổi, ngày càng phát triển. Hôm nay, tôi quyết định chia sẻ toàn bộ Bí Mật này cũng như kinh nghiệm 17 năm kinh doanh online của mình, trong 1 chương trình đặc biệt:

7 NGÀY HỌC MARKETING VÀ KINH DOANH ONLINE
WEBSITE AUTOMATION
"Xây Dựng Doanh Nghiệp Online 4.0 - Bài Bản - Tự Động - Hiệu Quả"
20H00 - 22H00 | Thứ 2 - CN | HỌC TRÊN ZOOM | MIỄN PHÍ 100%

DAY #1: WEBSITE BUSINESS

Từng bước xây dựng Doanh Nghiệp Online trên nền tảng Website
Tìm hiểu các công cụ tạo website miễn phí: Wordpress, Blogger,..

Bí quyết tăng traffic (khách hàng) vào website của bạn
Chăm sóc khách hàng tự động với WebPush Notification

DAY #2: EMAIL AUTOMATION

Tìm hiểu về SMART BUSINESS MODEL trên Internet4 Bước xây dựng hệ thống thu hút khách hàng tiềm năng

Chuỗi 6 email và tin nhắn Nuôi Dưỡng, CSKH Tự động Đa kênh

DAY #3:  GOOGLE AUTOMATION

SEO MASTER - Bí quyết đưa Website lên Trang 1 Google với quy trình 4 bước đơn giản.
10 Bước để có một website xuất sắc - với hàng ngàn khách truy cập Miễn phí mỗi ngày

Thu hút khách hàng bằng Quảng cáo Google: Search, Display, Shopping, & Re.marketing
Bạn chỉ cần cài đặt quảng cáo 1 lần và để đó cả năm, Google rất thông minh nó sẽ tìm kiếm khách hàng cho bạn, đều đặn mỗi ngày.

DAY #4: FACEBOOK AUTOMATION

Thu hút khách hàng bằng Quảng cáo Facebook: Message, Lead form, Conversion,..
Quy trình 4 bước đơn giản để vận hành Doanh nghiệp online dựa trên nền tảng Facebook

Chốt 1.000+ Đơn hoàn toàn tự động với Chatbot Automation
Tăng 30% doanh thu và khách hàng tiềm năng (Leads) bằng Gamification

Quảng cáo Giảm giá / khuyến mại chẳng ai quan tâm, nhưng tổ chức Mini Game giúp tăng số lượng khách hàng tiềm năng, giới thiệu sản phẩm một cách tự nhiên, đồng thời tăng doanh số tới 30%+

DAY #5: BUSINESS AUTOMATION

Tự Động Hóa & Chuyển Đổi Số Doanh Nghiệp

Làm thế nào để Doanh Nghiệp phát triển bền vững, Nhân viên chủ động làm việc mà không cần Chủ Doanh Nghiệp phải thường xuyên ngồi tại nơi làm việc

DAY #6: MGM & AFFILIATE MARKETING

Tăng doanh số nhờ khách hàng cũ giới thiệu khách hàng mới từ đó nhận được phần thưởng, có thể là sản phẩm / dịch vụ hoặc % hoa hồng theo doanh số.

Chiến lược TĂNG TRƯỞNG không cần vốn, thường dùng bởi các STARTUP và các tập đoàn lớn: Google, Facebook, AirBnB, Tesla, Uber, Grab, Momo, Vinfast, Unica,..

Hỏi đáp tư vấn Doanh Nghiệp về triển khai Website Automation & Affiliate

DAY #7: INFO BUSINESS & WEBINAR AUTOMATION

Bí quyết kinh doanh sản phẩm số trên Internet. Biến KỸ NĂNG, KINH NGHIỆM, ĐAM MÊ của bạn trở thành một công việc kinh doanh có Lợi Nhuận Cao.

Đặc biệt phù hợp với các CHUYÊN GIA, GIẢNG VIÊN và các Doanh Nhân đang kinh doanh Sản Phẩm Vật Lý .. muốn mở rộng công việc kinh doanh hiện tại và có thêm một dòng thu nhập thụ động trên Internet.

Làm thế nào để tạo ra $1.000+ đến $10.000 mỗi tuần chỉ với một Hệ Thống Bán Hàng Tự Động bằng Webinar

Hoàn thành khóa học, bạn sẽ có được LỘ TRÌNH RÕ RÀNG để xây dựng một DOANH NGHIỆP ONLINE Tự động, phát triển bền vững, và Lợi Nhuận Cao.

Web automation là gì

Học miễn phí lại được cấp chứng chỉ khi hoàn thành khóa học - chỉ có ở lớp học Website Automation 

Số lượng có giới hạn. Bạn hãy đăng ký để giữ chỗ ngay hôm nay!

HOTLINE: 0904840440

Web automation là gì