This page describes the set-up and usage of the "Schrödinger" testing framework for GUI tests. This feature is officially available up from TODO: INSERT Midpoint VERSION.
To be able to execute the tests written via the Schrodinger framework, there are a couple of initial steps to be taken:
- Pick a browser on which you wish to execute the tests and download the corresponding webdriver supported for executing selenium tests (e.g. the latest ones for the Chrome web browser can be found here)
- Locate the schrodinger.properties properties file present in midpoint/testing/schrodingertest/src/test/resources/configuration/ and add the following values:
- For ''username" input the username for the test user (Same as above)
- For "password" input the password for the tests user (The user which the tests automation mechanism will use to test the GUI)
- For "base_url" input the URL on which the midpoint application resides (e.g. " )
- For "webdriver" specify the name of the webdriver system property (e.g. for chrome "webdriver.chrome.driver")
- For "webdriverLocation" input the path to the web driver executable which you downloaded during "step
- For "headlessStart" true if the tests should start in "headless" mode (If no value present then by default false)
- A JDK 1.8 or higher is needed to be referenced on your path for this feature to work.
Test execution using maven:
With the project already built, execute the following maven command while in the module named "testing", the profile "Schrodinger" adds the module "schrodingertest" to the execution.
Optionally execute the former without the profile switch directly in the "schrodingertest" module to start only the Schrodinger test
- You are capable to customize the execution a bit more, this is stated at a further section of this page and essentially that's it. Have fun testing!
The boot up of the application is indicated with a message similar to this one :
Midpoint (a version of the build you are testing) booting up for integration testing, embedded Tomcat instance configured to listen on port: (port number, either default or configured)
Default parameters and optional test execution arguments
While executing the tests there are also a couple of additional arguments which can be supplied to change the default test environment parameters.
- Server port for the embedded Apache Tomcat server. The default value is 8180. Can be changed using the argument "-Dserver.port". Please also bear in mind that the server port has to be changed in the "base_url" property in the schrodinger.properties property file as well.
- The midpoint home directory. How the default is set is described on the following page. Can be changed using the argument "-Dmidpoint.home"
- By default, there is a home directory created during the boot up of Midpoint or there can be one assigned via the "midpoint.home" argument. If you wish to remove such directories after the test execution finishes, there is a cleanup option present as well. By default it is set to "false" but this can be changed using the "-Dcleanup" argument.
- The whole bootup, test, clean up part of the integration tests cycle can be ignored if needed using the switch "-DskipTests"
The following will execute the integration test suites using the "/home/midpoint/schrodinger" directory as midpoint home and executing the embedded tomcat using the port "8181". After the suite finishes the process will be stopped and the created or supplied directory will be removed.
Integration with an automation server (Jenkins)
Further framework extension
Adding custom test suites
The execution of test suites is orchestrated via the maven failsafe plugin. To add additional test cases to the suite execution you will need to modify the suite configuration file.
By default, the information of which test classes are the subject of execution is present in the "testng-integration-schrodinger.xml" suite configuration file at the root of the "schrodingertest" module.
If you would like to change the name or path to the suite configuration file, this change has to be done in the project POM file of the "schrodingertest" module. The configuration is present in the plugin with the artifact "maven-failsafe-plugin".