test-fullautomation / robotframework-qconnect-base

Apache License 2.0
2 stars 1 forks source link

Make RobotFramework AIO Verify keyword support matchtry #27

Closed Hao69918003 closed 1 year ago

Hao69918003 commented 1 year ago

The verify keyword currently supports to wait a response received, but it only has 1 time try.

If could, we would have a function that the step is available to have the option to try for some more times. e.g when this pattern does not match within matchtrytimeout seconds, then it sends again the trigger command and tries to receive a message which matches to the pattern. If the matchtry times no matching message was received, then the verifystep should end as failed.

test-fullautomation commented 1 year ago

Hi Cuong, pleas look into this. This applies for all qconnect* functionalities. Thank you, Thomas

test-fullautomation commented 1 year ago

Hi Cuong, what is the status of this issue? Thank you, Thomas

milanac030988 commented 1 year ago

Hello Thomas,

I have implemented it by adding a parameter for the 'verify' keyword, which is fairly simple. However, I am thinking whether it is really necessary because Robotframework already supports a mechanism to do this, as shown in the example below.

Veryfy with match try
    [Arguments]    ${conn_name}     ${search_pattern}   ${send_cmd}     ${timeout}=0  ${fetch_block}=False  ${eob_pattern}='.*'  ${filter_pattern}='.*'   ${matchtry}=1

    FOR     ${i}    IN RANGE    ${matchtry}
        ${passed}  ${value}    Run keyword And Ignore Error     verify      conn_name=${CONNECTION_NAME}
        ...                     search_pattern=${search_pattern}
        ...                     send_cmd=${send_cmd}
        ...                     timeout= ${timeout}
        ...                     fetch_block= ${fetch_block}
        ...                     eob_pattern= ${eob_pattern}
        ...                     filter_pattern= ${eob_pattern}

        Run Keyword If  ${passed}   return from keyword  ${value}
    END
    fail  

Let me know your idea.

Thank you, Cuong

test-fullautomation commented 1 year ago

Hi Cuong, as discussed today this solution is for all interfaces other than TTFis and DLT O.K., but for TTFIS and DLT the matchtry should happen verify internally by default 5 times, with a possibility to overwrite the default value, similar we do in TML. This was a stabilization measure for the TTFIS connection which helped to avoid sporadically appearing errors.. Thank you, Thomas

test-fullautomation commented 1 year ago

solved and already merged.