0.0
Repository is archived
No commit activity in last 3 years
No release in over 3 years
There's a lot of open issues
This is a Ruby wrapper around the TestLink XMLRPC API, thus allowing access to your TestLink test projects, plans, cases, and results using Ruby. We've added a few helper methods as well to allow for getting at more of your data a little easier. This supports TestLink APIs 1.0 Beta 5 (from TestLink 1.8.x) and 1.0 (from TestLink 1.9.x)..
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 1.0.0
~> 0.10.0
~> 1.3.0
~> 2.6
~> 0.7.0

Runtime

~> 0.1.4
~> 0.4.0
 Project Readme

test_linker¶ ↑

Description¶ ↑

This is a Ruby wrapper around the TestLink XMLRPC API, thus allowing access to your TestLink test projects, plans, cases, and results using Ruby. We’ve added a few helper methods as well to allow for getting at more of your data a little easier. This supports TestLink APIs 1.0 Beta 5 (from TestLink 1.8.x) and 1.0 (from TestLink 1.9.x).

Features¶ ↑

  • Basic wrapper around existing XMLRPC functions.

  • Allow for calling methods via Ruby style (#projects) or XMLRPC style (#getProjects).

  • Support for TestLink API versions 1.0 Beta 5 and 1.0.

  • Only one error/exception type: TestLinker::Error.

  • Limited set of helper methods, attempting to fill in gaps from the API.

Examples¶ ↑

Get results to a CSV file:

require 'test_linker'
require 'pp'

server = 'http://testlink'
dev_key = "90b7941411928ae0a84d19f365a01a63"
tl_project = "My nifty project"
tl = TestLinker.new(server, dev_key)

# Write out the CSV headers
csv_file_name = "report.csv"
csv_file = File.new(csv_file_name, "w")
csv_file.write "Build,Passed,Failed,Blocked,TOTAL,Overall %,Overall % (+B)\n"

# Get the list of test plans that I want to report on
project_id = tl.project_id tl_project
test_plans = tl.find_test_plans(project_id, /^Component.+1.0/)
puts "All test plans for project #{project_id}"
pp test_plans

# Get a list of all builds from those test plans
builds = test_plans.collect do |test_plan|
  tl.builds_for_test_plan(test_plan[:id])
end
builds.flatten!

overall = {}
overall[:pass] = 0
overall[:failed] = 0
overall[:blocked] = 0
results = {}

# Total up results for each build and write to the CSV file
builds.each do |build|
  results[:pass] = 0
  results[:failed] = 0
  results[:blocked] = 0

  test_cases = tl.test_cases_for_test_plan(build[:testplan_id],
    { :buildid => build[:id] })

  test_cases.each_value do |test_case|
    case test_case[:exec_status]
    when "p"
      results[:pass] += 1
    when "f"
      results[:failed] += 1
    when "b"
      results[:blocked] += 1
    end
  end

  overall[:pass] += results[:pass]
  overall[:failed] += results[:failed]
  overall[:blocked] += results[:blocked]
  build_total = results[:pass] + results[:failed] + results[:blocked]

  overall_rate = "%2.2f" % (overall[:pass] * 100 / (overall[:pass] +
      overall[:failed]).to_f)
  overall_rate_plus_blocked = "%2.2f" % (overall[:pass] * 100 / (overall[:pass] +
      overall[:failed] + overall[:blocked]).to_f)

  csv_line = "#{build[:name]},#{results[:pass]},#{results[:failed]},#{results[:blocked]},"
  csv_line << "#{build_total},#{overall_rate},#{overall_rate_plus_blocked}\n"
  csv_file.write csv_line
end

csv_file.close

Requirements¶ ↑

  • Rubies (tested)

    • 1.8.7

    • 1.9.2

    • jruby 1.6.1

    • ree 1.8.7

  • Gems

    • versionomy, ~> 0.4.0

  • Gems (development)

    • bundler, ~> 1.0.0

    • cucumber, ~> 0.10.0

    • fakeweb, ~> 1.3.0

    • rspec, ~> 2.5.0

    • simplecov, >= 0.4.0 (MRI 1.9.x only)

    • yard, ~> 0.6.0

Getting it all running (on the TestLink side):

  1. Enable automation in the TestLink config file:

    config.inc.php => $tlCfg->api->enabled = TRUE;
  2. The user that needs to run the automated tests needs to generate a API key

that will be used in creating the connection. This is accomplished by logging in to TestLink and going to “Personal -> API Key -> Generate a new key”.

Install¶ ↑

$ gem install test_linker

Copyright © 2011 sloveless

See LICENSE.rdoc for details.