Voer je Selenium tests uit in de cloud met TestingBot

Idealiter wilt je de testscripts uit te voeren in alle verschillende browsers op alle platforms. Dit kan worden bereikt met Selenium Grid. Het opzetten van Selenium Grid kan een tijdrovende taak zijn en je hebt te maken met licentiekosten van de verschillende besturingssystemen. Daarom leveren sommige bedrijven cloud-gebaseerde oplossingen.

TestingBot biedt een cloud-gebaseerde oplossing met vele extra functionaliteiten, zoals: het nemen van screenshots, video-opname van de testuitvoering , geïntegreerde proxy en geavanceerde rapportage.

TestingBot kan worden gebruikt in allerlei programmeertalen. In deze tutorial zie je hoe makkelijk het is om tests uit te voeren in de cloud.

# Hoe te

  1. Maak een account op TestingBot en probeer het gratis. (of kies een maandelijks abonnement)
  2. Download de vereiste library: https://github.com/testingbot
  3. Wijzig het Remote adres, zodat de tests worden uitgevoerd op het externe Grid.

import java.net.URL;

import org.openqa.selenium.By;
import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

public class TestingBotTest {
    private WebDriver driver;

    @BeforeClass
    public void setUp() throws Exception {
        DesiredCapabilities capabillities = DesiredCapabilities.firefox();
        capabillities.setCapability("version", "11");
        capabillities.setCapability("platform", Platform.WINDOWS);
        capabillities.setCapability("name", "Testing Selenium 2");

        driver = new RemoteWebDriver(
                new URL(
                        "http://ClientKey:ClientSecret@hub.testingbot.com:4444/wd/hub"),
                capabillities);
    }

    @Test
    public void testSimple() throws Exception {
        driver.get("http://selenium.polteq.com/prestashop/");
        driver.findElement(By.cssSelector("input#search_query_top")).sendKeys(
                "ipod nano");
        driver.findElement(By.cssSelector("input[name='submit_search']"))
                .click();
        String searchHeader = driver.findElement(By.cssSelector("H1"))
                .getText().toLowerCase();

        Assert.assertTrue(searchHeader.contains("ipod nano"));
    }

    @AfterClass
    public void tearDown() throws Exception {
        driver.quit();
    }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import java.net.URL;

import org.openqa.selenium.By;
import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

public class TestingBotTest {
    private WebDriver driver;

    @BeforeClass
    public void setUp() throws Exception {
        DesiredCapabilities capabillities = DesiredCapabilities.firefox();
        capabillities.setCapability("version", "11");
        capabillities.setCapability("platform", Platform.WINDOWS);
        capabillities.setCapability("name", "Testing Selenium 2");

        driver = new RemoteWebDriver(
                new URL(
                        "http://ClientKey:ClientSecret@hub.testingbot.com:4444/wd/hub"),
                capabillities);
    }

    @Test
    public void testSimple() throws Exception {
        driver.get("http://selenium.polteq.com/prestashop/");
        driver.findElement(By.cssSelector("input#search_query_top")).sendKeys(
                "ipod nano");
        driver.findElement(By.cssSelector("input[name='submit_search']"))
                .click();
        String searchHeader = driver.findElement(By.cssSelector("H1"))
                .getText().toLowerCase();

        Assert.assertTrue(searchHeader.contains("ipod nano"));
    }

    @AfterClass
    public void tearDown() throws Exception {
        driver.quit();
    }
}

Extra opties

Screenshots

Neem een screenshots bij elke stap van de test.


capabillities.setCapability("screenshot", true);
1
capabillities.setCapability("screenshot", true);

Video

Een video opnemen van uw test, die toegankelijk is in de member area.


capabillities.setCapability("screenrecorder", true);
1
capabillities.setCapability("screenrecorder", true);

Test Name

Voeg een naam toe aan de test, die zal verschijnen in onze member area.


capabillities.setCapability("name", "Test Script Name");
1
capabillities.setCapability("name", "Test Script Name");

Custom data

Stuur extra gegevens met de test mee, bijvoorbeeld uw build-nummer, release, server, enz. ..


capabillities.setCapability("extra", "release 1.2.3");
1
capabillities.setCapability("extra", "release 1.2.3");

Voer je Selenium tests uit in de cloud met TestingBot
2 votes, 5.00 avg. rating (94% score)