Ruby and Python webdriver bindings


С самого начала Nerrvana поддерживала выполнение тестов, написанных на Java и PHP. Некоторое время назад мы добавили возможность выполнять тесты, написанные на Ruby и Python, однако в системе были установлены библиотеки только для работы с первой версией Selenium.

Рады сообщить, что теперь Nerrvana полноценно поддерживает тесты, написанные на Ruby и Python и использующие Selenium 2 (webdriver).

Python: используется версия selenium 2.33.0.
Ruby: используется версия selenium-webdriver 2.33.0

Для Ruby в систему также был добавлен фреймворк для тестирования Rspec, а для Python – nose.

После регистрации в вашем аккаунте вы увидите примеры тестранов для каждого из доступных языков. Если вы не имеете опыта в тестировании с Selenium, вы можете писать свои тесты, отталкиваясь от этих примеров. Если же вы опытный тестировщик, вы может заглянуть в примеры просто чтобы понять, какие параметры при создании экземпляра драйвера требуются для работы с Nerrvana.

Или вы можете взглянуть на примеры прямо здесь. Тестовые примеры идут на сайт Википедии, ищут по слову “Selenium”, и проверяют, имеется ли на странице результата фраза “This article is about the chemical element.”.
В примерах я оставил только существенные вещи. Вы можете обратить внимание, что, как и раньше, ваши тесты, скорее всего, не придётся модифицировать для запуска в Nerrvana – достаточно всего лишь использовать в качестве драйвера remote webdriver. Несмотря на то, что в некоторых примерах в capabilities указан конкретный браузер, Неррвана будет использовать те браузеры, которые вы выбрали из UI при создании тестрана (или которые задали, используя Nerrvana API).

Ruby:

require "rubygems"
require "selenium-webdriver"
 
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome()
driver = Selenium::WebDriver.for(:remote, :desired_capabilities => capabilities)
driver.get "http://en.wikipedia.org"
driver.find_element(:id, "searchInput").send_keys "Selenium"
driver.find_element(:id, "searchInput").submit
if driver.find_element(:tag_name => "body").text.include?("This article is about the chemical element.")
    print 'Test passed'
else
    print 'Test failed'
end
driver.save_screenshot "./screenshot.png"
driver.quit

Python:

View Code PYTHON
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
 
driver = webdriver.Remote(desired_capabilities=webdriver.DesiredCapabilities.CHROME)
driver.get("http://en.wikipedia.org")
driver.find_element_by_id("searchInput").send_keys("Selenium")
driver.find_element_by_id("searchInput").submit()
 
time.sleep(1)
 
if "This article is about the chemical element." in driver.find_element_by_tag_name("body").text:
    print 'Test passed'
else:
    print 'Test failed'
 
driver.get_screenshot_as_file('./screenshot.png')
driver.quit()

Java:

import com.thoughtworks.selenium.*;
import java.io.*;
import org.openqa.selenium.*;
import org.openqa.selenium.remote.*;
import java.net.URL;
 
public class SimpleTest {
    private void simpleWebDriverTest() {
        DesiredCapabilities capability = new DesiredCapabilities();
        capability.setCapability("browserName", "firefox);
 
        try {
            driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability);
            driver.get("http://en.wikipedia.org");
 
            WebElement element = driver.findElement(By.id("searchInput"));
            element.sendKeys("Selenium");
            element.submit();
 
            if (driver.getPageSource().contains("This article is about the chemical element.")) {
                System.out.println("Test passed");
            } else {
                System.out.println("Test failed");
            }
 
            driver.quit();
        } catch (Exception e) {
            if (driver != null) {
                driver.quit();
            }
            System.out.println("Test failed");
        }
    }
 
    public static void main(String[] args) {
        SimpleTest me = new SimpleTest();
        me.simpleWebDriverTest();
    }
}

PHP:
(Обратите внимание, что Nerrvana не подключает PHP библиотеку для Selenium автоматически. Поэтому вы можете использовать любой PHP драйвер для Selenium, включив их в свой проект. Пример ниже – для Selenium-RC драйвера)

require_once 'Selenium.php';
 
$selenium = new Testing_Selenium("*chrome", "http://en.wikipedia.org", "localhost", 4444);
$selenium->start();
$selenium->open("http://en.wikipedia.org");
$selenium->type("searchInput", "Selenium");
$selenium->submit("searchform");
$selenium->waitForPageToLoad("30000");
 
if ($selenium->isTextPresent("This article is about the chemical element.")) {
    echo("Test passed");
} else {
    echo("Test failed");
}
 
$selenium->stop();
Print this post | Home

Comments are closed.