9. Путь #2. Code It!
Плюсы:
• Фреймворк под конкретный проект
• Гибкость
• Удобно поддерживать
• Надежно
10. Путь #2. Code It
Минусы:
• Нужен специалист, который сможет реализовать
фреймворк.
• Специалист так же нужен и для поддержки этих
тестов
• Требуется время для создания фреймворка и новых
тестов
11. Путь #3
1. Написать фреймворк при помощи автоматизатора
или программиста.
2. Поддерживать тесты силами существующей команды
тестировщиков, без технического специалиста.
Фреймворк должен позволять эффективно писать
тесты, а не кодировать их!
18. Ruby + другие языки
Ruby можно использовать не вместо, а вместе с
другими языками, например с Java или С#.
JRuby – Java реализация Ruby. Работают все
библиотеки, может запускаться из Java кода.
IronRuby – .NET реализация Ruby.
19. Ruby + Selenium 2.0
Полностью поддерживает Selenium 2.0 Webdriver.
Все что нужно сделать:
>> gem install selenium-webdriver
И можно работать.
20. Ruby + Selenium 2.0
Пример на Ruby:
require 'rubygems'
require 'selenium-webdriver‘
driver = Selenium::WebDriver.for :firefox
driver.get "http://google.com"
element = driver.find_element :name => "q"
element.send_keys "Cheese!"
element.submit
puts "Page title is #{driver.title}"
wait = Selenium::WebDriver::Wait.new(:timeout => 10)
wait.until { driver.title.downcase.start_with? "cheese!" }
puts "Page title is #{driver.title}"
driver.quit
21. Ruby + Selenium 2.0
Тот же пример на Java:
package org.openqa.selenium.example;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
public class Selenium2Example {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com");
WebElement element = driver.findElement(By.name("q"));
element.sendKeys("Cheese!");
element.submit();
System.out.println("Page title is: " + driver.getTitle());
(new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver d) {
return d.getTitle().toLowerCase().startsWith("cheese!");
}
});
System.out.println("Page title is: " + driver.getTitle());
driver.quit();
}
}
22. В чем выгода?
• Фреймворк реализуется быстрее
• Меньше кода
• Ничего лишнего
• Можно научить не программиста азам за короткий
срок
26. Cucumber
Пример feature:
Feature: Home page is working
Scenario: The application has a home page
Given web application is started on <http://localhost:8080/portal>
When I visit the home page
Then I should see the home page
Пример описания шага на Ruby:
Given /^web application is started on (.*)/do |host|
#Some ruby + selenium code here
end
29. В итоге
• Ruby отличный выбор чтобы быстро начать писать полноценный
фреймворк для тестирования
• Ruby может быть использован вместе с другими языками, как
Java или C#
• При помощи Cucumber можно добиться написания автотестов
без кодирования, на естественном языке
• Поддерживать такие тесты проще