gpt4 book ai didi

selenium - 为什么即使使用FailureHandling.CONTINUE_ON_FAILURE也会停止测试用例

转载 作者:行者123 更新时间:2023-12-03 07:52:46 27 4
gpt4 key购买 nike

我不明白为何在停止使用测试用例的同时将FailureHandling_CONTINUE_ON_FAILURE用作调用者。

输入 call 者的代码:

...
switch (testCaseName) {
case testCaseName:
WebUI.callTestCase(findTestCase(testCaseName), param, FailureHandling.CONTINUE_ON_FAILURE)
break
}
...

被 call 者出错:

在用 WebUI.callTestCase(...)调用的测试用例中发生了此错误

Caused by: com.kms.katalon.core.webui.exception.WebElementNotFoundException: Web element with id: ‘XXX’ located by ‘By.xpath: XXX’]’ not found



但是,如果我使用 FailureHandling_CONTINUE_ON_FAILURE,则必须停止被调用方,但不能调用方吧?

感谢帮助

最佳答案

我能够部分重现该问​​题。我编写了以下两个测试用例:

TC1: call 者

println ">>>> start caller"
if(!WebUI.callTestCase(findTestCase("Callee"), null, FailureHandling.OPTIONAL)){
println ">>>> success!"
}
println ">>>> end caller"

TC2: 被叫者
println ">>>> start callee"
assert 0

这是我的控制台输出,带有 FailureHandling.OPTIONAL:
2019-07-03 12:43:41.851 DEBUG testcase.Caller                          - 1: println(">>>> start caller")
>>>> start caller
2019-07-03 12:43:41.855 DEBUG testcase.Caller - 2: if (!(callTestCase(findTestCase("Callee"), null, OPTIONAL)))
2019-07-03 12:43:41.934 INFO c.k.katalon.core.main.TestCaseExecutor - --------------------
2019-07-03 12:43:41.934 INFO c.k.katalon.core.main.TestCaseExecutor - CALL Test Cases/Callee
2019-07-03 12:43:42.086 DEBUG testcase.Callee - 1: println(">>>> start callee")
>>>> start callee
2019-07-03 12:43:42.087 DEBUG testcase.Callee - 2: assert 0
2019-07-03 12:43:42.095 ERROR c.k.katalon.core.main.TestCaseExecutor - ❌ Test Cases/Callee FAILED.
Reason:
Assertion failed:

assert 0

at Callee.run(Callee:18)
at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)
....

2019-07-03 12:43:42.104 INFO c.k.katalon.core.main.TestCaseExecutor - END CALL Test Cases/Callee
2019-07-03 12:43:42.104 INFO c.k.katalon.core.main.TestCaseExecutor - --------------------
2019-07-03 12:43:42.109 WARN c.k.k.core.keyword.internal.KeywordMain - Unable to call Test Case 'Test Cases/Callee' (Root cause: com.kms.katalon.core.exception.StepFailedException: Call Test Case 'Test Cases/Callee' failed
at com.kms.katalon.core.keyword.builtin.CallTestCaseKeyword$_callTestCase_closure1.doCall(CallTestCaseKeyword.groovy:63)
....
Caused by: Assertion failed:

assert 0

at Callee.run(Callee:18)
at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)
...
)
2019-07-03 12:43:42.110 DEBUG testcase.Caller - 1: println(">>>> success!")
>>>> success!
2019-07-03 12:43:42.111 DEBUG testcase.Caller - 3: println(">>>> end caller")
>>>> end caller
2019-07-03 12:43:43.067 INFO c.k.katalon.core.main.TestCaseExecutor - END Test Cases/Caller

因此, TC2 失败,但是 WebUI.callTestCase()引发了一个异常,该异常在日志中被解释为WARN,因此 TC1 被传递。

当我切换到 FailureHandling.CONTINUE_ON_FAILURE时,在日志中将其解释为ERROR,并且 TC1 TC2 均失败。有关失败处理 here的更多信息。

我相信这是Katalon Studio中的错误。但是,我认为您可以使用 FailureHandling.OPTIONAL作为一种变通办法来获得所需的结果。

关于selenium - 为什么即使使用FailureHandling.CONTINUE_ON_FAILURE也会停止测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56866594/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com