-
Notifications
You must be signed in to change notification settings - Fork 8.5k
Description
Summary
This test plan intends to cover the integration between the UI and the APIs in the log stream page. They cover all the different ways the users could use the tool.
Prerequisites
- Download the BC of elasticsearch, kibana, and filebeat.
- Start only kibana and elasticsearch.
Test cases
With no valid or non existing indices
When the user goes to the logs app:
- It loads a setup page
- The CTA to change source goes to the settings page
- The CTA to setup instructions goes to the "Add Data" page
With an existing but empty index
- From the kibana dev tools, add an index that matches the
filebeat-*pattern.
PUT /filebeat-test-empty
When the user goes to the logs app
- It shows the UI with an empty stream and a "Check for new data" button
- The "Check for new data" button calls the API (check in the network tool in your browser)
With data
- Enable the
systemmodule in filebeat - Start filebeat to load data.
Stream view
When the app loads:
- The log stream has logs up until the current time.
- The datepicker shows "Last 1 day".
- The minimap shows a histogram of log lines up to the current time.
- The URL changes its
position:(time)to the current timestamp.
When the user scrolls in any direction
- The URL updates its
positionto the timestamp and tiebreaker of the visibly centered log line. - The minimap highlighted area updates (this is hard to see if you have a lot of log lines).
When the user scrolls to the very top:
- if there are more entries, the UI fetches them
- If there are no more entries, the UI gives feedback to the user
When the user scrolls to the very bottom:
- If there are more entries, the UI fetches them.
- If there are no more entries, the UI shows a "stream live" button.
Datepicker
When the user picks a new range that doesn't contain the current range (i.e. from 1 day ago to 1 hour ago)
- The log stream resets
- The minimap shows the new range
When the user picks a new range that contains the current range (i.e. from 1 hour to 2 hours)
- The log stream doesn't reset.
- The minimap shows the new range.
Minimap
When the user clicks on the minimap
- The minimap cursor goes to the selected date/time
- The log stream shows logs in that date/time
Filter
When the user types an arbitrary word.
- The autocompletion suggests field names that start with the typed characters.
- The backend searches in all message fields
- The log stream contains only messages with the word
- The log summary shows the histogram of messages with the word
When the user uses a KQL filter (i.e. event.dataset: nginx.access)
- After typing a keyword field name followed by
:, the autocompletion suggests terms from that field. - The backend applies the filter.
- The log stream contains only messages from the filter.
- The log summary shows the histogram of messages with the filter
When the user clicks on the minimap while a filter is active.
- The filter stays.
When the user selects a new time in the date picker.
- The filter stays.
Highlights
When the user adds a highlight term
- The UI shows all messages
- The UI highlights the word in the messages
- The minimap shows the position of the highlights
When the user clicks on "previous" highlight.
- The log stream jumps to the previous occurence of the highlights.
- The cursor of the minimap moves.
When the user clicks on "next" highlight.
- The log stream jumps to the next occurence of the highlights.
- The cursor of the minimap moves.
When the user clicks on the minimap on a highlight marker
- The log stream jumps to a highlighted message within that date/time