Skip to main content

robotframework integration with kiwi TCMS

Project description

PyPI version Python updates TP for kiwitcms/robotframework-plugin (master) Tidelift Kiwi TCMS on Twitter

This package allows you execute your Robot Framework test suite and report the results into Kiwi TCMS.

Installation

pip install kiwitcms-robotframework-plugin

Configuration and environment

Minimal config file ~/.tcms.conf:

[tcms]
url = https://tcms.server/xml-rpc/
username = your-username
password = your-password

For more info see tcms-api docs.

Each RF suite may define the following variables:

  • ${plan_id}: Existing TestPlan ID for storing test execution results. WARNING: this plugin will create a new TestRun whenever plan_id changes! If subsequent test scenarios, aka .robot files don’t override plan_id the current one will be used!

  • ${product}: Existing product name when creating a new TestPlan

  • ${build_user_email}: Email for an existing user

Documentation from test suite(s) is used when creating new TestRun(s).

Each RF test case may also specify the TC-xyz tag to map to an existing TestCase in the database. For example:

*** Settings ***
Documentation   An example test suite
Library         OperatingSystem

*** Variables ***
${plan_id}      234

*** Test Cases ***
Scenario Maps To Existing TestCase
    [Tags]    TC-607  arbitrary_tag_here
    Should Be Equal    "Hello"    "Hello"

Hello World Scenario
    [Documentation]    This will be the text of the new TC created in DB
    Should Be Equal    "Hello"    "Hello"

Documentation from test cases is used when creating new TestCase records in the database.

Usage

robot --listener zealand.listener.KiwiTCMS

Extension and customization

You can customize the behavior of this plugin by extending the listener and backend classes and overriding some of their methods. For example save the following in acme_tools.py:

from zealand.listener import KiwiTCMS
from zealand.listener import RFBackend


class JenkinsBackend(RFBackend):
    def get_run_id(self):
        """
            If ${node_name} is specified then tag the TR with "node: X" tag!

            This is done right after a new TR is created!
        """
        run_id = super().get_run_id()

        node_name = self.built_in.get_variable_value('${node_name}')
        if node_name:
            self.rpc.TestRun.add_tag(run_id, 'node: %s' % node_name)
        return run_id

    def finish_test_run(self):
        """
            Do not set TR.stop_date !!!

            If ${jenkins_tag} is specified then tag the TR with it!

            This is executed at the end of each TestRun after all
            execution results have been reported.
        """
        # do not call the inherited method b/c we want to keep these
        # test runs open for inspection by a human !!!
        # super().finish_test_run()

        jenkins_tag = self.built_in.get_variable_value('${jenkins_tag}')
        if jenkins_tag:
            self.rpc.TestRun.add_tag(self.run_id, jenkins_tag)

class AcmeCorpListener(KiwiTCMS):
    backend_class = JenkinsBackend

    def end_test(self, name, attrs):
        """
            You may also find it more appropriate to override a
            listener class instead.
        """
        super().end_test(name, attrs)

        for tag in attrs['tags']:
            if tag.startswith('JIRA-'):
                # hyperlink the results between Kiwi TCMS, Jenkins & JIRA
                # by posting comments everywhere

then instruct Robot Framework to use the overriden listener instead of the default one:

robot --listener path/to/acme_tools.py

Changelog

v1.1.0 (28 Oct 2020)

  • Update tcms-api to 8.6.0

  • Update robotframework to 3.2.2

v1.0.0 (04 May 2020)

  • Initial release

  • Original implementation by Aniello Barletta

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kiwitcms-robotframework-plugin-1.1.0.tar.gz (20.6 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file kiwitcms-robotframework-plugin-1.1.0.tar.gz.

File metadata

  • Download URL: kiwitcms-robotframework-plugin-1.1.0.tar.gz
  • Upload date:
  • Size: 20.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.6.9

File hashes

Hashes for kiwitcms-robotframework-plugin-1.1.0.tar.gz
Algorithm Hash digest
SHA256 e427481daebd036c2654c8e95c7380747a577a1ae2a90e5fa0fc794da48d5588
MD5 4095531eeb357e5b6dd8187a2500c814
BLAKE2b-256 2e2fff379920bd9d713ef4c4ce9d78da631143b704b0c434f5b8e69572c935a4

See more details on using hashes here.

File details

Details for the file kiwitcms_robotframework_plugin-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: kiwitcms_robotframework_plugin-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.6.9

File hashes

Hashes for kiwitcms_robotframework_plugin-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 661eae0144f3219a651861fa2188b311189525f3b47c62c9c2a792237786cf17
MD5 26ff45e0ad09ee3f32b4f24ee23b3c42
BLAKE2b-256 fb01cec342c8298908b808e4eb6bed1fc7092c70a9810f51cecf8f767b49640d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page