Skip to main content

Report Automation command

Description

The report command allows you to add custom steps in your test reports, marking them as either Passed or Failed. This command is particularly useful for providing detailed feedback in reports and simplifying post-test analysis.

info

This automation command is supported for both Appium (Mobile Devices) & Selenium (Desktop Browsers).

Parameters

Parameter NameValueDescription
messageStringA custom message to display in the report
statusBooleanTrue marks the step as passed, False marks it as failed

Code Example

The report command can be executed using the executeScript function:

Java- driver.executeScript("seetest:client.report", message, status);

Python-self.driver.execute_script("seetest:client.report", message, status);

C#- driver.ExecuteScript("seetest:client.report", message, status);

JavaScript- driver.executeScript("seetest:client.report", message, status); |

Ruby- driver.executeScript("seetest:client.report", message, status);

Practical Example

Imagine you're testing a banking application, and you need to verify that a payment has been successfully processed. You might assert that the balance before and after the payment is different. Without the report command, it may look something like this:

String balanceAfterPayment = "$450";
String outputIfAssertionFailure = "Amount has not been deducted.";
assertNotEquals(balanceBeforePayment, balanceAfterPayment, outputIfAssertionFailure);```

In an enhanced version where you are using the report command to log the result, it may look something like this:

```try {
assertNotEquals(balanceBeforePayment, balanceAfterPayment, outputIfAssertionFailure);

driver.executeScript("seetest:client.report", "Amount has been deducted", "true");
driver.executeScript("seetest:client.report", "Previous Balance: " + balanceBeforePayment + ", Current Balance: " + balanceAfterPayment, "true");
} catch (AssertionError e) {
driver.executeScript("seetest:client.report", e.getStackTrace(), "false");
driver.executeScript("seetest:client.report", "Amount has NOT been deducted", "false");
driver.executeScript("seetest:client.report", "Previous Balance: " + balanceBeforePayment + ", Current Balance: " + balanceAfterPayment, "false");
throw e;
}

In case of failure, this is what the above code would display in the report generated:

info

Be cautious when marking a step as "failed" using the report command. A failed step will mark the entire test as failed, unless overridden by the setReportStatus command.