Comments (14)
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.
@JungPham try to update the qase-robotframework to 3.1.1b2 version
from qase-python.
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.
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.
@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.
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.
@JungPham @EugeneChangResola Hi! Can you provide feedback on this fix?
from qase-python.
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
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.
@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.
[[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.
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.
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.
@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.
@JungPham try to update qase-robotframework
to 3.1.1 version
from qase-python.
Related Issues (20)
- Passing description prop for newly created test runs HOT 1
- Unrecognized arguments on v5.0.2 HOT 10
- not send qase result during api_results.create_result_bulk. HOT 5
- Log capture issue - TypeError: expected str, bytes or os.PathLike object, not StringIO HOT 1
- --qase-testops-run-complete not working HOT 5
- Automated runs are not automatically completed HOT 3
- Make informative output for `pytest --help` HOT 1
- Configuration parser should allow uppercase in `--qase-parameters` HOT 1
- Better error message when test is annotated with wrong ID
- Conflicting imports in qaseio.__init__ HOT 1
- the results are not sent to the test run if there is at least one test without an qase.id HOT 12
- InternalErrors HOT 6
- @qase.suite does not work HOT 1
- Command line option for capturing logs (--qase-pytest-capture-logs) doesn't work HOT 3
- Test results are logged partially and test run don't complete HOT 1
- QASE not sending the latest result when using --reruns HOT 12
- Issue with adding suits for the test with @qase.fields(("suite", "Example")) decorator HOT 4
- Changing value of field Automation status
- pytest.mark.parametrize does't work in qase-pytest 6.1.0 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from qase-python.