【发布时间】:2025-11-21 07:05:02
【问题描述】:
我在通过特定条件时遇到问题。我正在显示来自 json 的值,正如您从屏幕截图中看到的那样,它在日志中显示值 2210,但是它输出条件为 fail 而它应该是 true。我看不出它为什么会失败,有没有人知道为什么或者我可以尝试修复它以使其通过?
下面是代码:
import groovy.json.JsonSlurper
def response = messageExchange.response.responseContent
def json = new JsonSlurper().parseText(response)
def hotelidjson = json.jet2_hotel_id
hotelid = context.expand( '${#TestCase#hotelid}' )
assert hotelidjson != null
if (hotelidjson == "2210")
log.info "pass"
else
log.info "fail"
log.info hotelidjson
更新:
响应字符串输出:
INFO:[{jet2Awards=[], awards=[{awardType=Certificate of Excellence, images={small=https://www.tripadvisor.com/img/cdsi/img2/awards/CERTIFICATE_OF_EXCELLENCE_small-24283-5.jpg, large=https://www.tripadvisor.com/img/cdsi/img2/awards/CERTIFICATE_OF_EXCELLENCE_2016_en_US_large-24283-5.jpg}, year=2016}], num_reviews=342, rating_image_url=https://www.tripadvisor.com/img/cdsi/img2/ratings/traveler/4.5-24283-5.png, jet2_hotel_id=2210, rating=4.5}]
响应的json在这里:
[{
"rating": "4.5",
"rating_image_url": "https://www.tripadvisor.com/img/cdsi/img2/ratings/traveler/4.5-24283-5.png",
"num_reviews": 342,
"jet2_hotel_id": 2210,
"awards": [ {
"awardType": "Certificate of Excellence",
"year": "2016",
"images": {
"small": "https://www.tripadvisor.com/img/cdsi/img2/awards/CERTIFICATE_OF_EXCELLENCE_small-24283-5.jpg",
"large": "https://www.tripadvisor.com/img/cdsi/img2/awards/CERTIFICATE_OF_EXCELLENCE_2016_en_US_large-24283-5.jpg"
}
}],
谢谢
【问题讨论】:
-
但是
hotelidjson是[2210]而不是2210...您要检查字符串是否等于该值或包含该值?此外,日志与代码不一致,因为有 3 个值但只有 2 个失败。提供的代码不会发生这种情况。 -
(1) 请不要将代码或输出的屏幕截图放在问题中。而是复制/粘贴文本。它更易于阅读和使用。 (2) 注释掉的代码与您的问题无关,请不要包含它。
-
(3) 显示字符串
response的值(去掉不相关的元素) -
@m0skit0 即使我更改 if 条件以检查 hoteldidjson = [2210],它也会失败.. 对于日志,我运行它并显示日志 3,然后我注释掉了一个的日志并没有清除它,因此为什么你在应该是 2 时看到 5 个日志
-
你能告诉我们
hotelidjson是什么吗?log.info hotelidjson.class