Selenium (software)
Šablona:Infobox Software Selenium je nástroj pro automatické testování webových aplikací, skládající se z několika navzájem se doplňujících komponent: Selenium IDE, Selenium RC, Selenium WebDriver a Selenium Grid.
Selenium IDE
Původní komponenta dostupná jako plugin do internetového prohlížeče Mozilla Firefox. Jedná se o nejjednodušší způsob, jak se Seleniem vytvořit automatické testy, neboť ty se nahrávají obdobně jako např. makra v kancelářském balíku Microsoft Office. Instalace probíhá stejně jako u všech ostatních doplňků u tohoto prohlížeče. Pro uložení příkazu využívá Selenium IDE sadu pokynů (nazývaných Selenese). [1] Tyto pokyny jsou uloženy ve formě řádků HTML tabulek, kdy každý řádek má tři buňky:
- Specifikace příkazu
- Argument
- Argument
Jednoduchý test může tedy vypadat následovně:
- Otevři stránky www.google.com
- Napiš heslo: "Wikipedia" do elementu s id "gbqfq"
- Klikni na odkaz s textem: "Wikipedie, otevřená encyklopedie" a počkej, než se stránka načte
Takto vypadá uložený test ve své pravé podobě (napravo ukázka zaznamenaného testu v Selenium IDE):

<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">selenium_wiki</td></tr>
</thead><tbody>
<tr>
<td>open</td>
<td>http://www.google.cz</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>id=gbqfq</td>
<td>Wikipedia</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>link=Wikipedie, otevřená encyklopedie</td>
<td></td>
</tr>
</tbody></table>
</body>
Selenium RC
Selenium RC je nástroj umožňující vytváření automatických testů ve velké škále programovacích jazyků. Základním stavebním kamenem Selenium RC je server, který představuje proxy server pro instance internetového prohlížeče, které sám spouští a vypíná. Pro každý z podporovaných jazyků je připravena knihovna funkcí. Oproti Selenium IDE má několik výhod:
- Možnost spouštět testy na více prohlížečích, než jen na Mozilla Firefox
- Výhody skutečného programovacího jazyka
Ukázka testu v C#
Tento test využívá testovací framework NUnit a vykonává tu samou činnost, jako předchozí ukázka u Selenium IDE, tudíž hledá heslo Wikipedia na vyhledávači Google.
using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using NUnit.Framework;
using Selenium;
namespace SeleniumTests
{
[TestFixture]
public class NewTest
{
private ISelenium selenium;
private StringBuilder verificationErrors;
[SetUp]
public void SetupTest()
{
selenium = new DefaultSelenium("localhost", 4444, "*firefox", "http://www.google.com/");
selenium.Start();
verificationErrors = new StringBuilder();
}
[TearDown]
public void TeardownTest()
{
try
{
selenium.Stop();
}
catch (Exception)
{
// Pokud se nepodaří zavřít prohlížeč, ignoruj chyby
}
Assert.AreEqual("", verificationErrors.ToString());
}
[Test]
public void TheNewTest()
{
selenium.Open("http://www.google.com");
selenium.Type("id=gbqfq", "Wikipedia");
selenium.Click("link=Wikipedie, otevřená encyklopedie");
}
}
}
Ukázka testu v Javě
V programovacím jazyce Java je situace obdobná, využívá se zde framework JUnit.
package com.example.tests;
import com.thoughtworks.selenium.*;
public class NewTest extends SeleneseTestCase {
public void setUp() throws Exception {
setUp("http://www.google.com/", "*firefox");
}
public void testNew() throws Exception {
selenium.Open("http://www.google.com");
selenium.Type("id=gbqfq", "Wikipedia");
selenium.Click("link=Wikipedie, otevřená encyklopedie");
}
}