Klov Server

Klov allows tracking each of your launches across all your projects. View and analyze how your test perform overtime, how each execution category has compares in detail, track exceptions, create topics for discussion or reminders and search entities from a host of options.


Setup

Setup for community is available only via Docker. Klov professional edition is available from a private Docker repository as well as a jar distro.


Docker: Community

  1. Install Docker (Desktop or Engine, Compose)
  2. Download the Docker-compose.yml or curl:
    $ curl https://raw.githubusercontent.com/extent-framework/klov-server/master/docker-compose.yml -o docker-compose.yml
    
    Docker-compose.yml:
    version: '2'
    services:
        klov:
            image: anshooarora/klov:1.0.1
            container_name: klov
            environment:
                - SPRING_DATA_MONGODB_URI=mongodb://{host}:{port}
            ports:
                - 80:80
    
  3. Update the MongoDB connection details and the port where Klov is to be hosted at
  4. Start Klov
    docker-compose up
    
  5. Open Klov at the $PORT you specified in docker-compose.yml or default:80

Docker: Professional

  1. Install Docker (Desktop or Engine, Compose)
  2. Download the Docker-compose.yml or curl:
    $ curl https://raw.githubusercontent.com/extent-framework/klov-server/master/docker-compose.yml -o docker-compose.yml
    
    Docker-compose.yml:
    version: '2'
    services:
        klov:
            image: tekstrom/klov:1.1.4
            container_name: klov
            environment:
                - SPRING_DATA_MONGODB_URI=mongodb://{host}:{port}
            ports:
                - 80:80
    
  3. Update the MongoDB connection details and the port where Klov is to be hosted at
  4. Login to docker with the UserID you provided us:
    docker login
    
  5. Start Klov
    docker-compose up
    
  6. Open Klov at the $PORT you specified in docker-compose.yml or default:80

Jar

The jar distribution is only available for professional edition and the setup is similar to executing any jar file via command line.

  1. Install MongoDB
  2. Setup application.properties file provided in the distribution to update MongoDB details:
    spring.data.mongodb.host=localhost
    spring.data.mongodb.port=27017
    spring.data.mongodb.database=klov
    
  3. Run Klov:
    java -jar klov-x.x.x.jar
    

Installing License (Pro only)

You will have to enter the LICENSE key details in Klov when you start the server. To enter the license key provided with the distribution or by the support team:

  1. Navigate to <klov-host>/settings
  2. Enter the license key from the LICENSE file
  3. Click Save
  4. An expiration date will appear below the License heading

SSL

To configure SSL with Klov, please add the relevant configuration in the application.properties file:

# enable or disable ssl
server.ssl.enabled=true
# Format used by the keystore
# PKCS12 or JKS
server.ssl.key-store-type=
# Path to the keystore containing the certificate
server.ssl.key-store=
# Certificate password
server.ssl.key-store-password=
# Any alias mapped to the certificate
server.ssl.key-alias=

If you are using an untrusted or self-signed SSL certificates, you will receive the below warning:


MongoDB Settings

You can configure your MongoDB environment settings from application.properties:

# data.mongodb
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.database=klov

Views

The following sections cover each view in detail.


Dashboard

The dashboard view provides a holistic summary for your recent launches.

Options
  • Authors: Selects an author and applies the filter to the entire dashboard showing launches containing the author, and only the tests assigned by the author
  • Devices: Selects a device and applies the filter to the entire dashboard showing launches containing the device, and only the tests assigned by the device
  • Tags: Selects a tag and applies the filter to the entire dashboard showing launches containing the tag, and only the tests assigned by the tag
  • Level: Select a level for analysis for the entire dashboard. Options available are:
    • Level 1: Use the top-most level tests (eg: Features) for analysis
    • Level 2: Use the child level tests (eg: Scenario) for analysis
    • Level 3: Use the grandchild level tests (eg: Step) for analysis
  • Launches: Select the number of launches for which the dashboard displays trends
  • Reset: Resets the view to default, removes all filters and resets the number of launches to 15
  • Project Settings: Navigates to the project settings page

Last Launch Row

The top row defaults to the status of the last launch and shows the Status, total number of tests, number of tests failed and passed.



This row sets the target launch when clicking one of the launches in the Launch box or right nav.


Launches Overview

The next 4 cards provide a launch overview.



This view provides the following:

  • Status Distribution: A quick distribution of all statuses in each build
  • Launches: A RED/GREEN overview of how well your builds are distributed
  • Performance: Performance (configurable in milliseconds, seconds, minutes and hours) distribution
  • Launch #: A quick distribution of your last build by default. This pie changes to the selected build by clicking one of the buttons in the Launches card (above) or the Launches right nav.

Errors

The Errors card displays the last 5 errors by default. This setting can be configured to show either last 10, or 15 errors. An error is any test that ends with the following statuses:

  • FAIL
  • WARNING
  • SKIP


This card provides the following information for any errored test:

  • Name: Name of the test
  • History: History of the past 5 runs
  • Launch: The launch # this test belongs to
  • Level: Level of the test, eg: Feature, Scenario, Step
  • Start: Start time
  • End: End time
  • Duration: Time taken
  • Status: Passed, Failed or Skipped

To view all errors to date for this project, click the "View all X errored tests" link.


Tags

The Tags card provides analysis for all the tags present in the last (upto) 30 launches. The default setting is 15 launches.



This card provides the following information for the tags that are assigned to your tests:

  • Name: Name of the tag
  • Launches: Number of launches in which the tag was present
  • Tests: Total number of tests containing the tag
  • Passed: Number of passed tests
  • Failed: Number of failed tests
  • Skipped: Number of skipped tests
  • Total Duration: Total time taken to execute all tests assigned to the tag

Launches

The Launches view provides an overview and in-depth information of your launches.

Options
  • Tag: Select all launches containing the tag
  • Device: Select all launches containing the author
  • Author: Select all launches containing the device
  • Launch Comparison: Navigates to the launch comparison view
  • Reset: Resets the view to default by removing all filters

Launches List

Left sidenav displays all builds that have executed to date.



This section also allows you to remove any builds you do not want displayed. Note: removing the build does not delete it from the database.


Launch Details

Right side view provides in-depth details of the selected build.



This section provides the following information:

  • Quick info
    • Start time: Time build started
    • End time: Time build ended
    • Duration: Total duration of the build
    • Number of tests: Total number of top-level tests (eg: Features)
    • Tags: Any authors, devices or tags present
  • Errors: List of all errored tests, ie: tests ending with a FAIL, SKIP or WARN status. Clicking the test navigates to its Historical view
  • Most time taken: Tests ordered by the duration. Clicking the tests navigates to its Historical view
  • Tags: Quick overview and distribution of tags present in the build, similar to the tags section in Dashboard but for a single build
  • Tests: A color-coded view of tests. Clicking the buttons here opens the test with details

Launch Comparison

The Compare Launches view enables you to compare upto 3 launches. The order of display is: oldest build to the left followed by subsequent builds.

The comparison information includes:

  • Build Status
  • # of tests
  • # of tests passed
  • # of tests failed
  • # of tests skipped
  • Build Duration
  • List of all errored tests
  • Tags

Tags

Tags view shows the builds consisting of test attributes such as authors, devices, tags or exceptions. Tags view is a 3-pane layout showing:

  • Tag, Author, Device or Exception
  • Builds
  • Build details

The default selection is Tags, which can be changed to Author, Device or Exception.

Changing the type of attribute to Exceptions for instance will show all the logged exceptions across each build. Selecting the Exception will display all builds consisting the exception and its related tests.



Klov allows you to search any of your past tests using the following search criteria:

  • Test Name
  • Test ID
  • Author
  • Device
  • Tag
  • Exception
  • Level: 1 = Feature, 2 = Scenario: 3 = Step
  • Leaf: the bottom-most level tests, or tests containing no child nodes
  • Status

Troubleshooting

A few helpful tips are included in this section to resolve some of the common issues faced during setup. If you still encounter issues, please open a ticket at https://github.com/extent-framework/klov/issues if you are using the Community edition or contact us for all Professional edition queries.


Issue connecting to MongoDB on Windows

The Klov image is a linux container, and some users experience issues binding to localhost on Windows. As a workaround, use SPRING_DATA_MONGODB_HOST:

On the MongoDB host, open cmd and run ipconfig. Use the ipv4 address:

Wireless LAN adapter Wi-Fi:

   Connection-specific DNS Suffix  . 
   IPv4 Address. . . . . . . . . . . : **10.0.0.2**
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 10.0.0.1

Use the IP address like:

version: '2'
services:
    klov:
        image: anshooarora/klov:1.0
        container_name: klov
        environment:
            - SPRING_DATA_MONGODB_HOST=10.0.0.2
        ports:
            - 80:80

If you get a connection refused, make sure mongod is accepting connections. You will have to set bind_ip under mongo.conf or start mongod with all incoming ips enabled:

mongod --bind_ip_all

Release Notes

1.1.6.RELEASE

New
  • Launch Detail view shows # of tests passed and failed
Fixes
  • Deletion of report was not removing all dependant entities
Security fixes
  • CVE-2020-17527
    https://nvd.nist.gov/vuln/detail/CVE-2020-17527
    Current Description (source: http://nvd.nist.gov): While investigating bug 64830 it was discovered that Apache Tomcat 10.0.0-M1 to 10.0.0-M9, 9.0.0-M1 to 9.0.39 and 8.5.0 to 8.5.59 could re-use an HTTP request header value from the previous stream received on an HTTP/2 connection for the request associated with the subsequent stream. While this would most likely lead to an error and the closure of the HTTP/2 connection, it is possible that information could leak between requests.
    Affected package: tomcat-embed-core-9.0.38.jar (pkg:maven/org.apache.tomcat.embed/tomcat-embed-core@9.0.38, cpe:2.3:a:apache:tomcat:9.0.38:*:*:*:*:*:*:*, cpe:2.3:a:apache_software_foundation:tomcat:9.0.38:*:*:*:*:*:*:*, cpe:2.3:a:apache_tomcat:apache_tomcat:9.0.38:*:*:*:*:*:*:*) : CVE-2020-17527
  • CVE-2020-25649
    https://nvd.nist.gov/vuln/detail/CVE-2020-25649
    Current Description (source: http://nvd.nist.gov): A flaw was found in FasterXML Jackson Databind, where it did not have entity expansion secured properly. This flaw allows vulnerability to XML external entity (XXE) attacks. The highest threat from this vulnerability is data integrity.
    Affected package: jackson-databind-2.10.5.jar (pkg:maven/com.fasterxml.jackson.core/jackson-databind@2.10.5, cpe:2.3:a:fasterxml:jackson:2.10.5:*:*:*:*:*:*:*, cpe:2.3:a:fasterxml:jackson-databind:2.10.5:*:*:*:*:*:*:*) : CVE-2020-25649

1.1.5.RELEASE

New
  • Specify a user-driven number of launches on Dashboard view
  • Tag search box on Dashboard view
Fixes
  • Issue with overflowing dropdowns (Tags, Authors, Devices)
  • Issue where some tickets and topics aren't deleted when project is deleted
Security fixes
  • CVE-2020-13956
    https://nvd.nist.gov/vuln/detail/CVE-2020-13956
    Current Description (source: http://nvd.nist.gov): Apache HttpClient versions prior to version 4.5.13 and 5.0.3 can misinterpret malformed authority component in request URIs passed to the library as java.net.URI object and pick the wrong target host for request execution
    Affected package: httpclient-4.5.12.jar (pkg:maven/org.apache.httpcomponents/httpclient@4.5.12, cpe:2.3:a:apache:httpclient:4.5.12:*:*:*:*:*:*:*)

1.1.4.RELEASE

New
  • Delete launches/reports from the Launches view
Fixes
  • Reset button on Launch comparison view does not clear selections
Security fixes
  • CVE-2017-18640
    https://nvd.nist.gov/vuln/detail/CVE-2017-18640
    Current Description (source: http://nvd.nist.gov): The Alias feature in SnakeYAML 1.18 allows entity expansion during a load operation, a related issue to CVE-2003-1564
    Affected package: snakeyaml-1.25.jar (pkg:maven/org.yaml/snakeyaml@1.25, cpe:2.3:a:snakeyaml_project:snakeyaml:1.25:*:*:*:*:*:*:*)
  • CVE-2020-5421
    https://nvd.nist.gov/vuln/detail/CVE-2020-5421
    Current Description (source: http://nvd.nist.gov): In Spring Framework versions 5.2.0 - 5.2.8, 5.1.0 - 5.1.17, 5.0.0 - 5.0.18, 4.3.0 - 4.3.28, and older unsupported versions, the protections against RFD attacks from CVE-2015-5211 may be bypassed depending on the browser used through the use of a jsessionid path parameter
    Affected package: spring-core-5.2.8.RELEASE.jar (pkg:maven/org.springframework/spring-core@5.2.8.RELEASE, cpe:2.3:a:pivotal_software:spring_framework:5.2.8:release:*:*:*:*:*:*, cpe:2.3:a:springsource:spring_framework:5.2.8:release:*:*:*:*:*:*, cpe:2.3:a:vmware:springsource_spring_framework:5.2.8:release:*:*:*:*:*:*)
  • CVE-2020-13943
    https://nvd.nist.gov/vuln/detail/CVE-2020-13943
    Current Description (source: http://nvd.nist.gov): If an HTTP/2 client connecting to Apache Tomcat 10.0.0-M1 to 10.0.0-M7, 9.0.0.M1 to 9.0.37 or 8.5.0 to 8.5.57 exceeded the agreed maximum number of concurrent streams for a connection (in violation of the HTTP/2 protocol), it was possible that a subsequent request made on that connection could contain HTTP headers - including HTTP/2 pseudo headers - from a previous request rather than the intended headers. This could lead to users seeing responses for unexpected resources.
    Affected package: tomcat-embed-core-9.0.37.jar (pkg:maven/org.apache.tomcat.embed/tomcat-embed-core@9.0.37, cpe:2.3:a:apache:tomcat:9.0.37:*:*:*:*:*:*:*, cpe:2.3:a:apache_software_foundation:tomcat:9.0.37:*:*:*:*:*:*:*, cpe:2.3:a:apache_tomcat:apache_tomcat:9.0.37:*:*:*:*:*:*:*)

1.1.3.RELEASE

Fixes
  • Issue with Step level tests causing a RuntimeException on Tag view

1.1.2.RELEASE

New
  • Dashboard top-level row (Launch Status, Passed, Failed) update for selected launch
Fixes
  • Issue with Nodes showing up at the top-most level; nodes not displayed at their respective nested level
  • Issue with LevelSetting on Project Setting page reverts back to 0