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.
- Community: klov.herokuapp.com
- Pro: klov-pro.herokuapp.com
Minimum Hardware Requirements
Operating Platform | Windows / Linux |
Processor Speed | Dual core, 2.4 GHz and above |
Memory | 4 GB RAM |
Hard Disk Space* | 500 MB |
* Klov stores all screenshots on disk in the default /uploads
directory. Hard disk size will need to be planned according to your requirements.
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
- Install Docker (Desktop or Engine, Compose)
- Download the Docker-compose.yml or
curl
:
Docker-compose.yml:$ curl https://raw.githubusercontent.com/extent-framework/klov-server/master/docker-compose.yml -o 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
- Update the MongoDB connection details and the port where Klov is to be hosted at
- Start Klov
docker-compose up
- Open Klov at the $PORT you specified in
docker-compose.yml
ordefault:80
Docker: Professional
- Install Docker (Desktop or Engine, Compose)
- Download the Docker-compose.yml or
curl
:
Docker-compose.yml:$ curl https://raw.githubusercontent.com/extent-framework/klov-server/master/docker-compose.yml -o 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
- Update the MongoDB connection details and the port where Klov is to be hosted at
- Login to docker with the UserID you provided us:
docker login
- Start Klov
docker-compose up
- Open Klov at the $PORT you specified in
docker-compose.yml
ordefault:80
Jar
The jar distribution is only available for professional edition and the setup is similar to executing any jar file via command line.
- Install MongoDB
- 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
- 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:
- Navigate to
<klov-host>/settings
- Enter the license key from the
LICENSE
file - Click Save
- 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.
Search
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
Admin
Since version 1.1.7, Klov adds ability to allow only admin users to:
- Access project settings
- Delete a project
- Delete a build
The admin view is available from /admin
page, accessible only by editing the URL.
http://klov-host/admin
To use this feature, it is required to:
- Enable the admin feature
- Provide one or more keys
- Enable one of more targets
- Project Settings: settings for all projects will be accessed only with admin key(s)
- Delete Project: deleting a project is only possible upon providing admin key(s)
- Delete Report: deleting builds only possible upon providing admin key(s)
- Save Settings
Resetting Admin Settings
There are 2 ways to reset admin settings which removes all keys and settings.
- In the Admin page, click "Reset Settings..." and proceed with confirmation
- Send a
HTTP DELETE
to[klov-host]/api/admin
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
New
- Admin controls; key requirement for:
- Viewing project settings
- Deleting a project
- Deleting a report
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-17527CVE-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
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:*:*:*:*:*:*:*)
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:*:*:*:*:*:*:*)
Fixes
- Issue with Step level tests causing a RuntimeException on Tag view
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