Features

Sharing Tests

Below are various ways to share, embed or link to a test or build on TestingBot.

To share, view or link to a test, it is important to know its sessionId.

Selenium and Appium will return a sessionId when a client starts a new session.

This sesssionId is a unique identifier and changes per test. It is stored as a member variable of the instantiated Driver object. Most of the time it is named sessionId or session_id, depending on the client you are using.

You can easily share a single test result with someone in a safe way, without the other person needing an account.

To share a test result, you'll need to create the following url:
https://testingbot.com/tests/sessionId?auth=authentication-hash

The authentication hash is created with md5 in the following format:

Digest::MD5.hexdigest("#{client_key}:#{client_secret}:#{session_id}")
MessageDigest m=MessageDigest.getInstance("MD5");
String s = "TESTINGBOT_KEY:TESTINGBOT_SECRET:session_id";
m.update(s.getBytes(),0,s.length());
System.out.println("MD5: "+new BigInteger(1,m.digest()).toString(16));
echo md5("TESTINGBOT_KEY:TESTINGBOT_SECRET:$session_id");
import hashlib
print(hashlib.md5("TESTINGBOT_KEY:TESTINGBOT_SECRET:#{session_id}".encode('utf-8')).hexdigest())
var crypto = require('crypto');
crypto.createHash('md5').update("TESTINGBOT_KEY:TESTINGBOT_SECRET:sessionId").digest("hex");
Convert.ToBase64String(new System.Security.Cryptography.MD5CryptoServiceProvider().ComputeHash(System.Text.Encoding.UTF8.GetBytes("TESTINGBOT_KEY:TESTINGBOT_SECRET:sessionId")));

An example link would then be:
https://testingbot.com/tests/9jf392fj3j2f3ojid8?auth=230i439uf3fojf

Link to a Video

You can easily share a video of a specific test, please see the example below:

To build the URL with the correct authentication hash, the URL should be structured like this:
https://testingbot.com/tests/sessionId.mp4?auth=authentication-hash

The authentication hash is created with MD5 in the following format:

Digest::MD5.hexdigest("#{client_key}:#{client_secret}:#{session_id}")
MessageDigest m=MessageDigest.getInstance("MD5");
String s = "TESTINGBOT_KEY:TESTINGBOT_SECRET:session_id";
m.update(s.getBytes(),0,s.length());
System.out.println("MD5: "+new BigInteger(1,m.digest()).toString(16));
echo md5("TESTINGBOT_KEY:TESTINGBOT_SECRET:$session_id");
import hashlib
print(hashlib.md5("TESTINGBOT_KEY:TESTINGBOT_SECRET:#{session_id}".encode('utf-8')).hexdigest())
var crypto = require('crypto');
crypto.createHash('md5').update("TESTINGBOT_KEY:TESTINGBOT_SECRET:sessionId").digest("hex");
Convert.ToBase64String(new System.Security.Cryptography.MD5CryptoServiceProvider().ComputeHash(System.Text.Encoding.UTF8.GetBytes("TESTINGBOT_KEY:TESTINGBOT_SECRET:sessionId")));

An example link would then be:
https://testingbot.com/tests/9jf392fj3j2f3ojid8.mp4?auth=230i439uf3fojf

Link to a Build

With TestingBot, it is possible to group several tests under one build identifier.
In our member area, you can then see all the tests grouped by builds.

To link to a build overview, please see this example:
https://testingbot.com/builds/YOUR_TESTINGBOT_KEY?auth=authentication-hash

To generate the authentication-hash, you must concatenate user key and user secret, then generate the MD5 hash:

Digest::MD5.hexdigest("#{client_key}:#{client_secret}")
MessageDigest m=MessageDigest.getInstance("MD5");
String s = "TESTINGBOT_KEY:TESTINGBOT_SECRET";
m.update(s.getBytes(),0,s.length());
System.out.println("MD5: "+new BigInteger(1,m.digest()).toString(16));
echo md5("TESTINGBOT_KEY:TESTINGBOT_SECRET");
import hashlib
print(hashlib.md5("TESTINGBOT_KEY:TESTINGBOT_SECRET".encode('utf-8')).hexdigest())
var crypto = require('crypto');
crypto.createHash('md5').update("TESTINGBOT_KEY:TESTINGBOT_SECRET").digest("hex");
Convert.ToBase64String(new System.Security.Cryptography.MD5CryptoServiceProvider().ComputeHash(System.Text.Encoding.UTF8.GetBytes("TESTINGBOT_KEY:TESTINGBOT_SECRET")));

To link directly to a build, please see this example:
https://testingbot.com/builds/YOUR_TESTINGBOT_KEY/build-identifier?auth=authentication-hash

To generate the authentication-hash, you must concatenate user key, user secret and build-identifier, then generate the MD5 hash:

Digest::MD5.hexdigest("#{client_key}:#{client_secret}:#{build_identifier}")
MessageDigest m=MessageDigest.getInstance("MD5");
String s = "TESTINGBOT_KEY:TESTINGBOT_SECRET:build_identifier";
m.update(s.getBytes(),0,s.length());
System.out.println("MD5: "+new BigInteger(1,m.digest()).toString(16));
echo md5("TESTINGBOT_KEY:TESTINGBOT_SECRET:$build_identifier");
import hashlib
print(hashlib.md5("TESTINGBOT_KEY:TESTINGBOT_SECRET:#{build_identifier}".encode('utf-8')).hexdigest())
var crypto = require('crypto');
crypto.createHash('md5').update("TESTINGBOT_KEY:TESTINGBOT_SECRET:build_identifier").digest("hex");
Convert.ToBase64String(new System.Security.Cryptography.MD5CryptoServiceProvider().ComputeHash(System.Text.Encoding.UTF8.GetBytes("TESTINGBOT_KEY:TESTINGBOT_SECRET:build_identifier")));

The build-identifier is the custom string you can send as an option to group several tests.

Embed Test Info

You can embed a test page in any CI detail page, test report or custom website. Please see the example below.
You add a SCRIPT tag in your page which links to the test. Replace sessionId with the correct sessionId of the test.

<script src="https://testingbot.com/job-embed/sessionId.js?auth=AUTH-TOKEN"></script>

To generate the authentication-token, you must concatenate user key, user secret and sessionId, then generate the MD5 hash:

Digest::MD5.hexdigest("#{client_key}:#{client_secret}:#{sessionId}")
MessageDigest m=MessageDigest.getInstance("MD5");
String s = "TESTINGBOT_KEY:TESTINGBOT_SECRET:sessionId";
m.update(s.getBytes(),0,s.length());
System.out.println("MD5: "+new BigInteger(1,m.digest()).toString(16));
echo md5("TESTINGBOT_KEY:TESTINGBOT_SECRET:$sessionId");
import hashlib
print(hashlib.md5("TESTINGBOT_KEY:TESTINGBOT_SECRET:#{sessionId}".encode('utf-8')).hexdigest())
var crypto = require('crypto');
crypto.createHash('md5').update("TESTINGBOT_KEY:TESTINGBOT_SECRET:sessionId").digest("hex");
Convert.ToBase64String(new System.Security.Cryptography.MD5CryptoServiceProvider().ComputeHash(System.Text.Encoding.UTF8.GetBytes("TESTINGBOT_KEY:TESTINGBOT_SECRET:sessionId")));

Embed Video Info

Next to embedding test info pages, you can also embed the video of the test.
This might be useful to include in test reports or on CI result pages.

<script src="https://testingbot.com/video-embed/sessionId.js?auth=AUTH-TOKEN"></script>

To generate the authentication-token, you must concatenate user key, user secret and sessionId, then generate the MD5 hash:

Digest::MD5.hexdigest("#{client_key}:#{client_secret}:#{sessionId}")
MessageDigest m=MessageDigest.getInstance("MD5");
String s = "TESTINGBOT_KEY:TESTINGBOT_SECRET:sessionId";
m.update(s.getBytes(),0,s.length());
System.out.println("MD5: "+new BigInteger(1,m.digest()).toString(16));
echo md5("TESTINGBOT_KEY:TESTINGBOT_SECRET:$sessionId");
import hashlib
print(hashlib.md5("TESTINGBOT_KEY:TESTINGBOT_SECRET:#{sessionId}".encode('utf-8')).hexdigest())
var crypto = require('crypto');
crypto.createHash('md5').update("TESTINGBOT_KEY:TESTINGBOT_SECRET:sessionId").digest("hex");
Convert.ToBase64String(new System.Security.Cryptography.MD5CryptoServiceProvider().ComputeHash(System.Text.Encoding.UTF8.GetBytes("TESTINGBOT_KEY:TESTINGBOT_SECRET:sessionId")));