Anatomy of Maximo UI
testgrinder service will be discontinued on January 31, 2025
Here we will go over how to target various parts of Maximo user interface in testgrinder scenarios. The goal for this post is to provide a quick overview of what’s available. You can find more information about the available steps in the Step Reference.
Step Reference
You write testgrinder scenarios using steps described in the Step Reference (you can always access the step reference from the Help page within testgrinder).
Step Prefixes
When writing steps you will need to prefix them with one of: Given, When, Then, And, But. When showing examples of steps below, sometime I will omit the prefix. Just remember that when you write your scenario, you need to have one of these prefixes in front of every step of your scenario.
First things first. At the beginning of your scenario you will need to login to Maximo. For that you can use this step:
I login to Maximo as (role)
Here (role) corresponds to the role as defined within the target system in testgrinder. When executed, this step will access Maximo login page (using the url specified in the target system), enter the credentials (as defined in the identity linked to the role in the target system) and click the Sign In button.
Once login succeeds, your next step is to launch a Maximo application. Here’s the step for that:
I go to the (path) application
Here (path) is the list of the Go To menu steps separated by a ‘/’ (slash). For example, if you need to get to Work Orders Tracking (which appears under Work Orders menu item) you will write:
Given I go to the Work Orders / Work Order Tracking application
(Unlike with other steps below, you don’t need to use quotes to surround the value of the path parameter for this step.)
Now that we’ve launched a Maximo application, let’s talk about how testgrinder steps refer to Maximo application screens.
Fields
Steps you most likely to use the most are steps that interact with fields. Here’s these steps in their most basic form. A step for confirming the value in a field:
I see the value (value) in the (field) field
And another to set the value:
I enter (value) in the (field) field
When substituting parameters care needs to be taken to help testgrinder understand where a parameter starts and ends. If the value for a parameter does not have spaces, it can be used as is:
Then I see the value 10.0 in the Duration field
However, if the parameter has spaces in it, you will need to surround it with single or double (but always matching) quotes:
Then I enter '10/20/20 12:23 AM' in the 'Status Date' field
When referring to fields, use the field’s label as it appears on the screen. Rarely, Maximo presents multiple fields with the same label in the same section/table, such as here in the Service Requests application:
In this case, most of the testgrinder steps allow you to differentiate between the fields by adding 1st/2nd/3rd/fourth/fifth/etc. before the name of the field, like so:
Description Fields
Some fields have a description field that follows them. To target the description field rather than the main field, use this variation of the step:
I see the (value) value in the description field of the (field) field
This step comes in several variations for targeting fields in sections and tables.
Sections
But what if you want to make sure that the interaction is done with a field appearing in a specific section? For example, a field with the same label appears twice but in different sections, and you need to target one of them?
To help with more precise targeting many steps come in several variations. For example, here’s the variation of the step for checking a field value that targets the field in a section:
I enter (value) in the (field) field in the (section) section
Here, (section) is the name of the section. Most Maximo applications have an unnamed section at the top of the screen. To target that section, you can use header in place of the section name (do not surround header with quotes):
When I enter 'PM' in the 'Work Type' field in the header section
Tables
There are several variations of steps for referring to Maximo screen tables. For example, here’s the variations of the step checking a field’s value:
I see the value (value) in the (field) field in the (table) table
This step will only consider fields in the (table) – anywhere in the table. If the table happens to be unnamed (like it usually is on dialogs), you can use special name of unlabelled (with no quotes).
This step will only consider fields on the currently selected table row:
Then I see the value (value) in the (field) field on the current row in the (table) table
This step will only consider fields on the specified table row. The (position) parameter can be one of: first, second, third, 4th, 5th, etc:
I see the value (value) in the (field) field on the (position) row in the (table) table
This step will only consider fields that appear in the table details (the area that open up when you expand a table row). This step will expand the table details area if it is not expanded at the time:
I see the value (value) in the (field) field in the (table) table details
This step builds on the step above and only considers fields that appear in the specified section within table details:
I see the value (value) in the (field) field in the (section) section in the (table) table details
Filtering Tables
Often you will need to enter a table filter and initiate the search. You can accomplish this by using a combination of these two steps:
I enter (value) in the (field) filter in the (table) table
This step will enter the filter for the specified field of the table. You can use several of these to enter filters for more than one field. Once all filters are entered, you can use this step to initiate the search:
I initiate search in the (table) table
For example, to filter for approved PM work orders:
Then I enter '=APPR' in the 'Status' filter in the 'Work Orders' table And I enter '=PM' in the 'WO Type' filter in the 'Work Orders' table And I initiate search in the 'Work Orders' table
Tabs
Quite often you will need to select application tabs. You can use this step for that:
I select the (tab) tab
To select an action from the application’s Select Action menu, use this step:
I select action (action)
Dialogs
testgrinder steps are dialog aware – they limit their reach to the dialog if one is currently displayed. For example this step:
I see the value (value) in the (field) field
would be limited to fields on the dialog if a dialog is currently active, but will consider any field on the screen if no dialog is present.
Toolbar
The main step for interacting with the Maximo application toolbar button is this:
I click the (title) toolbar button
(title) here refers to the text that is displayed when you hover the cursor on top of the toolbar button, but only the part that precedes the keyboard shortcut (if any). For example, to click the button that creates a new work order in the Work Order Tracking application you can use:
When I click the 'New Work Order' toolbar button
Saving Changes
There are two special steps for clicking the toolbar Save button. One is:
I save the record
This step will click the Save button and not check the outcome. You can do the checking yourself using other steps. Or,
I successfully save the record
This step will make sure that ‘Record has been saved’ flash message appears on the screen.
I put together a quick example that uses some of the steps we’ve talked about. This example is a test that could be a part of a data verification test. It loads a work order, and confirms that it has the expected values.
Please refer to the Step Reference for information on hundreds of other steps that are available. If you run into a problem using a step or not sure which one to use in your situation, feel free to get in touch with us, we will be glad to help!
Last updated