Code Monkey home page Code Monkey logo

Comments (14)

EugeneChangResola avatar EugeneChangResola commented on September 16, 2024 2

Hi team, c.c @JungPham
This one seems can reproduced the same symptom,
If the keyword or test cases contained "IF ELSE" like below simple test code:

*** Test Cases ***
Simple IF ELSE Test
    Open Browser    about:blank    chrome
    IF    '${test_region}' == 'jp'
        Go To   http://www.google.co.jp
    ELSE
        Go To   https://www.google.com
    END

and if replace "ELSE" to "ESLE IF" like below sample,
It won't encountered the error and sent the result into qase test run correctly for your refereneces.

*** Test Cases ***
Replace ELSE to ELSE IF 
    Open Browser    about:blank    ${test_browser}
    IF    '${test_region}' == 'jp'
        Go To   http://www.google.co.jp
    ELSE IF   '${test_region}' != 'jp'
        Go To   https://www.google.com
    END

from qase-python.

gibiw avatar gibiw commented on September 16, 2024 2

@JungPham try to update the qase-robotframework to 3.1.1b2 version

from qase-python.

gibiw avatar gibiw commented on September 16, 2024 1

We have released a beta version of the reporter with a fix for this issue. Try updating to version qase-robotframework 3.1.1b1
The constructions IF, ELSE, etc. will be ignored. Only running steps will be added to the test.

from qase-python.

JungPham avatar JungPham commented on September 16, 2024 1

Hi @gibiw,

I'm so sorry for responding late, I need time to debug this error. I still can not push the report to QASE, but I think it's a different issue:

Calling method 'end_test' of listener 'qase.robotframework.Listener' failed: IndexError: list index out of range

I found issue relates to these lines, it not work with Windows. I try to update these lines:

file_path = os.path.relpath(attributes["source"], os.getcwd())
signature = '::'.join(file_path.replace("\\", "/").split("/"))

Yeah, it works but the report can not be pushed to true suite, it has been pushed to Test cases without suite :(

qase-robotframework = "3.1.1b1"
command run:

python -m robot -d Report --exclude ignore -v headless:false -L INFO -v pause4failed:false -v env:dev -v browser:chrome --listener qase.robotframework.Listener -s Chat_Flow TestSuites

debug log:

[Qase][23:43:49][debug] Prepared result: {'status': 'passed', 'stacktrace': '', 'time_ms': 3767, 'comment': None, 'attachments': [], 'steps': [{'time': 1918, 'status': 'passed', 'action': 'Click On Team Members Menu', 'steps': [{'time': 1918, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 1873, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 9, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 3, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 3, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 34, 'status': 'passed', 'action': 'Click Element'}]}]}, {'time': 297, 'status': 'passed', 'action': 'Get Conversation Id', 'steps': [{'time': 287, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 241, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 9, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 5, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 3, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 34, 'status': 'passed', 'action': 'Click Element'}]}, {'time': 3, 'status': 'passed', 'action': 'Get Location'}, {'time': 0, 'status': 'passed', 'action': 'Split String'}, {'time': 0, 'status': 'passed', 'action': 'Set Variable'}, {'time': 0, 'status': 'passed', 'action': 'Split String'}, {'time': 0, 'status': 'passed', 'action': 'Set Variable'}, {'time': 0, 'status': 'passed', 'action': 'Set Suite Variable'}, {'time': 0, 'status': 'passed', 'action': 'Log'}]}, {'time': 57, 'status': 'passed', 'action': 'Verify New Conversation Should Appear On No Assignee List', 'steps': [{'time': 14, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 6, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 6, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 7, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 6, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 9, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 5, 'status': 'passed', 'action': 'Page Should Contain Element'}]}, {'time': 400, 'status': 'passed', 'action': 'Verify Conversation Infomation On Inbox', 'steps': [{'time': 324, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 8, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 8, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 0, 'status': 'passed', 'action': 'Split String'}, {'time': 0, 'status': 'passed', 'action': 'Set Variable'}, {'time': 9, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 0, 'status': 'passed', 'action': 'Remove String'}, {'time': 14, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 5, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 8, 'status': 'passed', 'action': 'Run Keyword If', 'steps': [{'time': 8, 'status': 'passed', 'action': 'Run Keyword If', 'steps': [{'time': 8, 'status': 'passed', 'action': 'Page Should Contain Element'}]}]}, {'time': 8, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 7, 'status': 'passed', 'action': 'JS Get Sender Name Align On Inbox', 'steps': [{'time': 7, 'status': 'passed', 'action': 'Execute Javascript'}, {'time': 0, 'status': 'passed', 'action': 'Return From Keyword'}]}]}, {'time': 44, 'status': 'passed', 'action': 'Verify Be In Charge Container', 'steps': [{'time': 15, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 15, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 13, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}]}, {'time': 55, 'status': 'passed', 'action': 'Verify right banner is displayed', 'steps': [{'time': 47, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 6, 'status': 'passed', 'action': 'Page Should Contain Element'}]}, {'time': 27, 'status': 'passed', 'action': 'Verify right banner is displayed', 'steps': [{'time': 21, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 5, 'status': 'passed', 'action': 'Page Should Contain Element'}]}, {'time': 21, 'status': 'passed', 'action': 'Verify right banner is displayed', 'steps': [{'time': 13, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 7, 'status': 'passed', 'action': 'Page Should Contain Element'}]}, {'time': 19, 'status': 'passed', 'action': 'Verify right banner is displayed', 'steps': [{'time': 13, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 6, 'status': 'passed', 'action': 'Page Should Contain Element'}]}, {'time': 919, 'status': 'passed', 'action': 'Assign Conversation', 'steps': [{'time': 57, 'status': 'passed', 'action': 'Click On Message', 'steps': [{'time': 57, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 13, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 16, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 5, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 11, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 25, 'status': 'passed', 'action': 'Click Element'}]}]}, {'time': 131, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 13, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 12, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 8, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 3, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 104, 'status': 'passed', 'action': 'Click Element'}]}, {'time': 159, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 239, 'status': 'passed', 'action': 'Common Input Text', 'steps': [{'time': 39, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 1, 'status': 'passed', 'action': 'Evaluate'}, {'time': 194, 'status': 'passed', 'action': 'Input Text'}]}, {'time': 116, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 36, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 18, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 8, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 8, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 61, 'status': 'passed', 'action': 'Click Element'}]}, {'time': 117, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 47, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 17, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 7, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 8, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 52, 'status': 'passed', 'action': 'Click Element'}]}, {'time': 93, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 21, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 16, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 11, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 4, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 53, 'status': 'passed', 'action': 'Click Element'}]}]}], 'param': {}, 'param_groups': [], 'defect': False, 'case': {'title': 'End User Send A Message To Start Conversation via LINE', 'description': '', 'preconditions': None, 'postconditions': None, 'suite': 'E2EAutomationTestcases\tChat Flow'}}

[Qase][23:43:50][debug] Sending results for run 347: [{'status': 'passed', 'stacktrace': '', 'time_ms': 3767, 'comment': None, 'attachments': [], 'steps': [{'time': 1918, 'status': 'passed', 'action': 'Click On Team Members Menu', 'steps': [{'time': 1918, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 1873, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 9, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 3, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 3, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 34, 'status': 'passed', 'action': 'Click Element'}]}]}, {'time': 297, 'status': 'passed', 'action': 'Get Conversation Id', 'steps': [{'time': 287, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 241, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 9, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 5, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 3, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 34, 'status': 'passed', 'action': 'Click Element'}]}, {'time': 3, 'status': 'passed', 'action': 'Get Location'}, {'time': 0, 'status': 'passed', 'action': 'Split String'}, {'time': 0, 'status': 'passed', 'action': 'Set Variable'}, {'time': 0, 'status': 'passed', 'action': 'Split String'}, {'time': 0, 'status': 'passed', 'action': 'Set Variable'}, {'time': 0, 'status': 'passed', 'action': 'Set Suite Variable'}, {'time': 0, 'status': 'passed', 'action': 'Log'}]}, {'time': 57, 'status': 'passed', 'action': 'Verify New Conversation Should Appear On No Assignee List', 'steps': [{'time': 14, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 6, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 6, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 7, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 6, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 9, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 5, 'status': 'passed', 'action': 'Page Should Contain Element'}]}, {'time': 400, 'status': 'passed', 'action': 'Verify Conversation Infomation On Inbox', 'steps': [{'time': 324, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 8, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 8, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 0, 'status': 'passed', 'action': 'Split String'}, {'time': 0, 'status': 'passed', 'action': 'Set Variable'}, {'time': 9, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 0, 'status': 'passed', 'action': 'Remove String'}, {'time': 14, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 5, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 8, 'status': 'passed', 'action': 'Run Keyword If', 'steps': [{'time': 8, 'status': 'passed', 'action': 'Run Keyword If', 'steps': [{'time': 8, 'status': 'passed', 'action': 'Page Should Contain Element'}]}]}, {'time': 8, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 7, 'status': 'passed', 'action': 'JS Get Sender Name Align On Inbox', 'steps': [{'time': 7, 'status': 'passed', 'action': 'Execute Javascript'}, {'time': 0, 'status': 'passed', 'action': 'Return From Keyword'}]}]}, {'time': 44, 'status': 'passed', 'action': 'Verify Be In Charge Container', 'steps': [{'time': 15, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 15, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 13, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}]}, {'time': 55, 'status': 'passed', 'action': 'Verify right banner is displayed', 'steps': [{'time': 47, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 6, 'status': 'passed', 'action': 'Page Should Contain Element'}]}, {'time': 27, 'status': 'passed', 'action': 'Verify right banner is displayed', 'steps': [{'time': 21, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 5, 'status': 'passed', 'action': 'Page Should Contain Element'}]}, {'time': 21, 'status': 'passed', 'action': 'Verify right banner is displayed', 'steps': [{'time': 13, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 7, 'status': 'passed', 'action': 'Page Should Contain Element'}]}, {'time': 19, 'status': 'passed', 'action': 'Verify right banner is displayed', 'steps': [{'time': 13, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 6, 'status': 'passed', 'action': 'Page Should Contain Element'}]}, {'time': 919, 'status': 'passed', 'action': 'Assign Conversation', 'steps': [{'time': 57, 'status': 'passed', 'action': 'Click On Message', 'steps': [{'time': 57, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 13, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 16, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 5, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 11, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 25, 'status': 'passed', 'action': 'Click Element'}]}]}, {'time': 131, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 13, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 12, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 8, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 3, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 104, 'status': 'passed', 'action': 'Click Element'}]}, {'time': 159, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 239, 'status': 'passed', 'action': 'Common Input Text', 'steps': [{'time': 39, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 1, 'status': 'passed', 'action': 'Evaluate'}, {'time': 194, 'status': 'passed', 'action': 'Input Text'}]}, {'time': 116, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 36, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 18, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 8, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 8, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 61, 'status': 'passed', 'action': 'Click Element'}]}, {'time': 117, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 47, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 17, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 7, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 8, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 52, 'status': 'passed', 'action': 'Click Element'}]}, {'time': 93, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 21, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 16, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 11, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 4, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 53, 'status': 'passed', 'action': 'Click Element'}]}]}], 'param': {}, 'param_groups': [], 'defect': False, 'case': {'title': 'End User Send A Message To Start Conversation via LINE', 'description': '', 'preconditions': None, 'postconditions': None, 'suite': 'E2EAutomationTestcases\tChat Flow'}}]

from qase-python.

gibiw avatar gibiw commented on September 16, 2024

@JungPham Thank you for your request.
The "action" field cannot be empty. We need to understand why this is happening.
Can you create a small test project where this problem is reproduced and send it to us?

from qase-python.

JungPham avatar JungPham commented on September 16, 2024

Thank you @EugeneChangResola,
I found 2 issues:

  • IF ELSE => We need to change to IF ... ELSE IF
  • RETURN => We need to change to Return from keyword

With case RETURN, it should be changed to Return from keyword but with case IF ELSE, we need to update to IF ELSE IF is not really good, @gibiw

from qase-python.

gibiw avatar gibiw commented on September 16, 2024

@JungPham @EugeneChangResola Hi! Can you provide feedback on this fix?

from qase-python.

JungPham avatar JungPham commented on September 16, 2024

Thank you for being so supportive, @gibiw.
I have upgraded to 3.1.1b2, and I no longer get the issue IndexError: list index out of range.
However, my test case does not push to test suite E2EAutomationTestcases as my config, it still pushes to Test cases without suite. I have set "rootSuite": "E2EAutomationTestcases" in qase.config.json
image

command

python -m robot -d Report --exclude ignore -v headless:false -L INFO -v pause4failed:false -v env:dev -v browser:chrome --listener qase.robotframework.Listener -s Chat_Flow TestSuites

Do I have any wrong config?

from qase-python.

gibiw avatar gibiw commented on September 16, 2024

@JungPham what version of qase-python-commons package are you using? If it's not the latest, then try updating to the latest and check again.

from qase-python.

JungPham avatar JungPham commented on September 16, 2024
[[package]]
name = "qase-python-commons"
version = "3.1.1"
description = "A library for Qase TestOps and Qase Report"
optional = false
python-versions = ">=3.7"
files = [
    {file = "qase_python_commons-3.1.1-py3-none-any.whl", hash = "sha256:7836831447818a5152362204ba8d83df1a7e3be2d606bb391bab3e96594020d0"},
    {file = "qase_python_commons-3.1.1.tar.gz", hash = "sha256:24b8c6983ac176fcc62787681c9d638e3f015b5d486248e607a963ffb3209f33"},
]

Let me try upgrading qase-python-commons to 3.1.2

from qase-python.

JungPham avatar JungPham commented on September 16, 2024

Hmm, new error and result does not push to QASE, @gibiw


[Qase][21:48:40][debug] Completing run

[Qase][21:48:40][debug] Prepared result: {'status': 'passed', 'stacktrace': '', 'time_ms': 5367, 'comment': None, 'attachments': [], 'steps': [{'time': 2003, 'status': 'passed', 'action': 'Click On Team Members Menu', 'steps': [{'time': 2001, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 1915, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 13, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 8, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 4, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 69, 'status': 'passed', 'action': 'Click Element'}]}]}, {'time': 692, 'status': 'passed', 'action': 'Get Conversation Id', 'steps': [{'time': 680, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 638, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 9, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 6, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 3, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 30, 'status': 'passed', 'action': 'Click Element'}]}, {'time': 4, 'status': 'passed', 'action': 'Get Location'}, {'time': 1, 'status': 'passed', 'action': 'Split String'}, {'time': 0, 'status': 'passed', 'action': 'Set Variable'}, {'time': 0, 'status': 'passed', 'action': 'Split String'}, {'time': 0, 'status': 'passed', 'action': 'Set Variable'}, {'time': 0, 'status': 'passed', 'action': 'Set Suite Variable'}, {'time': 0, 'status': 'passed', 'action': 'Log'}]}, {'time': 69, 'status': 'passed', 'action': 'Verify New Conversation Should Appear On No Assignee List', 'steps': [{'time': 14, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 10, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 7, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 9, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 9, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 8, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 6, 'status': 'passed', 'action': 'Page Should Contain Element'}]}, {'time': 1320, 'status': 'passed', 'action': 'Verify Conversation Infomation On Inbox', 'steps': [{'time': 1177, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 12, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 13, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 0, 'status': 'passed', 'action': 'Split String'}, {'time': 0, 'status': 'passed', 'action': 'Set Variable'}, {'time': 13, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 0, 'status': 'passed', 'action': 'Remove String'}, {'time': 34, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 9, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 12, 'status': 'passed', 'action': 'Run Keyword If', 'steps': [{'time': 12, 'status': 'passed', 'action': 'Run Keyword If', 'steps': [{'time': 11, 'status': 'passed', 'action': 'Page Should Contain Element'}]}]}, {'time': 29, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 8, 'status': 'passed', 'action': 'JS Get Sender Name Align On Inbox', 'steps': [{'time': 7, 'status': 'passed', 'action': 'Execute Javascript'}, {'time': 0, 'status': 'passed', 'action': 'Return From Keyword'}]}]}, {'time': 85, 'status': 'passed', 'action': 'Verify Be In Charge Container', 'steps': [{'time': 36, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 25, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 22, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}]}, {'time': 45, 'status': 'passed', 'action': 'Verify right banner is displayed', 'steps': [{'time': 33, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 11, 'status': 'passed', 'action': 'Page Should Contain Element'}]}, {'time': 30, 'status': 'passed', 'action': 'Verify right banner is displayed', 'steps': [{'time': 19, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 8, 'status': 'passed', 'action': 'Page Should Contain Element'}]}, {'time': 42, 'status': 'passed', 'action': 'Verify right banner is displayed', 'steps': [{'time': 29, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 11, 'status': 'passed', 'action': 'Page Should Contain Element'}]}, {'time': 36, 'status': 'passed', 'action': 'Verify right banner is displayed', 'steps': [{'time': 23, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 12, 'status': 'passed', 'action': 'Page Should Contain Element'}]}, {'time': 1035, 'status': 'passed', 'action': 'Assign Conversation', 'steps': [{'time': 92, 'status': 'passed', 'action': 'Click On Message', 'steps': [{'time': 91, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 26, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 19, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 9, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 8, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 43, 'status': 'passed', 'action': 'Click Element'}]}]}, {'time': 200, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 23, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 16, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 9, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 6, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 157, 'status': 'passed', 'action': 'Click Element'}]}, {'time': 73, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 327, 'status': 'passed', 'action': 'Common Input Text', 'steps': [{'time': 27, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 1, 'status': 'passed', 'action': 'Evaluate'}, {'time': 293, 'status': 'passed', 'action': 'Input Text'}]}, {'time': 103, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 30, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 20, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 11, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 9, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 50, 'status': 'passed', 'action': 'Click Element'}]}, {'time': 99, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 22, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 15, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 7, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 5, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 58, 'status': 'passed', 'action': 'Click Element'}]}, {'time': 134, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 30, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 27, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 19, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 7, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 73, 'status': 'passed', 'action': 'Click Element'}]}]}], 'param': {}, 'param_groups': [], 'defect': False, 'case': {'title': 'End User Send A Message To Start Conversation via LINE', 'description': '', 'preconditions': None, 'postconditions': None, 'suite_title': 'E2EAutomationTestcases\tChat Flow'}}

[Qase][21:48:40][debug] Prepared result: {'status': 'passed', 'stacktrace': '', 'time_ms': 538, 'comment': None, 'attachments': [], 'steps': [{'time': 52, 'status': 'passed', 'action': 'Verify tab is selected', 'steps': [{'time': 33, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 16, 'status': 'passed', 'action': 'Get Element Attribute'}, {'time': 1, 'status': 'passed', 'action': 'Run Keyword If'}, {'time': 1, 'status': 'passed', 'action': 'Convert To String'}, {'time': 0, 'status': 'passed', 'action': 'Should Be Equal As Strings'}]}, {'time': 353, 'status': 'passed', 'action': 'Verify Conversation Should Be In Stage', 'steps': [{'time': 87, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 21, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 19, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 9, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 8, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 45, 'status': 'passed', 'action': 'Click Element'}]}, {'time': 17, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 245, 'status': 'passed', 'action': 'Capture Page Screenshot'}]}, {'time': 32, 'status': 'passed', 'action': 'Verify right banner is displayed', 'steps': [{'time': 20, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 10, 'status': 'passed', 'action': 'Page Should Contain Element'}]}, {'time': 31, 'status': 'passed', 'action': 'Verify right banner is displayed', 'steps': [{'time': 19, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 10, 'status': 'passed', 'action': 'Page Should Contain Element'}]}, {'time': 31, 'status': 'passed', 'action': 'Verify right banner is displayed', 'steps': [{'time': 20, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 11, 'status': 'passed', 'action': 'Page Should Contain Element'}]}, {'time': 34, 'status': 'passed', 'action': 'Verify right banner is displayed', 'steps': [{'time': 23, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 10, 'status': 'passed', 'action': 'Page Should Contain Element'}]}], 'param': {}, 'param_groups': [], 'defect': False, 'case': {'title': 'Verify flow status incoming sucessfully', 'description': '', 'preconditions': None, 'postconditions': None, 'suite_title': 'E2EAutomationTestcases\tChat Flow'}}

[Qase][21:48:40][debug] Prepared result: {'status': 'passed', 'stacktrace': '', 'time_ms': 11668, 'comment': None, 'attachments': [], 'steps': [{'time': 277, 'status': 'passed', 'action': 'Click On Team Members Menu', 'steps': [{'time': 145, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 33, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 23, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 13, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 7, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 86, 'status': 'passed', 'action': 'Click Element'}]}, {'time': 129, 'status': 'passed', 'action': 'Run Keyword And Return Status', 'steps': [{'time': 127, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 22, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 19, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 10, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 8, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 81, 'status': 'passed', 'action': 'Click Element'}]}]}]}, {'time': 7674, 'status': 'passed', 'action': 'Click On Message', 'steps': [{'time': 7673, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 7579, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 10, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 5, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 5, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 81, 'status': 'passed', 'action': 'Click Element'}]}]}, {'time': 1590, 'status': 'passed', 'action': 'Reply Message With Role', 'steps': [{'time': 1206, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 1148, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 12, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 7, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 3, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 46, 'status': 'passed', 'action': 'Click Element'}]}, {'time': 103, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 14, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 10, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 5, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 4, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 76, 'status': 'passed', 'action': 'Click Element'}]}, {'time': 17, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 0, 'status': 'passed', 'action': 'Generate Random String'}, {'time': 0, 'status': 'passed', 'action': 'Set Variable'}, {'time': 185, 'status': 'passed', 'action': 'Common Input Text', 'steps': [{'time': 12, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 1, 'status': 'passed', 'action': 'Evaluate'}, {'time': 166, 'status': 'passed', 'action': 'Input Text'}]}, {'time': 73, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 28, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 9, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 3, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 3, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 35, 'status': 'passed', 'action': 'Click Element'}]}, {'time': 0, 'status': 'passed', 'action': 'Return From Keyword'}]}, {'time': 771, 'status': 'passed', 'action': 'Verify Conversation Infomation On Inbox', 'steps': [{'time': 10, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 5, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 5, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 0, 'status': 'passed', 'action': 'Split String'}, {'time': 0, 'status': 'passed', 'action': 'Set Variable'}, {'time': 8, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 0, 'status': 'passed', 'action': 'Remove String'}, {'time': 445, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 5, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 7, 'status': 'passed', 'action': 'Run Keyword If', 'steps': [{'time': 7, 'status': 'passed', 'action': 'Run Keyword If', 'steps': [{'time': 6, 'status': 'passed', 'action': 'Page Should Contain Element'}]}]}, {'time': 7, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 269, 'status': 'passed', 'action': 'JS Get Sender Name Align On Inbox', 'steps': [{'time': 267, 'status': 'passed', 'action': 'Execute Javascript'}, {'time': 0, 'status': 'passed', 'action': 'Return From Keyword'}]}]}, {'time': 1351, 'status': 'passed', 'action': 'Verify Conversation Should Be In Stage', 'steps': [{'time': 187, 'status': 'passed', 'action': 'Common Click Element', 'steps': [{'time': 46, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 11, 'status': 'passed', 'action': 'Scroll To Element', 'steps': [{'time': 7, 'status': 'passed', 'action': 'Get WebElement'}, {'time': 4, 'status': 'passed', 'action': 'Execute Javascript'}]}, {'time': 125, 'status': 'passed', 'action': 'Click Element'}]}, {'time': 1018, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 143, 'status': 'passed', 'action': 'Capture Page Screenshot'}]}], 'param': {}, 'param_groups': [], 'defect': False, 'case': {'title': 'Can Reply Message As Official Account', 'description': '', 'preconditions': None, 'postconditions': None, 'suite_title': 'E2EAutomationTestcases\tChat Flow'}}

[Qase][21:48:40][debug] Prepared result: {'status': 'failed', 'stacktrace': 'Element \'//div[@id="livechat_text_editor_container"]//input[@type="search"]\' not visible after 1 minute.', 'time_ms': 60230, 'comment': None, 'attachments': [], 'steps': [{'time': 60229, 'status': 'failed', 'action': 'Reply Message With Role', 'steps': [{'time': 60226, 'status': 'failed', 'action': 'Common Click Element', 'steps': [{'time': 60225, 'status': 'failed', 'action': 'Wait Until Element Is Visible'}]}]}], 'param': {}, 'param_groups': [], 'defect': False, 'case': {'title': 'Can Reply Message As Team', 'description': '', 'preconditions': None, 'postconditions': None, 'suite_title': 'E2EAutomationTestcases\tChat Flow'}}

[Qase][21:48:40][debug] Prepared result: {'status': 'failed', 'stacktrace': 'Element \'//div[@id="livechat_text_editor_container"]//input[@type="search"]\' not visible after 1 minute.', 'time_ms': 60300, 'comment': None, 'attachments': [], 'steps': [{'time': 60298, 'status': 'failed', 'action': 'Reply Message With Role', 'steps': [{'time': 60296, 'status': 'failed', 'action': 'Common Click Element', 'steps': [{'time': 60295, 'status': 'failed', 'action': 'Wait Until Element Is Visible'}]}]}], 'param': {}, 'param_groups': [], 'defect': False, 'case': {'title': 'Can Reply Message As Asignee', 'description': '', 'preconditions': None, 'postconditions': None, 'suite_title': 'E2EAutomationTestcases\tChat Flow'}}

[Qase][21:48:40][debug] Prepared result: {'status': 'failed', 'stacktrace': "Element '//*[contains(@class, 'mantine-Button-label') and text()=normalize-space('後処理')]' not visible after 10 seconds.", 'time_ms': 10450, 'comment': None, 'attachments': [], 'steps': [{'time': 12, 'status': 'passed', 'action': 'Verify red circle number on submenu is not displayed', 'steps': [{'time': 10, 'status': 'passed', 'action': 'Wait Until Element Is Not Visible'}]}, {'time': 36, 'status': 'passed', 'action': 'Verify tab is selected', 'steps': [{'time': 20, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 13, 'status': 'passed', 'action': 'Get Element Attribute'}, {'time': 0, 'status': 'passed', 'action': 'Run Keyword If'}, {'time': 0, 'status': 'passed', 'action': 'Convert To String'}, {'time': 1, 'status': 'passed', 'action': 'Should Be Equal As Strings'}]}, {'time': 84, 'status': 'passed', 'action': 'Verify New Conversation Should Appear', 'steps': [{'time': 35, 'status': 'passed', 'action': 'Wait Until Element Is Visible'}, {'time': 12, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 12, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 11, 'status': 'passed', 'action': 'Page Should Contain Element'}, {'time': 11, 'status': 'passed', 'action': 'Page Should Contain Element'}]}, {'time': 10314, 'status': 'failed', 'action': 'Verify button is display', 'steps': [{'time': 10313, 'status': 'failed', 'action': 'Wait Until Element Is Visible'}]}], 'param': {}, 'param_groups': [], 'defect': False, 'case': {'title': 'Verify flow status ongoing sucessfully (wrap up before end)', 'description': '', 'preconditions': None, 'postconditions': None, 'suite_title': 'E2EAutomationTestcases\tChat Flow'}}

[Qase][21:48:40][error] Error at sending results for run 354: 'charmap' codec can't encode characters in position 159-161: character maps to <undefined>

Exception in thread Thread-3 (_send_results_threaded):
[Qase][21:48:40][debug] Completing run 354
Traceback (most recent call last):

  File "C:\Users\admin\AppData\Local\Programs\Python\Python311\Lib\threading.py", line 1045, in _bootstrap_inner
    self.run()
  File "C:\Users\admin\AppData\Local\Programs\Python\Python311\Lib\threading.py", line 982, in run
    self._target(*self._args, **self._kwargs)
  File "D:\PROJECT\tests\e2e-testing\venv\Lib\site-packages\qase\commons\reporters\testops.py", line 79, in _send_results_threaded
    self.client.send_results(self.project_code, self.run_id, results)
  File "D:\PROJECT\tests\e2e-testing\venv\Lib\site-packages\qase\commons\client\api_v1_client.py", line 126, in send_results
    results_to_send = [self._prepare_result(project_code, result) for result in results]
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\PROJECT\tests\e2e-testing\venv\Lib\site-packages\qase\commons\client\api_v1_client.py", line 126, in <listcomp>  
    results_to_send = [self._prepare_result(project_code, result) for result in results]
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\PROJECT\tests\e2e-testing\venv\Lib\site-packages\qase\commons\client\api_v1_client.py", line 201, in _prepare_result
    self.logger.log_debug(f"Prepared result: {result_model}")
  File "D:\PROJECT\tests\e2e-testing\venv\Lib\site-packages\qase\commons\logger.py", line 27, in log_debug
    self.log(message, 'debug')
  File "D:\PROJECT\tests\e2e-testing\venv\Lib\site-packages\qase\commons\logger.py", line 23, in log
    f.write(log)
  File "C:\Users\admin\AppData\Local\Programs\Python\Python311\Lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeEncodeError: 'charmap' codec can't encode characters in position 159-161: character maps to <undefined>
[Qase][21:48:42][info] Run 354 was completed successfully

from qase-python.

JungPham avatar JungPham commented on September 16, 2024

I think this error relates to 'stacktrace': "Element '//*[contains(@class, 'mantine-Button-label') and text()=normalize-space('後処理')]' not visible after 10 seconds." with the complex characters " and '.

from qase-python.

gibiw avatar gibiw commented on September 16, 2024

@JungPham We can't reproduce this problem, but we have some ideas on how to fix it. Can you email us at [email protected] and we'll send you a temporary package for testing?

from qase-python.

gibiw avatar gibiw commented on September 16, 2024

@JungPham try to update qase-robotframework to 3.1.1 version

from qase-python.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.