Watir: Базовые стили написания тестов. Создание путем валидации. Часть 1

Разрабатываемый скрипт будет выполнять следующие действия:

  1. зайти на google.com;
  2. ввести в поисковую форму текст Watir;
  3. нажать поиск и подождать загрузки страницы;
  4. проверить найденные результаты.

Написание тестов путем валидации

Рассмотрим один из самых простых способов, обычно используемый новичками в программировании. Для даного подхода очень важно, если ваши тесты будут содержать комментарии. Это существенно упрощает понимание кода. В ruby, любой текст на одиночной линии, который следует после # - это комментарии и игнорируется интерпретатором во время запуска.

Например:

#*************************************************************
# First lesson of Watir automated testing tool.
#
# Summary: Basic test of Google search engine.
# Description: the next steps to be automated:
#   - going to google.com,
#   - typing ‘Watir’ into search form,
#   - click ‘Search’,
#   - verify results.
#*************************************************************

Далее добавляем библиотеки с которыми будем работать

# Watir IE driver
require 'watir'
# Required in ruby 1.8.7
require 'rubygems'

Создаем объект браузера Internet Explorer, для работы

ie = Watir::IE.new

После этого мы готовы начинать работу с Web приложением. Начинаем описывать наш сценарий

# text to show on console
puts "Beginning of the test for Google search engine"

Открываем главную страницу Google

puts "Step 1:  Go to the Google homepage"
ie.goto "http://www.google.com"

Определяем переменную где будем хранить текст для поиска

#set a variable
search_text = "Watir"

Узнаем локатор поисковой формы

<input maxlength=2048 name=q size=55 title="Google Search" value="">

Вводим туда текст созданной переменной

puts " Step 2: enter "+ search_text +" in the search text field."
ie.text_field(:name, "q").set search_text # "q" is the name of the search field

Узнаем локатор кнопки ‘Search’

<input name=btnG type=submit value="Google Search">

И нажимаем ее

puts " Step 3: click the 'Google Search' button."
ie.button(:name, "btnG").click # "btnG" is the name of the Search button

Метод click после нажатия на кнопку так же ждет, пока загрузится новая страница.

Выводим на экран, что бы мы хотели проверить на странице

puts " Expected Result:"
puts "  A Google page with results should be shown. 'Watir, pronounced water' should be high on the list."

Проверяем результаты

puts " Actual Result:"
if ie.text.include? "Watir, pronounced water"    
  puts "  Test Passed. Found the test string: 'Watir, pronounced water'. Actual Results match Expected Results."
else    
  puts "  Test Failed! Could not find: 'Watir, pronounced water'."
end

Если текс будет найдет, то получим сообщение Test Passed. В противном же случае, если ie.text.include? вернет false, то получим Test Failed.

После проверки показываем сообщение завершение сценария и закрываем браузер.

puts "End of test: Google search."
ie.close

Вот что получилось

#*************************************************************
# First lesson of Watir automated testing tool.
#
# Summary: Basic test of Google search engine.
# Description: the next steps to be automated:
#   - going to google.com,
#   - typing ‘Watir’ into search form,
#   - click ‘Search’,
#   - verify results.
#*************************************************************

# Required in ruby 1.8.7
require 'rubygems'
# Watir IE driver
require 'watir'

ie = Watir::IE.new

# text to show on console
puts "Beginning of the test for Google search engine"
puts "Step 1:  Go to the Google homepage"
ie.goto "http://www.google.com"

#set a variable
search_text = "Watir"puts "Step 2: enter "+ search_text +" in the search text field."

ie.text_field(:name, "q").set search_text # "q" is the name of the search field

puts " Step 3: click the 'Google Search' button."
ie.button(:name, "btnG").click # "btnG" is the name of the Search button

puts " Expected Result:"
puts "  A Google page with results should be shown. 'Watir, pronounced water' should be high on the list."

puts " Actual Result:"
if ie.text.include? "Watir, pronounced water"    
 puts "  Test Passed. Found the text string: 'Watir, pronounced water'. Actual Results match Expected Results."
else    
 puts "  Test Failed! Could not find text: 'Watir, pronounced water'."
end

puts "End of test: Google search."
ie.close

Сохраняем тест как d:\WatirGoogleEngineFirstTest.rb и запускаем из консоли

ruby d:\WatirGoogleEngineFirstTest.rb

На экране получаем сообщения, одно за одним

Beginning of the test for Google search engine
Step 1:  Go to the Google homepage 
Step 2: enter Watir in the search text field. 
Step 3: click the 'Google Search' button.
Expected Result:A Google page with results should be shown. 'Watir, pronounced water' should be high on the list. 
Actual Result:  Test Passed. Found the text string: 'Watir, pronounced water'. Actual Results match Expected Results.
End of test: Google search.

В ходе выполнение теста видим открытый браузер IE и все запрограммированные действия.

1 лайк