Features

Looking for an alternative to SauceLabs?

Run automated, visual and manual tests on real desktop browsers and physical mobile devices, without having to pay extra.

Automatisiertes Testen

Compare us to SauceLabs

TestingBot SauceLabs
Parallel Test $120 per month $199 per month
Real Devices for Automated Testing Premium
Codeless Automation -
Real Devices for Live Testing
Mobile Debugging
Unlimited Users -

Why chose TestingBot as SauceLabs's Alternative?

Automatisierte Testplattform

2900+ echte Desktop-Browser

TestingBot provides thousands of real desktop browsers and physical mobile devices.

Just like SauceLabs, we provide access to all popular browsers, including: Chrome, Firefox, Safari, Google Chrome, Microsoft Edge, Opera and more.

View supported browsers and devices

Test Automation Frameworks

TestingBot bietet vollständige Unterstützung für die beliebtesten Test Automation Frameworks:

  • Selenium Testing
    Selenium

    Beliebtes Browser Automation Framework mit WebDriver, das alle gängigen Browser unterstützt.

  • Appium Testing
    Appium

    Das Mobile Automation Framework, das WebDriver verwendet, kann auf physischen Geräten und Simulatoren / Emulatoren ausgeführt werden.

  • Cypress Testing
    Cypress

    Javascript-basierte E2E-Tests auf Chrome und Firefox.

  • Puppeteer Testing
    Puppeteer

    Chrome DevTools-basiertes Automatisierungsframework von Google. Unterstützt Chrome- und Edge-Browser.

  • Playwright Testing
    Playwright

    Ähnlich wie Puppeteer von Microsoft mit Unterstützung für Chrome und Edge.

Automatisierte Testplattform

Test-Frameworks

Wir bieten Testbeispiele für Appium, PHP, Java, Ruby, Python, NodeJS, C# und viele weitere Sprachen. Mit unseren vielen Beispielen können Sie Ihre ersten, automatisierten Browser-Tests in kürzester Zeit durchführen. Dokumentation anzeigen

<?php

    require_once('vendor/autoload.php');
    use Facebook\WebDriver\Remote\RemoteWebDriver;
    use Facebook\WebDriver\WebDriverBy;

    $web_driver = RemoteWebDriver::create(
    "https://api_key:api_secret@hub.testingbot.com/wd/hub",
        array("platform"=>"WINDOWS", "browserName"=>"chrome", "version" => "latest", "name" => "First Test"), 120000
    );
    $web_driver->get("http://google.com");

    $element = $web_driver->findElement(WebDriverBy::name("q"));
    if($element) {
      $element->sendKeys("TestingBot");
      $element->submit();
    }
    print $web_driver->getTitle();
    $web_driver->quit();
?>
#!/usr/bin/env ruby

require 'rubygems'
require 'selenium-webdriver'

caps = Selenium::WebDriver::Remote::Capabilities.new
caps["browserName"] = "chrome"
caps["version"] = "latest"
caps["platform"] = :WINDOWS
caps["name"] = "My First Test"

client = Selenium::WebDriver::Remote::Http::Default.new
client.timeout = 120

driver = Selenium::WebDriver.for(
	:remote,
	:url => "https://API_KEY:API_SECRET@hub.testingbot.com/wd/hub",
	:desired_capabilities => caps,
	:http_client => client)
driver.navigate.to "http://www.google.com/ncr"
element = driver.find_element(:name, 'q')
element.send_keys "TestingBot"
element.submit
puts driver.title
driver.quit
import unittest
import sys

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from testingbotclient import TestingBotClient

class TestTestingBotClient(unittest.TestCase):

    def setUp(self):
		desired_cap = { 'platform': 'Windows', 'browserName': 'chrome', 'version': 'latest-1' }

		self.driver = webdriver.Remote(
		    command_executor='http://key:secret@hub.testingbot.com/wd/hub',
		    desired_capabilities=desired_cap)

    def test_google_example(self):
		self.driver.get("http://www.google.com")
		elem = self.driver.find_element_by_name("q")
		elem.send_keys("TestingBot")
		elem.submit()

if __name__ == '__main__':
    unittest.main()
import org.openqa.selenium.By;
import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

import java.net.URL;

public class JavaSample {

  public static final String KEY = "KEY";
  public static final String SECRET = "SECRET";
  public static final String URL = "http://" + KEY + ":" + SECRET + "@hub.testingbot.com/wd/hub";

  public static void main(String[] args) throws Exception {

	DesiredCapabilities caps = new DesiredCapabilities();
	caps.setCapability("browserName", "IE");
	caps.setCapability("version", "11");
	caps.setCapability("platform", "WIN10");
	caps.setCapability("name", "My First Test");

	WebDriver driver = new RemoteWebDriver(new URL(URL), caps);
	driver.get("http://www.google.com/ncr");
	WebElement element = driver.findElement(By.name("q"));

	element.sendKeys("TestingBot");
	element.submit();
	driver.quit();
  }
}
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Remote;

namespace SeleniumTest {
  class Program {
    static void Main(string[] args) {
      IWebDriver driver;
      DesiredCapabilities capability = DesiredCapabilities.Firefox();
      capability.SetCapability("key", "key");
      capability.SetCapability("secret", "secret");
      capability.SetCapability("version", "latest-1");
      driver = new RemoteWebDriver(
        new Uri("https://hub.testingbot.com/wd/hub/"), capability
      );
      driver.Navigate().GoToUrl("http://www.google.com/ncr");
      Console.WriteLine(driver.Title);

      IWebElement query = driver.FindElement(By.Name("q"));
      query.SendKeys("TestingBot");
      query.Submit();

      driver.Quit();
    }
  }
}
const webdriver = require('selenium-webdriver');
const capabilities = {
 'platform' : 'WIN10',
 'browserName' : 'chrome',
 'version' : 'latest',
 'name': 'NodeJS Sample Test'
}
async function runTest () {
  let driver = new webdriver.Builder()
    .usingServer('https://api_key:api_secret@hub.testingbot.com/wd/hub')
    .withCapabilities(capabilities)
    .build();
  await driver.get("https://www.google.com/ncr");
  const inputField = await driver.findElement(webdriver.By.name("q"));
  await inputField.sendKeys("TestingBot", webdriver.Key.ENTER);
  try {
    await driver.wait(webdriver.until.titleMatches(/TestingBot/i), 5000);
  } catch (e) {
    await inputField.submit();
  }
  try {
    await driver.wait(webdriver.until.titleMatches(/TestingBot/i), 5000);
    console.log(await driver.getTitle());
  } catch (e) {
    console.error(e);
  }
  await driver.quit();
}
runTest();

Paralleles Testen

Führen Sie innerhalb von Minuten Tests durch, die meist Stunden dauern, indem Sie mehrere Tests gleichzeitig durchführen.


TestingBot's pricing per parallel test is more affordable than SauceLabs.

Lokale Testen-Sicherheit

TestingBot Tunnel creates a secure and reliable connection between our test cloud and your local network, just like Sauce Connect.

Lokale Testen-Sicherheit
TestingBot Logo

Affordable SauceLabs Alternative

Jetzt beginnen, Ihre Apps mit TestingBot zu testen.

Keine Kreditkarte benötigt