空手道 - 条件 if 和包含 when 响应可以是 json 或 html
Karate - Conditional if and contains when response can be either json or html
我正在发出请求,其中响应可以 return 编辑为 Json 或 HTML。
我正在尝试编写一个基于 html 情况的条件,其中如果响应包含字符串 'my string',则调用另一个功能文件。我已尝试阅读有关 conditional logic, and contains 的文档,但是,我仍然遇到问题。
以下是我正在执行的步骤:
Given url 'someUrl'
When method get
Then status 200
# 响应可以 return 一个 json 类似于这样的对象:
* def jsonResponse=
"""
{
"del_date_range": "new Object",
"twoday_date": null,
"sameday": null,
"calendar_end_day": 23,
"zip_error_message_id": null
}
"""
#响应可以return这个HTML:
* def htmlResponse=
"""
<span class="text">
<p>my string</p>
</span>
"""
# 现在我想创建一个 if 条件,说明响应是否包含字符串 'my string',然后调用另一个功能文件。
我想做这样的事情,但这不起作用:
* if (response contains 'my string') karate.call('calledFeature.feature')
我会得到这样的错误:
javax.script.ScriptException: <eval>:1:13 Expected ) but found contains
实现此目标的最佳方法是什么?如果 Json 对象被 returned -> 什么也不做。如果 html 是 returned -> 调用其他功能文件。 在此先感谢您。
给你:
* string temp = response
* def isHtml = temp.startsWith('<')
现在您可以进行任何类型的条件调用。
我正在发出请求,其中响应可以 return 编辑为 Json 或 HTML。
我正在尝试编写一个基于 html 情况的条件,其中如果响应包含字符串 'my string',则调用另一个功能文件。我已尝试阅读有关 conditional logic, and contains 的文档,但是,我仍然遇到问题。
以下是我正在执行的步骤:
Given url 'someUrl'
When method get
Then status 200
# 响应可以 return 一个 json 类似于这样的对象:
* def jsonResponse=
"""
{
"del_date_range": "new Object",
"twoday_date": null,
"sameday": null,
"calendar_end_day": 23,
"zip_error_message_id": null
}
"""
#响应可以return这个HTML:
* def htmlResponse=
"""
<span class="text">
<p>my string</p>
</span>
"""
# 现在我想创建一个 if 条件,说明响应是否包含字符串 'my string',然后调用另一个功能文件。
我想做这样的事情,但这不起作用:
* if (response contains 'my string') karate.call('calledFeature.feature')
我会得到这样的错误:
javax.script.ScriptException: <eval>:1:13 Expected ) but found contains
实现此目标的最佳方法是什么?如果 Json 对象被 returned -> 什么也不做。如果 html 是 returned -> 调用其他功能文件。 在此先感谢您。
给你:
* string temp = response
* def isHtml = temp.startsWith('<')
现在您可以进行任何类型的条件调用。