Merge "Additional Selenium tests for Kibana dashboard"

This commit is contained in:
Zuul 2019-01-17 23:46:14 +00:00 committed by Gerrit Code Review
commit 958127477d
5 changed files with 100 additions and 0 deletions

View File

@ -0,0 +1,8 @@
#!/bin/bash
export KIBANA_USER="admin"
export KIBANA_PASSWORD="changeme"
export KIBANA_LOGSTASH_URI="kibana.osh-infra.svc.cluster.local/app/kibana#/discover?_g=()&_a=(columns:!(_source),index:'logstash-*',interval:auto,query:(match_all:()),sort:!('@timestamp',desc))"
export KIBANA_KERNEL_URI="kibana.osh-infra.svc.cluster.local/app/kibana#/discover?_g=()&_a=(columns:!(_source),index:'kernel-*',interval:auto,query:(match_all:()),sort:!('@timestamp',desc))"
export KIBANA_JOURNAL_URI="kibana.osh-infra.svc.cluster.local/app/kibana#/discover?_g=()&_a=(columns:!(_source),index:'journal-*',interval:auto,query:(match_all:()),sort:!('@timestamp',desc))"
python tools/gate/selenium/kibanaSelenium.py

View File

@ -0,0 +1 @@
../common/kibana-selenium.sh

View File

@ -0,0 +1 @@
../common/kibana-selenium.sh

View File

@ -0,0 +1,88 @@
import logging
import os
import sys
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
from selenium.common.exceptions import TimeoutException
from threading import Thread
logger = logging.getLogger('Kibana Selenium Tests')
logger.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
ch.setFormatter(formatter)
logger.addHandler(ch)
# Get Grafana admin user name
if "KIBANA_USER" in os.environ:
kibana_user = os.environ['KIBANA_USER']
logger.info('Found Kibana username')
else:
logger.critical('Kibana username environment variable not set')
sys.exit(1)
if "KIBANA_PASSWORD" in os.environ:
kibana_password = os.environ['KIBANA_PASSWORD']
logger.info('Found Kibana password')
else:
logger.critical('Kibana password environment variable not set')
sys.exit(1)
if "KIBANA_JOURNAL_URI" in os.environ:
kibana_journal_uri = os.environ['KIBANA_JOURNAL_URI']
logger.info('Found Kibana Journal URI')
else:
logger.critical('Kibana Journal URI environment variable not set')
sys.exit(1)
if "KIBANA_KERNEL_URI" in os.environ:
kibana_kernel_uri = os.environ['KIBANA_KERNEL_URI']
logger.info('Found Kibana Kernel URI')
else:
logger.critical('Kibana Kernel URI environment variable not set')
sys.exit(1)
if "KIBANA_LOGSTASH_URI" in os.environ:
kibana_logstash_uri = os.environ['KIBANA_LOGSTASH_URI']
logger.info('Found Kibana Logstash URI')
else:
logger.critical('Kibana Logstash URI environment variable not set')
sys.exit(1)
options = Options()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--window-size=1920x1080')
browser = webdriver.Chrome('/etc/selenium/chromedriver', chrome_options=options)
url = "http://{0}:{1}@{2}".format(kibana_user, kibana_password, kibana_journal_uri)
browser.get(url)
WebDriverWait(browser, 60).until(
EC.presence_of_element_located((By.XPATH, '//*[@id="kibana-body"]/div[1]/div/div/div[3]/discover-app/div/div[2]/div[2]/div/div[2]/div[2]/doc-table/div/table/tbody/tr[1]/td[2]'))
)
browser.save_screenshot('/tmp/artifacts/Kibana_JournalIndex.png')
browser = webdriver.Chrome('/etc/selenium/chromedriver', chrome_options=options)
url = "http://{0}:{1}@{2}".format(kibana_user, kibana_password, kibana_kernel_uri)
browser.get(url)
WebDriverWait(browser, 60).until(
EC.presence_of_element_located((By.XPATH, '//*[@id="kibana-body"]/div[1]/div/div/div[3]/discover-app/div/div[2]/div[2]/div/div[2]/div[2]/doc-table/div/table/tbody/tr[1]/td[2]'))
)
browser.save_screenshot('/tmp/artifacts/Kibana_KernelIndex.png')
browser = webdriver.Chrome('/etc/selenium/chromedriver', chrome_options=options)
url = "http://{0}:{1}@{2}".format(kibana_user, kibana_password, kibana_logstash_uri)
browser.get(url)
WebDriverWait(browser, 60).until(
EC.presence_of_element_located((By.XPATH, '//*[@id="kibana-body"]/div[1]/div/div/div[3]/discover-app/div/div[2]/div[2]/div/div[2]/div[2]/doc-table/div/table/tbody/tr[1]/td[2]'))
)
browser.save_screenshot('/tmp/artifacts/Kibana_LogstashIndex.png')

View File

@ -65,6 +65,7 @@
- ./tools/deployment/multinode/grafana-selenium.sh
- ./tools/deployment/multinode/nagios-selenium.sh
- ./tools/deployment/multinode/prometheus-selenium.sh
- ./tools/deployment/multinode/kibana-selenium.sh
- job:
name: openstack-helm-infra-tenant-ceph
@ -128,6 +129,7 @@
- ./tools/deployment/osh-infra-logging/055-elasticsearch-ldap.sh
- ./tools/deployment/osh-infra-logging/060-fluent-logging.sh
- ./tools/deployment/osh-infra-logging/070-kibana.sh
- ./tools/deployment/osh-infra-logging/kibana-selenium.sh
- job:
name: openstack-helm-infra-aio-monitoring