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.

Las pruebas automatizadas

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 choose TestingBot as BrowserStack's alternative?

Plataforma de prueba automatizada

Más de 1000 reales navegadores de escritorio

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 ofrece soporte completo para los marcos de automatización de pruebas más populares:

  • Selenium Testing
    Selenium

    Popular Browser Automation Framework, que utiliza WebDriver, que es compatible con los principales navegadores.

  • Appium Testing
    Appium

    Mobile Automation Framework, que utiliza WebDriver, se ejecuta en dispositivos físicos y simuladores / emuladores.

  • Cypress Testing
    Cypress

    Pruebas E2E basadas en Javascript en Chrome y Firefox.

  • Puppeteer Testing
    Puppeteer

    Marco de automatización basado en Chrome DevTools de Google. Es compatible con los navegadores Chrome y Edge.

  • Playwright Testing
    Playwright

    Similar a Puppeteer, creado por Microsoft, con soporte para Chrome y Edge.

Plataforma de prueba automatizada

Marcos de prueba

Proporcionamos ejemplos de ensayo para Appium, PHP, Java, Ruby, Python, NodeJS, C # y muchos más. Con nuestros muchos ejemplos, usted será capaz de ejecutar sus primeras pruebas del navegador automatizados en ningún momento. Ver documentación

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

Las pruebas en paralelo

Pruebas completas que por lo general duran horas en cuestiones de minutos mediante la ejecución de pruebas múltiples de forma simultánea.


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

Seguridad Pruebas de local

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

Seguridad Pruebas de local
TestingBot Logo

Affordable BrowserStack Alternative

Empezar a probar sus aplicaciones con TestingBot.

No se requiere tarjeta de crédito