Features

Looking for an alternative to BrowserStack?

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

Des tests automatisés

Compare us to BrowserStack

TestingBot BrowserStack
Parallel Test $120 per month $249 per month
Real Devices for Automated Testing Premium
Codeless Automation -
Real Devices for Live Testing
Mobile Debugging
Unlimited Users -
Linux Virtual Machines -
Puppeteer / Playwright support -

Why chose TestingBot as BrowserStack's Alternative?

Plate-forme de test automatisée

Plus de 2900 navigateurs bureaux véritables

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

Just like BrowserStack, 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 offre une prise en charge complète des cadres d'automatisation de test les plus populaires:

  • Selenium Testing
    Selenium

    Framework d'automatisation de navigateur populaire, utilisant WebDriver, qui prend en charge tous les principaux navigateurs.

  • Appium Testing
    Appium

    Mobile Automation Framework, utilisant WebDriver, fonctionne sur des appareils physiques et des simulateurs / émulateurs.

  • Cypress Testing
    Cypress

    Tests E2E basés sur Javascript sur Chrome et Firefox.

  • Puppeteer Testing
    Puppeteer

    Framework d'automatisation basé sur Chrome DevTools de Google. Prend en charge les navigateurs Chrome et Edge.

  • Playwright Testing
    Playwright

    Similaire à Puppeteer, construit par Microsoft, avec prise en charge de Chrome et Edge.

Plate-forme de test automatisée

Cadre du test

Nous fournissons des exemples de test pour Appium, PHP, Java, Ruby, Python, Nod JS, C# et beaucoup plus. Avec nos nombreux exemples, vous pourrez exécuter vos premiers tests de navigateurs automatisés en un rien de temps. View documentation

<?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();

Test parallèle

Réaliser des tests qui demanderaient normalement des heures en quelques minutes en faisant plusieurs tests à la fois.


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

Sécurité de test locale

TestingBot Tunnel creates a secure and reliable connection between our test cloud and your local network, just like BrowserStack's Local Testing.

Sécurité de test locale
TestingBot Logo

Affordable BrowserStack Alternative

Commencez à tester votre appli avec TestingBot.

Pas de carte de crédit nécessaire