grafana: take some screenshots during testing

Take some simple screenshots for basic validation of any new releases.

Change-Id: I52770032a6cc91d76da23194f58474f5ceeaed38
This commit is contained in:
Ian Wienand 2021-02-15 14:56:45 +11:00
parent 7c30c3d668
commit 5a1b8ac179
3 changed files with 43 additions and 0 deletions

View File

@ -0,0 +1,6 @@
- hosts: "grafana"
tasks:
- name: Run selenium container
include_role:
name: run-selenium

View File

@ -12,6 +12,11 @@
# License for the specific language governing permissions and limitations
# under the License.
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import TimeoutException
import time
testinfra_hosts = ['grafana01.opendev.org']
@ -34,3 +39,34 @@ def test_grafana_api_denial(host):
'-d \'{"dashboard": {}}\' '
'https://grafana.opendev.org/api/snapshots')
assert '403 Forbidden' in cmd.stdout
def test_grafana_screenshots(host):
driver = webdriver.Remote(
command_executor='http://%s:4444/wd/hub' % (host.backend.get_hostname()),
desired_capabilities=webdriver.DesiredCapabilities.FIREFOX)
try:
driver.get("https://localhost")
WebDriverWait(driver, 30).until(lambda driver: driver.execute_script(
'return document.readyState') == 'complete')
# NOTE(ianw): The page doesn't really seem to be complete at
# this point, not sure what to listen for...
time.sleep(5)
driver.save_screenshot("/var/log/screenshots/grafana-main-page.png")
driver.get("https://localhost/dashboards")
original_size = driver.get_window_size()
required_width = driver.execute_script(
'return document.body.parentNode.scrollWidth')
required_height = driver.execute_script(
'return document.body.parentNode.scrollHeight') + 100
driver.set_window_size(required_width, required_height)
driver.find_element_by_tag_name('body'). \
screenshot("/var/log/screenshots/grafana-dashboards-page.png")
driver.set_window_size(
original_size['width'], original_size['height'])
except TimeoutException as e:
raise e
finally:
driver.quit()

View File

@ -623,6 +623,7 @@
run_playbooks:
- playbooks/letsencrypt.yaml
- playbooks/service-grafana.yaml
run_test_playbook: playbooks/test-grafana.yaml
files:
- playbooks/bridge.yaml
- playbooks/letsencrypt.yaml