Understand Smart Reporting results - No test name

Perfecto Smart Reporting can be an enormous help to understand the big picture: one part of it is to see how certain tests have performed on different devices.

In specific cases, however, tests that were to be run with a specific test name and attributes (tags, project name, CI information) cannot be found in the Report Library. In those cases, the test is likely found under a generic name. When using Appium or Selenium, the name will be RemoteWebDriver.

When grouping by test name, you might see something like this:

Explanation

There are essentially two reasons why a test with name RemoteWebDriver is found in the report library. 

  1. The test was not given a name.

    More specifically, it was either never initialized with any reporting context, or possibly no logical test (with a test name) was started using reportiumclient.testStart(...).

    At the beginning of a logical test, the testStart should be called passing a test name as well as any test-specific tags. 

    This is only possible, if an execution context has been established. See Implementing Reporting for further details.

    Copy
    //** Below step creates the general context of the execution. Reports of all tests run with this driver will share this metadata
    PerfectoExecutionContext perfectoExecutionContext = new PerfectoExecutionContext.PerfectoExecutionContextBuilder()
    .withProject(new Project("My Project", "1.0"))
    .withJob(new Job("My Job", 45))
    .withContextTags("tag1")
    .withWebDriver(driver)
    .build();


    //** Below step is vital to name the actual test
    ReportiumClient reportiumClient = new ReportiumClientFactory().createPerfectoReportiumClient(perfectoExecutionContext);
    try {

        reportiumClient.testStart("My test name", new TestContext("tag2", "tag3"));

    ...
  2. The driver instantiation failed

     For the DigitalZoom report to be initialized, a connection with the device needs to be established first. Common reasons for the driver creation failing are:

    1. Device busy/not connected/reserved/could not be found and similar
    2. If the device is unavailable to the user executing the test, driver creation will fail. 

    3. App cannot be installed/started/found and similar
    4. If the app is started or installed by using an Appium capability- failure to do so will result in the driver creation throwing an error.

    5. Incorrect driver Capabilities
    6. Any capabilities that fail to take effect upon driver creation, will cause it to fail. Wrong browser, wrong ActivityName, app not installed yet, missing capability

Once the reason for tests being created outside of the expected naming, eg. as RemoteWebDriver, the cause can be remediated- be it by adding reporting context, or taking more care in orchestration- ensuring that the devices and settings applied upon them are correct.