-
Notifications
You must be signed in to change notification settings - Fork 8.5k
Description
Describe the feature:
We have an ongoing issue with Flaky tests. While these are mostly UI tests I think it would benefit us to have the capability to load all automated test results into an Elasticsearch instance so we can drink our own champagne and use Kibana to quickly see the biggest issues
Describe a specific use case for the feature:
Generally speaking, there are configurable reporters for more test frameworks that can log to the console and/or create junit test output and/or html reports, etc. and have a mechanism for plugging in another reporter.
We can use this issue to define requirements and then individual PRs to implement the reporters.
Frameworks:
-
Functional Test Runner(jUnit results are uploaded now) - Elastic Stack Test Framework (ESTF)
- integration-test framework
- new Webdriver.IO framework
It would be great if we could collect a consistent set of fields in the reporter for each framework, but they may not have all the same data available. Maybe we just come up with the super-set of what we'd like and each framework can try to capture as much of that as possible.
Mapping:
| name | type | comment |
|---|---|---|
| timestamp | date | date/time of the execution of the test |
| version | String (or keyword?) | ex: 6.4.0 or 6.4.0-SNAPSHOT or 6.3.2-0b85b411 |
| branch | keyword | ex: 6.x |
| testname | String | made up of each level of describe plus test name like kibana - settings app - creating and deleting default index - index pattern creation - should have index pattern in page header? |
| suitename | String | each level of describe but not the test name? |
| result | keyword | Pass/Fail/Skip |
| error | text | blank if Pass or Skip, stack trace if Fail |
| screenshot | url | blank if Pass or Skip, link to screenshot in S3 bucket if Fail |
| hostname | keyword | could be Jenkins worker |
| runId | number | we need some kind of job number to group a test run like Jenkins job #, |
| jenkinsUrl | url | might as well store a link to the Jenkins job if we can |
| os | keyword | currently Jenkins runs CentOS and Ubuntu but eventually will add Windows |
| browser | keyword | Chrome, Firefox, IE |
| duration | number | only passing tests log the duration of the test. We can use this to detect changes in performance over time |