Class ReportPortalUtils


  • public class ReportPortalUtils
    extends java.lang.Object
    Set of useful utils related to Karate -> ReportPortal integration
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String asMarkdownCode​(java.lang.String code)
      Builds markdown representation of some code or script to be logged to ReportPortal
      static com.epam.ta.reportportal.ws.model.FinishExecutionRQ buildFinishLaunchRq​(com.epam.reportportal.listeners.ListenerParameters parameters)
      Build default finish launch event/request
      static com.epam.ta.reportportal.ws.model.FinishTestItemRQ buildFinishScenarioRq​(com.intuit.karate.core.ScenarioResult result)
      Build ReportPortal request for finish Scenario event
      static com.epam.ta.reportportal.ws.model.FinishTestItemRQ buildFinishTestItemRq​(java.util.Date endTime, com.epam.reportportal.listeners.ItemStatus status)
      Build default finish test item event/request
      static com.epam.ta.reportportal.ws.model.StartTestItemRQ buildStartBackgroundRq​(com.intuit.karate.core.Step step, com.intuit.karate.core.Scenario scenario)
      Build ReportPortal request for start Background event.
      static com.epam.ta.reportportal.ws.model.StartTestItemRQ buildStartFeatureRq​(com.intuit.karate.core.Feature feature)
      Build ReportPortal request for start Feature event.
      static com.epam.ta.reportportal.ws.model.launch.StartLaunchRQ buildStartLaunchRq​(com.epam.reportportal.listeners.ListenerParameters parameters)
      Build default start launch event/request
      static com.epam.ta.reportportal.ws.model.StartTestItemRQ buildStartScenarioRq​(com.intuit.karate.core.ScenarioResult result)
      Build ReportPortal request for start Scenario event
      static com.epam.ta.reportportal.ws.model.StartTestItemRQ buildStartStepRq​(com.intuit.karate.core.Step step, com.intuit.karate.core.Scenario scenario)
      Customize start step test item event/request
      static com.epam.ta.reportportal.ws.model.StartTestItemRQ buildStartTestItemRq​(java.lang.String name, java.util.Date startTime, com.epam.reportportal.listeners.ItemType type)
      Build default start test item event/request
      static java.lang.Thread createShutdownHook​(java.lang.Runnable actions)
      Create a launch finish hook which will be called on JVM shutdown.
      static java.lang.String formatExampleKey​(java.util.Map<java.lang.String,​java.lang.Object> example)
      Create a String from a parameter Map to be used as a test key and title
      static java.lang.String getCodeRef​(com.intuit.karate.core.Scenario scenario)
      Returns code reference for feature files by URI and Scenario reference
      static java.lang.String getInnerFeatureName​(java.lang.String name)
      Build name of inner feature (called by another scenario).
      static java.lang.String getInnerScenarioName​(java.lang.String name)
      Build name of inner scenario (called by another scenario).
      static java.util.List<com.epam.ta.reportportal.ws.model.ParameterResource> getParameters​(com.intuit.karate.core.Scenario scenario)
      Extract and transform ScenarioOutline parameters to ReportPortal parameter list.
      static java.util.List<com.epam.ta.reportportal.ws.model.ParameterResource> getParameters​(java.util.Map<java.lang.String,​java.lang.Object> args)
      Transform Map of parameters to ReportPortal parameter list.
      static com.epam.reportportal.listeners.ItemStatus getStepStatus​(java.lang.String status)
      Map Karate's item status to ReportPortal status object.
      static com.epam.reportportal.service.item.TestCaseIdEntry getTestCaseId​(com.intuit.karate.core.Scenario scenario)
      Return a Test Case ID for a Scenario in a Feature file
      static java.lang.Thread registerShutdownHook​(java.lang.Runnable actions)
      Create and register a launch finish hook which will be called on JVM shutdown.
      static void sendLog​(io.reactivex.Maybe<java.lang.String> itemId, java.lang.String message, com.epam.reportportal.listeners.LogLevel level)
      Send Step logs to ReportPortal.
      static void sendLog​(io.reactivex.Maybe<java.lang.String> itemId, java.lang.String message, com.epam.reportportal.listeners.LogLevel level, java.util.Date logTime)
      Send Step logs to ReportPortal.
      static java.util.Set<com.epam.ta.reportportal.ws.model.attribute.ItemAttributesRQ> toAttributes​(java.util.List<com.intuit.karate.core.Tag> tags)  
      static void unregisterShutdownHook​(java.lang.Thread hook)
      Remove a launch finish hook.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • MARKDOWN_CODE_PATTERN

        public static final java.lang.String MARKDOWN_CODE_PATTERN
        See Also:
        Constant Field Values
      • PARAMETERS_PATTERN

        public static final java.lang.String PARAMETERS_PATTERN
        See Also:
        Constant Field Values
      • VARIABLE_PATTERN

        public static final java.lang.String VARIABLE_PATTERN
        See Also:
        Constant Field Values
      • AGENT_PROPERTIES_FILE

        public static final java.lang.String AGENT_PROPERTIES_FILE
        See Also:
        Constant Field Values
      • SKIPPED_ISSUE_KEY

        public static final java.lang.String SKIPPED_ISSUE_KEY
        See Also:
        Constant Field Values
      • SCENARIO_CODE_REFERENCE_PATTERN

        public static final java.lang.String SCENARIO_CODE_REFERENCE_PATTERN
        See Also:
        Constant Field Values
      • EXAMPLE_CODE_REFERENCE_PATTERN

        public static final java.lang.String EXAMPLE_CODE_REFERENCE_PATTERN
        See Also:
        Constant Field Values
      • MARKDOWN_DELIMITER

        public static final java.lang.String MARKDOWN_DELIMITER
        See Also:
        Constant Field Values
      • MARKDOWN_DELIMITER_PATTERN

        public static final java.lang.String MARKDOWN_DELIMITER_PATTERN
        See Also:
        Constant Field Values
    • Method Detail

      • formatExampleKey

        public static java.lang.String formatExampleKey​(@Nonnull
                                                        java.util.Map<java.lang.String,​java.lang.Object> example)
        Create a String from a parameter Map to be used as a test key and title
        Parameters:
        example - a map of parameters: name->value
        Returns:
        a formatted string of parameters
      • createShutdownHook

        @Nonnull
        public static java.lang.Thread createShutdownHook​(@Nonnull
                                                          java.lang.Runnable actions)
        Create a launch finish hook which will be called on JVM shutdown. Prevents from long unfinished launches for interrupted tests.
        Parameters:
        actions - Shutdown actions to perform
        Returns:
        a Thread which executes Launch finish and exits
      • registerShutdownHook

        @Nonnull
        public static java.lang.Thread registerShutdownHook​(@Nonnull
                                                            java.lang.Runnable actions)
        Create and register a launch finish hook which will be called on JVM shutdown. Prevents from long unfinished launches for interrupted tests.
        Parameters:
        actions - Shutdown actions to perform
        Returns:
        a Thread which executes Launch finish and exits
      • unregisterShutdownHook

        public static void unregisterShutdownHook​(@Nonnull
                                                  java.lang.Thread hook)
        Remove a launch finish hook. Use it if the launch finished gracefully.
        Parameters:
        hook - a Thread which represents Launch finish hook
      • buildStartLaunchRq

        @Nonnull
        public static com.epam.ta.reportportal.ws.model.launch.StartLaunchRQ buildStartLaunchRq​(@Nonnull
                                                                                                com.epam.reportportal.listeners.ListenerParameters parameters)
        Build default start launch event/request
        Parameters:
        parameters - Launch configuration parameters
        Returns:
        request to ReportPortal
      • buildFinishLaunchRq

        @Nonnull
        public static com.epam.ta.reportportal.ws.model.FinishExecutionRQ buildFinishLaunchRq​(@Nonnull
                                                                                              com.epam.reportportal.listeners.ListenerParameters parameters)
        Build default finish launch event/request
        Parameters:
        parameters - Launch configuration parameters
        Returns:
        request to ReportPortal
      • getCodeRef

        @Nonnull
        public static java.lang.String getCodeRef​(@Nonnull
                                                  com.intuit.karate.core.Scenario scenario)
        Returns code reference for feature files by URI and Scenario reference
        Parameters:
        scenario - Karate's Scenario object instance
        Returns:
        a code reference
      • buildStartTestItemRq

        @Nonnull
        public static com.epam.ta.reportportal.ws.model.StartTestItemRQ buildStartTestItemRq​(@Nonnull
                                                                                             java.lang.String name,
                                                                                             @Nonnull
                                                                                             java.util.Date startTime,
                                                                                             @Nonnull
                                                                                             com.epam.reportportal.listeners.ItemType type)
        Build default start test item event/request
        Parameters:
        name - item's name
        startTime - item's start time in Date format
        type - item's type (e.g. feature, scenario, step, etc.)
        Returns:
        request to ReportPortal
      • buildFinishTestItemRq

        @Nonnull
        public static com.epam.ta.reportportal.ws.model.FinishTestItemRQ buildFinishTestItemRq​(@Nonnull
                                                                                               java.util.Date endTime,
                                                                                               @Nullable
                                                                                               com.epam.reportportal.listeners.ItemStatus status)
        Build default finish test item event/request
        Parameters:
        endTime - item's end time
        status - item's status
        Returns:
        request to ReportPortal
      • toAttributes

        @Nullable
        public static java.util.Set<com.epam.ta.reportportal.ws.model.attribute.ItemAttributesRQ> toAttributes​(@Nullable
                                                                                                               java.util.List<com.intuit.karate.core.Tag> tags)
      • buildStartFeatureRq

        @Nonnull
        public static com.epam.ta.reportportal.ws.model.StartTestItemRQ buildStartFeatureRq​(@Nonnull
                                                                                            com.intuit.karate.core.Feature feature)
        Build ReportPortal request for start Feature event.
        Parameters:
        feature - Karate's Feature object instance
        Returns:
        request to ReportPortal
      • getParameters

        @Nonnull
        public static java.util.List<com.epam.ta.reportportal.ws.model.ParameterResource> getParameters​(@Nonnull
                                                                                                        java.util.Map<java.lang.String,​java.lang.Object> args)
        Transform Map of parameters to ReportPortal parameter list.
        Parameters:
        args - argument Map
        Returns:
        parameters
      • getParameters

        @Nullable
        public static java.util.List<com.epam.ta.reportportal.ws.model.ParameterResource> getParameters​(@Nonnull
                                                                                                        com.intuit.karate.core.Scenario scenario)
        Extract and transform ScenarioOutline parameters to ReportPortal parameter list.
        Parameters:
        scenario - Karate's Scenario object instance
        Returns:
        parameters
      • getTestCaseId

        @Nullable
        public static com.epam.reportportal.service.item.TestCaseIdEntry getTestCaseId​(@Nonnull
                                                                                       com.intuit.karate.core.Scenario scenario)
        Return a Test Case ID for a Scenario in a Feature file
        Parameters:
        scenario - Karate's Scenario object instance
        Returns:
        Test Case ID entity or null if it's not possible to calculate
      • buildStartScenarioRq

        @Nonnull
        public static com.epam.ta.reportportal.ws.model.StartTestItemRQ buildStartScenarioRq​(@Nonnull
                                                                                             com.intuit.karate.core.ScenarioResult result)
        Build ReportPortal request for start Scenario event
        Parameters:
        result - Karate's ScenarioResult object instance
        Returns:
        request to ReportPortal
      • buildFinishScenarioRq

        @Nonnull
        public static com.epam.ta.reportportal.ws.model.FinishTestItemRQ buildFinishScenarioRq​(@Nonnull
                                                                                               com.intuit.karate.core.ScenarioResult result)
        Build ReportPortal request for finish Scenario event
        Parameters:
        result - Karate's ScenarioResult object instance
        Returns:
        request to ReportPortal
      • buildStartBackgroundRq

        @Nonnull
        public static com.epam.ta.reportportal.ws.model.StartTestItemRQ buildStartBackgroundRq​(@Nonnull
                                                                                               com.intuit.karate.core.Step step,
                                                                                               @Nonnull
                                                                                               com.intuit.karate.core.Scenario scenario)
        Build ReportPortal request for start Background event.
        Parameters:
        step - Karate's Step object instance
        scenario - Karate's Scenario object instance
        Returns:
        request to ReportPortal
      • buildStartStepRq

        @Nonnull
        public static com.epam.ta.reportportal.ws.model.StartTestItemRQ buildStartStepRq​(@Nonnull
                                                                                         com.intuit.karate.core.Step step,
                                                                                         @Nonnull
                                                                                         com.intuit.karate.core.Scenario scenario)
        Customize start step test item event/request
        Parameters:
        step - Karate's Step object instance
        scenario - Karate's Scenario object instance
        Returns:
        request to ReportPortal
      • getStepStatus

        public static com.epam.reportportal.listeners.ItemStatus getStepStatus​(java.lang.String status)
        Map Karate's item status to ReportPortal status object.
        Parameters:
        status - Karate item status
        Returns:
        ReportPortal status
      • sendLog

        public static void sendLog​(io.reactivex.Maybe<java.lang.String> itemId,
                                   java.lang.String message,
                                   com.epam.reportportal.listeners.LogLevel level,
                                   java.util.Date logTime)
        Send Step logs to ReportPortal.
        Parameters:
        itemId - item ID future
        message - log message to send
        level - log level
        logTime - log time
      • sendLog

        public static void sendLog​(io.reactivex.Maybe<java.lang.String> itemId,
                                   java.lang.String message,
                                   com.epam.reportportal.listeners.LogLevel level)
        Send Step logs to ReportPortal.
        Parameters:
        itemId - item ID future
        message - log message to send
        level - log level
      • asMarkdownCode

        public static java.lang.String asMarkdownCode​(java.lang.String code)
        Builds markdown representation of some code or script to be logged to ReportPortal
        Parameters:
        code - Code or Script
        Returns:
        Message to be sent to ReportPortal
      • getInnerScenarioName

        public static java.lang.String getInnerScenarioName​(java.lang.String name)
        Build name of inner scenario (called by another scenario).
        Parameters:
        name - Scenario name
        Returns:
        Inner scenario name
      • getInnerFeatureName

        public static java.lang.String getInnerFeatureName​(java.lang.String name)
        Build name of inner feature (called by another scenario).
        Parameters:
        name - Feature name
        Returns:
        Inner feature name