Maximo Testing Playbook
Updated Jul 2026

Documentation › Maximo Testing Playbook

Maximo Testing Playbook

User  Practical patterns for testing IBM Maximo reliably with MaxTAF.

Maximo is a demanding application to automate — nested iframes, dynamically-generated element ids, dirty-record prompts, and rich field states. MaxTAF is built specifically to handle these, but a few habits make your tests far more reliable. This playbook collects them.

Why Maximo needs a specialised approach

MaxTAF's MXML language, the recorder and the AI tester all account for these; the patterns below help you get the most out of them.

Pattern: frames are handled for you — but stay aware

When you record, MaxTAF inserts <ui:switchToFrame> / <ui:switchToDefaultFrame/> automatically as your interaction crosses frame boundaries, and the frame-switch tag retries via the parent frame on timeout. In an AI case, run recorder contextAction commands from the main frame — MaxTAF searches all frames to find the element by id. When hand-editing MXML, switch into the frame before acting and back out afterwards.

Pattern: prefer stable locators

Pattern: assert field state, not just value

Maximo shows required/read-only/error states that matter for real acceptance testing. Use the state-aware asserts:

<ui:assertValue value="WAPPR"><ui:id>STATUS@483</ui:id></ui:assertValue>
<ui:assertElementRequired><ui:id>DESCRIPTION@27</ui:id></ui:assertElementRequired>
<ui:assertElementReadonly><ui:id>WONUM@27</ui:id></ui:assertElementReadonly>
<ui:assertElementError><ui:id>SCHEDSTART@27</ui:id></ui:assertElementError>

In an AI case, the equivalent recorder command is contextAction with action: 'assertValue' (or assertElementRequired, etc.) — see the recorder actions.

Pattern: navigate via the address parameter

Don't hard-code the Maximo URL inside cases. Point tests at the mx.maximo.address project parameter so one change moves every case to a new environment:

<native>driver.get(mxService.getParam("mx.maximo.address"))</native>

Set mx.maximo.address (and, if you use auto-login, mx.maximo.username / mx.maximo.password) on the Parameters page.

Pattern: a canonical work-order smoke test

A reliable Maximo smoke test as AI-case steps (record it to get a reusable MXML case):

Navigate to the Maximo address.
Login with the Maximo credentials.
Go to the Work Order Tracking application.
Click the New Work Order button.
Wait for the work order form to load.
Type "Pump repair" into the Description field.
Verify the Status field shows "WAPPR".
Save the work order.
Report what was checked.

The same shape works for Assets (create asset → assert Asset Number), Locations, and other applications — swap the application name and the field checks.

Pattern: let dirty-record prompts resolve automatically

Maximo raises a native "leave page?" prompt when a record is unsaved. MaxTAF's execution accepts these automatically so automation keeps moving — but for clean tests, explicitly save or discard the record before you navigate away or sign out.

Pattern: capture video and screenshots for acceptance evidence

Related

MXML Reference · Writing AI Test Cases · Recorder Guide · Troubleshooting