Testdroid API Client for Ruby
Installation
# Gemfile
gem "testdroid-api-client"
> bundle install
Sample client usage - Authenticate
require 'testdroid-api-client'
client = TestdroidAPI::Client.new('admin@localhost', 'admin')
Sample usage - get projects
@user = client.
projects = @user.projects.list
Get project by id
project_id = 123
project123 = @user.projects.get(project_id)
#output project name
p "Project name #{project123.name}"
Get project by name
android_project = @user.projects.list.detect {|project| project.name.casecmp("Android Project") == 0 }
Start project
test_run = project123.run
Check test run status
p "Project state #{test_run.state}"
Download all logs from test run
test_run.device_runs.list({:params => {:limit => 100}}).each { |drun| drun.download_logs("#{drun.id}_log") }
Using device labels
#Get label for android os version 2.1
lg_android_version_2_1 = client.label_groups.list.detect {|lg| lg.display_name.casecmp("android version") == 0 }
os_v2_1 = client.label_groups.get(lg_android_versions.id).labels.list.detect {|l| l.display_name.casecmp("2.1") == 0 }
#get all devices with android os level 2.1
devices = client.label_groups.get(lg_android_versions.id).labels.get(os_v2_1.id).devices
#get spefici device from devices list
lenovo_a820 = devices.list.detect {|d| d.display_name == "Lenovo A820"}
Device Sessions
#create a new device session:
device_session = @user.device_sessions.create({:params => {'deviceModelId' => '1'}})
#release device session:
device_session.release()
Project configuration
#get project and update project configuration
android_project = @user.projects.list.detect {|project| project.name.casecmp("Android Project") == 0 }
android_project.config.update({:params => {'instrumentationRunner' => 'abc'}})
#See full list of params: http://docs.testdroid.com/_pages/client.html#update-project-config
See https://cloud.testdroid.com/swagger/index.html for more details about API V2