HolySN

Record and replay

Capture a click path once, then have it prove itself again later.

The two commands

rec starts recording what you do. prove replays it.

What gets captured is a path through the platform: opening a record, changing fields, saving, ordering a catalog item. What gets replayed is the same path, against the same instance or another one.

It waits for facts, not for time

A replay that sleeps for two seconds fails on a slow morning and passes on a fast one. This one waits for something to become true instead: the element exists, the form reports itself loaded, the marker it was watching has gone.

That matters most at save. Saving a record no longer reloads the frame the way it once did, so waiting for a reload is waiting forever. The signals that actually tell you a save happened are different ones: the marker disappearing, the form no longer reporting itself as new, the URL picking up the interaction parameter.

Three outcomes, not two

A step ends as passed, failed, or unknown. The third one is the point.

A step that could not be checked is not quietly counted as a pass, and it is not reported as a failure either. It says it could not tell, which is the only honest answer and the one that sends you to look.

A pass also has to survive the navigations it caused itself, so a check does not get to succeed against a page that is already being replaced.

Turning a run into an ATF test

A Pro tool. Every run in the prove panel has a to ATF button. It builds an Automated Test Framework test on the instance you are on, step by step, and links to it when it is done, ready for the test runner.

Each kind of step becomes the ATF step that does the same thing: opening a form becomes Open a New Form or Open an Existing Record, field values become Set Field Values (or Set Variable Values on a catalog item), a save becomes Submit a Form, a check becomes Field Values, Record Query or a server script that counts a list, and a click on the portal or in a workspace becomes a UI test script with the handles the recorder kept.

Every mapping was checked by running the test it produces, not by reading the documentation, and the conversion carries the fixes those runs taught: the form is reopened after a server-side step, because a UI step straight after one loses the form, and a record created earlier in the test is reopened by script, because a data pill in a record field is not resolved.

Some steps need Run UI Test Script, which only recent releases have. The conversion checks every step type before it creates anything; when one is missing it creates nothing and names the steps it could not convert.

Where the platform has no seam

Some interactions have no funnel to intercept. Submitting a catalog item is the clearest: there is no single call to sit in front of, so the recording follows what the form does rather than a button press.

Outside a form, a choice is recorded as the choice made, not as the click that made it. The same decision then replays correctly when the menu is drawn in a different position, or drawn by a different component after an upgrade.

Record and replay | HolySN