Giter Club home page Giter Club logo

reportportal's Introduction

Reportportal

Ansible role for sending XUnit test results to ReportPortal.

ReportPortal is a service, that provides increased capabilities to speed up results analysis and reporting through the use of built-in analytic features.

Configuration Flags

  • --import: Execute import tasks to import test results to ReportPortal. Set yes to run. Omitting the flag or setting it to no will skip that stage.
  • --url-address: Path to ReportPortal URL.
  • --port: ReportPortal URL port.
  • --token: Reportportal API token.
  • --archive-import-path: Pattern for the path location of test xml results.
  • --launch-tags: Tags to be applied to a specified launch.
  • --launch-description: Description to be added to a specified launch.
  • --project-name: Reportportal project name to push results to.
  • --class-in-name: For test case name in Reportportal use combination of classname+name. If not set (false) only name is used.

Jenkins Environment Variables

Jenkins Set Environment Variables you can use for launch deployment description.

  • --jenkins-domain: Domain of jenkins to add as meta data to results. For Current URL of the Jenkins master that's running the build use jenkins environment variables $JENKINS_URL. .. note:: This parameter is required when the import flag is on.
  • --jenkins-job-name: Jenkins Job name. For Current project name of this build use jenkins environment variables $JOB_NAME. .. note:: This parameter is required when the import flag is on.
  • --jenkins-build-id: Jenkins build ID. For Current build ID use jenkins environment variables $BUILD_ID.
  • --jenkins-user-name: Specify Jenkins user which executed the job.

Example:

infrared reportportal --import yes \
--url-address http://reportportal_url.example.com \
--port 8080 \
--token 123456789 \
--archive-import-path $WORKSPACE/junit/*.xml \
--launch-tags DFG:network,COMPONENT:networking-ovn,RHEL_VERSION:rhel-7.5,PRODUCT_VERSION:13 \
--project-name PROJECT_NAME \
--jenkins-domain $JENKINS_URL \
--jenkins-job-name  $JOB_NAME \
--jenkins-build-id $BUILD_ID \
--class-in-name true

Dashboard2Email

The purpose of it is to capture info and a screenshot from a given RP Dashboard and send it via email. One of the use cases for it may be to send a daily status email to the Team.

dashboard2email is one of the tasks under this Report Portal (RP) Ansible Playbook.

Dashboard2email does not run by default when you run 'reportportal' plugin. To invoke it run:

infrared reportportal --dashboard2email yes

All the required parameters, i.e.: url of the dashboard in RP, will be shown after running the above command.

Example:

infrared reportportal -v --import no --analyze no --dashboard2email yes --token <token_here> --url-address http://seal51.qa.lab.tlv.redhat.com:8081/ui/#rhel_osp/dashboard/5af5938420b54300014d791d --port 8081 --project-name RHEL_OSP --email_to [email protected] --email_subject "DFG OpenDaylight OSP13 CI status"

How it works

  1. Ansible Playbook

    a) prepares a docker container called 'reportportal_dashbaord2email' and installs all requirements inside

    b) starts a vncserver in it

  2. dashboard2email.py

    a) starts a new, or reconnects to an existing, Firefox instance (it's using vncserver as display) NOTE: Report Portal is heavily dependent on JavaScript hence using a real web browser is a must.

    b) it's using 'Selenium' python lib to connect to the Firefox instance, open requested Report Portal dashboard, login, gather statistics and capture a screenshot of the dashboard

    c) sends an email with these stats + the screenshot

Requirements

yum install -y docker
groupadd docker
usermod -aG docker <username_that_dashboard2email_will_run_as>
systemctl start docker
systemctl enable docker

Troubleshooting

The Ansible and Python parts should be fairly self explanatory.

On the other hand, to troubleshoot problems related to Firefox and what happens inside it, it's recommended to connect using VNC client to started vncserver. dashboard2email docker container shares network namespace with its host hence connecting to its vncserver is <hosts_ip>:10, i.e.:

rhosw08.oslab.openstack.engineering.redhat.com:10

Once connected over VNC you can rerun the Playbook and/or the dashboard2email.py itself and observe what happens on the VNC session.

reportportal's People

Contributors

alex-katz avatar aopincar avatar dsariel avatar holser avatar jirimacku avatar karelyatin avatar rlobillo avatar tkorol avatar vgri avatar wznoinsk avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.