A REST client for the QTest.
Add this line to your application's Gemfile:
gem'qtest-ruby'And then execute:
$ bundle
Or install it yourself as:
$ gem install qtest-ruby
Require the gem in your code.
require'qtest'Create a QTest::Client and configure it with the base host/address of your
QTest instance and call the auth method passing in a Hash with your QTest
credentials.
QTest::Client.new.configuredo |c|
c.base_uri='http://qtest.yourcompany.com'c.authusername: 'foo',password: 'bar'endThe client is set on all QTest:: objects and will be used for requests.
The typical entry point for the API begins with a QTest::Project.
@project=QTest::Project.find_by(id: 1)With a QTest::Project you can begin to dive down into child objects such as
releases, test cycles, and test suites by chaining relationships.
# Get a Release with an ID of 3 under the current Project@release=@project.release(id: 3)# Get a Test Cycle with an id of 4 under the Release@test_cycle=@release.test_cycle(id: 4)# Get all Test Suites under the Test Cycle@test_suites=@test_cycle.test_suites# Get all Test Runs under the first Test Suite@test_runs=@test_suites.first.test_runsOf course, you can skip having to chain parent to children to find what you need by using the find_by method.
# Find a specific Test Suite under the current Project@test_suite=QTest::TestSuite.find_by(project: @project,id: 5)You don't have to pass in an object for the parent, you can simply use an ID.
# Find a specific Test Suite under a Project@test_suite=QTest::TestSuite.find_by(project: 3,id: 5)Query parameters can also be passed:
# Get all Test Cases after page 5 with properties expanded under a Project Module@test_cases=QTest::TestCase.find_by(project: 3,module: 2,page: 5,expand_properties: true)Some APIs are curently missing (TODO: list of NYI).
The complete QTest API documentation can be found here.
The gem is available as open source under the terms of the MIT License.