Page tree
Skip to end of metadata
Go to start of metadata

Appium SeeTest Extention supported only on grid tests

1. Add to Project dependencies


repositories {
	maven {
		url ""
dependencies {
	//Appium - Junit specific
    compile group: 'junit', name: 'junit', version: '4.12'
    compile group: 'io.appium', name: 'java-client', version: '5.0.4'
    compile group: 'org.webjars.npm', name: 'css-in-js-utils', version: '2.0.0'
    compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25'
	compile group: 'com.experitest', name: 'appium-seetest-extension', version: '+'


2. Initialize

2.1. Standard Appium Driver Initialization

Normal Appium Driver Initialisation
AndroidDriver driver;
DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability("user", "[username]");
dc.setCapability("password", "[password]");
driver = new AndroidDriver(new URL("https://[hostname.grid.server]:[port]/wd/hub"), dc);

2.2. SeeTest Extension Initialization

SeeTest Extension Initialisation
SeeTestClient seeTestClient = new SeeTestClient(driver);

3. List of commands that involve file uploads and downloads

When using files in a context of a grid server, the files aren't stored directly to the device as Appium Driver would do but stored on the server for future use.

As the file is uploaded, a file identifier is returned (fileToken in our examples).

Security concerns

The file is session isolated and can't be used in other sessions or grid nodes.

When the session ends, the files are automatically deleted from the server.

Files operation are both supported by AndroidDriver and IOSDriver.

3.1. Upload a file

String fileToken = seeTestClient.uploadFile("C:\\dev\\img.jpg");

A file identifier is returned.

It can be then used for further Appium commands instead of using a local file path

3.2. Download file.

seeTestClient.downloadFile(fileToken, fileToUploadPath);

The file will be downloaded in the location specified by the second parameter fileToUploadPath.

3.3. File related command supported in SeeTest Extension 

CommandSeeTest ExtensionLink

  • Report[Filepath of the image to attach to the report line.jpg]" , "my message 3", true);
  • startMonitor
  • getMonitorData
seeTestClient.getMonitorsData("[Filepath where to store the monitorData.csv]");
  • collectSupportData
seeTestClient.collectSupportData("[Filepath where to store the]", null, null, null, null, null);
  • capture
seeTestClient.capture("[Filepath where to store the screenshot.png]", "test line");
  • startLoggingDevice

  • stopLoggingDevice

seeTestClient.startLoggingDevice("[Filepath to output file.txt]");
  • startAudioRecording

  • stopAudioRecording

seeTestClient.startAudioRecording("[Filepath where to store the audio.wav]");
  • simulateCapture
seeTestClient.simulateCapture("[path to image to use for capture.png");
  • startAudioPlay

  • stopAudioPlay

  • waitForAudioPlayEnd
seeTestClient.startAudioPlay("[Filepath to input audio.wav]");
  • startCaptureNetworkDump
  • stopCaptureNetworkDump
seeTestClient.startCaptureNetworkDump("[Filepath where to store networkDump.pcap]");
  • startHarRecording
  • stopHarRecording
seeTestClient.startHarRecording("[Filepath where to store har]", "[Filter(optional) to choose recorded content type]");

3.3. Unsupported commands

  • install(),
  • getDeviceLog(), generateReport()
  • startTransaction, endTransaction
  • startVideoRecord, stopVideoRecord
  • getMonitorsData() - without paramerter
  • capture() / capture(String line)

4. Example

Example (Java)
public class SeeTestClientExample {
    private AndroidDriver driver;
    private SeeTestClient client;

    public void setUp() throws Exception {
        DesiredCapabilities dc = new DesiredCapabilities();
        dc.setCapability("app", EAndroidApps.ERI_BANK.absolutePath);
        driver = new AndroidDriver(new URL(SERVER_URL), dc);
		// Init the wrapper of driver
        client = new SeeTestClient(driver);

    public void tearDown() throws Exception {
        if (driver != null) {

    public void testMethodExists() throws Exception {
        // use the additional API method
  • No labels