空手道 - 条件 if 并且包含何时响应可以是 json 或 html
Posted
技术标签:
【中文标题】空手道 - 条件 if 并且包含何时响应可以是 json 或 html【英文标题】:Karate - Conditional if and contains when response can be either json or html 【发布时间】:2021-01-11 06:06:54 【问题描述】:我正在提出一个请求,其中响应可以作为 Json 或 html 返回。
我正在尝试基于 html 案例编写一个条件,其中如果响应包含字符串“我的字符串”,则调用另一个功能文件。我已经尝试阅读conditional logic 和contains 上的文档,但是我仍然遇到问题。
以下是我正在采取的步骤:
Given url 'someUrl'
When method get
Then status 200
#响应可以返回一个类似这样的json对象:
* def jsonResponse=
"""
"del_date_range": "new Object",
"twoday_date": null,
"sameday": null,
"calendar_end_day": 23,
"zip_error_message_id": null
"""
# 响应可以返回这个 HTML:
* def htmlResponse=
"""
<span class="text">
<p>my string</p>
</span>
"""
# 现在我想创建一个 if 条件来说明响应是否包含字符串“我的字符串”,然后调用另一个功能文件。
我想做这样的事情,但这不起作用:
* if (response contains 'my string') karate.call('calledFeature.feature')
我会收到这样的错误:
javax.script.ScriptException: <eval>:1:13 Expected ) but found contains
实现这一目标的最佳方法是什么?如果返回 Json 对象 -> 什么也不做。如果返回 html -> 调用其他功能文件。提前谢谢。
【问题讨论】:
【参考方案1】:给你:
* string temp = response
* def isHtml = temp.startsWith('<')
现在您可以进行任何类型的条件调用。
【讨论】:
以上是关于空手道 - 条件 if 并且包含何时响应可以是 json 或 html的主要内容,如果未能解决你的问题,请参考以下文章