A Java client for TestingBot.com's REST API.
Using this client you can interact with the TestingBot API; update Test info, including pass/fail status and other metadata.
https://testingbot.com/support/api
Sign up for an account on TestingBot.com - in the member area you will find the key and secret required to authenticate with the TestingBot API.
TestingbotREST restApi = new TestingbotREST("key", "secret");All API methods can throw these exceptions:
TestingbotApiException(String json)
TestingbotUnauthorizedExceptionRetrieves collection of available browsers https://testingbot.com/support/api
ArrayList<TestingbotBrowser> devices = restApi.getBrowsers();Retrieves collection of available devices https://testingbot.com/support/api#devices
ArrayList<TestingbotDevice> devices = restApi.getDevices();Retrieves collection of available devices https://testingbot.com/support/api#available-devices
ArrayList<TestingbotDevice> devices = restApi.getAvailableDevices();Retrieves information for a specific device https://testingbot.com/support/api#devicedetails
TestingbotDevice device = restApi.getDevice(int deviceId);Update meta-data for a test https://testingbot.com/support/api#updatetest
Stringstatus_messagebooleansuccessStringbuildStringname
boolean success = restApi.updateTest(TestingbotTest test);
boolean success = restApi.updateTest(String sessionId, Map<String, Object> details);Stops a running test https://testingbot.com/support/api#stoptest
boolean success = restApi.stopTest(String sessionId);Deletes a test from TestingBot https://testingbot.com/support/api#deletetest
boolean success = restApi.deleteTest(String sessionId);Retrieves information regarding a test https://testingbot.com/support/api#singletest
TestingbotTest test = restApi.getTest(String sessionId);Retrieves a collection of tests https://testingbot.com/support/api#tests
TestingbotTestCollection test = restApi.getTests(int offset, int count);Retrieves a collection of builds https://testingbot.com/support/api#builds
TestingbotBuildCollection builds = restApi.getBuilds(int offset, int count);Retrieves a collection of tests for a specific build https://testingbot.com/support/api#singlebuild
TestingbotTestBuildCollection tests = restApi.getTestsForBuild(String buildIdentifier);Retrieves information about the current user https://testingbot.com/support/api#user
TestingbotUser user = restApi.getUserInfo();Updates information about the current user https://testingbot.com/support/api#useredit
TestingbotUser user = restApi.updateUserInfo(TestingBotUser);Retrieves tunnels for the current user https://testingbot.com/support/api#apitunnellist
ArrayList<TestingbotTunnel> tunnels = restApi.getTunnels();Deletes/stops a specific tunnel for the current user https://testingbot.com/support/api#apitunneldelete
boolean success = restApi.deleteTunnel(String tunnelID);Uploads a local file to TestingBot Storage https://testingbot.com/support/api#upload
TestingbotStorageUploadResponse uploadResponse = restApi.uploadToStorage(File file);Uploads a remote file to TestingBot Storage https://testingbot.com/support/api#upload
TestingbotStorageUploadResponse uploadResponse = restApi.uploadToStorage(String fileUrl);Retrieves meta-data from a previously stored file https://testingbot.com/support/api#uploadfile
TestingBotStorageFile storedFile = restApi.getStorageFile(String appUrl);Retrieves meta-data from previously stored files https://testingbot.com/support/api#filelist
TestingBotStorageFileCollection fileList = restApi.getStorageFiles(int offset, int count);Deletes a file previously stored in TestingBot Storage https://testingbot.com/support/api#filedelete
boolean success = restApi.deleteStorageFile(String appUrl);Calculates the authenticationHash necessary to share tests https://testingbot.com/support/other/sharing
String hash = restApi.getAuthenticationHash(String identifier);TestingbotREST holds a pooled HTTP client and implements Closeable. Call close() when you are done (or use try-with-resources) to release connections.
try (TestingbotREST restApi = new TestingbotREST("key", "secret")) {
restApi.getUserInfo();
}Retrieves a collection of tests with optional server-side filters (since, browser_id, group, build, skip_fields).
Map<String, String> filters = new HashMap<>();
filters.put("group", "smoke");
TestingbotTestCollection tests = restApi.getTests(int offset, int count, filters);Creates a new test.
boolean success = restApi.createTest(Map<String, Object> testFields);Retrieves devices filtered by platform (Android, iOS, REAL_ANDROID, REAL_IOS) and web capability.
List<TestingbotDevice> devices = restApi.getDevices(String platform, Boolean web);Retrieves the currently available real devices.
List<TestingbotDevice> devices = restApi.getAvailableDevices();Gets the currently active tunnel, or a specific tunnel by id.
TestingbotTunnel tunnel = restApi.getTunnel();
TestingbotTunnel tunnel = restApi.getTunnel(int tunnelId);Boots a new tunnel.
TestingbotTunnel tunnel = restApi.createTunnel();Stops the active tunnel, or checks whether the tunnel is alive.
boolean success = restApi.deleteTunnel();
boolean alive = restApi.isTunnelAlive();Gets the status of a job (e.g. a Codeless test run).
TestingbotJob job = restApi.getJob(String jobId);Retrieves your API keys, or the TestingBot IP ranges (raw JSON).
com.google.gson.JsonElement keys = restApi.getUserKeys();
com.google.gson.JsonElement ranges = restApi.getIpRanges();TestingbotTeam team = restApi.getTeam();
TestingbotTeamMemberCollection members = restApi.getTeamMembers();
TestingbotTeamMember member = restApi.createTeamMember(Map<String, Object> params);
TestingbotTeamMember member = restApi.getTeamMember(int userId);
TestingbotTeamMember member = restApi.updateTeamMember(int userId, Map<String, Object> params);
com.google.gson.JsonElement clientKey = restApi.getTeamMemberClientKey(int userId);
TestingbotTeamCredentialReset reset = restApi.resetTeamMemberKeys(int userId);TestingbotScreenshotCollection screenshots = restApi.getScreenshots();
TestingbotScreenshot batch = restApi.createScreenshots(Map<String, Object> params); // url, resolution, browsers (List)
TestingbotScreenshot batch = restApi.getScreenshot(int screenshotId);boolean success = restApi.updateManualSession(int sessionId, Map<String, Object> fields);
boolean success = restApi.pingManualSession(List<Integer> sessionIds);TestingbotLabTestCollection labTests = restApi.getLabTests();
TestingbotLabCreateAck created = restApi.createLabTest(Map<String, Object> testFields);
TestingbotLabTest labTest = restApi.getLabTest(int labTestId);
boolean success = restApi.updateLabTest(int labTestId, Map<String, Object> testFields);
boolean success = restApi.deleteLabTest(int labTestId);
TestingbotLabTestStepCollection steps = restApi.getLabTestSteps(int labTestId);
boolean success = restApi.setLabTestSteps(int labTestId, List<String> steps);
List<TestingbotBrowser> browsers = restApi.getLabTestBrowsers(int labTestId);
boolean success = restApi.setLabTestBrowsers(int labTestId, String browserIds);
TestingbotLabRunAck run = restApi.triggerLabTest(int labTestId);
boolean success = restApi.stopLabTest(int labTestId);
boolean success = restApi.addLabTestAlert(int labTestId, Map<String, Object> params); // kind, level, content
boolean success = restApi.updateLabTestAlert(int labTestId, Map<String, Object> params);
boolean success = restApi.createLabTestReport(int labTestId, Map<String, Object> params);
boolean success = restApi.updateLabTestReport(int labTestId, Map<String, Object> params);
boolean success = restApi.scheduleLabTest(int labTestId, Map<String, Object> params); // type, day, hour, cronFormat
TestingbotLabRunAck run = restApi.triggerAllLabTests();TestingbotLabSuiteCollection suites = restApi.getLabSuites();
TestingbotLabSuiteCreateAck created = restApi.createLabSuite(Map<String, Object> suiteFields);
TestingbotLabSuite suite = restApi.getLabSuite(int suiteId);
boolean success = restApi.deleteLabSuite(int suiteId);
TestingbotLabTestCollection tests = restApi.getLabSuiteTests(int suiteId);
boolean success = restApi.addLabSuiteTests(int suiteId, String testIds);
boolean success = restApi.removeLabSuiteTest(int suiteId, int testId);
List<TestingbotBrowser> browsers = restApi.getLabSuiteBrowsers(int suiteId);
boolean success = restApi.setLabSuiteBrowsers(int suiteId, String browserIds);
TestingbotLabRunAck run = restApi.triggerLabSuite(int suiteId);TestingbotRestOfflineTest (auth-hash + Gson mapping) and TestingbotRestMockTest (every endpoint, against a local HttpServer) run with no credentials:
mvn -Dtest='TestingbotRestOfflineTest,TestingbotRestMockTest' testTestingBotRestTest runs against the live API and needs your key and secret:
mvn -DTB_KEY=... -DTB_SECRET=... test<dependencies>
<dependency>
<groupId>com.testingbot</groupId>
<artifactId>testingbotrest</artifactId>
<version>1.0.8</version>
<scope>test</scope>
</dependency>
</dependencies