This page describes automated tests for a Murano project:
Murano project has separate CI server, which runs tests for all commits and verifies that new code does not break anything.
Murano CI uses OpenStack QA cloud for testing infrastructure.
Murano CI url: https://murano-ci.mirantis.com/jenkins/ Anyone can login to that server, using launchpad credentials.
There you can find each job for each repository: one for the murano and another one for murano-dashboard.
Other jobs allow to build and test Murano documentation and perform another useful work to support Murano CI infrastructure. All jobs are run on fresh installation of operating system and all components are installed on each run.
The murano project has a web user interface and all possible user scenarios should be tested. All UI tests are located at the https://git.openstack.org/cgit/openstack/murano-dashboard/tree/muranodashboard/tests/functional
Automated tests for Murano Web UI are written in Python using special Selenium library. This library is used to automate web browser interaction from Python. For more information please visit https://selenium-python.readthedocs.org/
First of all make sure that all additional components are installed.
[murano]
horizon_url = http://localhost/horizon
murano_url = http://localhost:8082
user = ***
password = ***
tenant = ***
keystone_url = http://localhost:5000/v2.0/
All tests are kept in sanity_check.py and divided into 5 test suites:
- TestSuiteSmoke - verification of Murano panels; check, that could be open without errors.
- TestSuiteEnvironment - verification of all operations with environment are finished successfully.
- TestSuiteImage - verification of operations with images.
- TestSuiteFields - verification of custom fields validators.
- TestSuitePackages - verification of operations with Murano packages.
- TestSuiteApplications - verification of Application Catalog page and of application creation process.
To specify which tests/suite to run, pass test/suite names on the command line:
- to run all tests: nosetests sanity_check.p
- to run a single suite: nosetests sanity_check.py:<test suite name>
- to run a single test: nosetests sanity_check.py:<test suite name>.<test name>
In case of SUCCESS execution, you should see something like this:
.........................
Ran 34 tests in 1.440s
OK
In case of FAILURE, folder with screenshots of the last operation of tests that finished with errors would be created. It’s located in muranodashboard/tests/functional folder.
There are also a number of command line options that can be used to control the test execution and generated outputs. For more details about nosetests, try:
nosetests -h
All Murano services have tempest-based automated tests, which allow to verify API interfaces and deployment scenarios.
Tempest tests for Murano are located at the: https://git.openstack.org/cgit/openstack/murano/tree/murano/tests/functional
The following Python files contains basic tests suites for different Murano components.
Murano API tests are run on devstack gate and located at https://git.openstack.org/cgit/openstack/murano/tree/murano/tests/functional/api
Murano Engine Tests are run on murano-ci : https://git.openstack.org/cgit/openstack/murano/tree/murano/tests/functional/engine
Murano CLI tests case are currently in the middle of creation. The current scope is read only operations on a cloud that are hard to test via unit tests.
All tests have description and execution steps in there docstrings.