Разрабатываемый скрипт будет выполнять следующие действия:
- зайти на google.com;
- ввести в поисковую форму текст Watir;
- нажать поиск и подождать загрузки страницы;
- проверить найденные результаты.
Написание тестов путем валидации
Рассмотрим один из самых простых способов, обычно используемый новичками в программировании. Для даного подхода очень важно, если ваши тесты будут содержать комментарии. Это существенно упрощает понимание кода. В 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 и все запрограммированные действия.