空手道 - GraphQL - 如何验证模式然后响应?
Karate - GraphQL - How to verify schema and then response?
我终于让空手道与 GraphQL 一起工作,并且能够验证一个简单的 200 响应,尽管我在验证模式和响应时遇到了问题。我是超级新手,所以我深表歉意(不是程序员,只是测试人员)。我想验证模式是否正确,例如结果只是 return(providerID、firstName、lastName 等),而不是数据。然后我想单独验证数据本身。我不明白的另一件事是如何传递数据,例如我可以在哪里更改纬度、经度、最大距离等并将其作为变量。我在示例中看到 "name" 如何用作变量,但这些似乎以不同方式传递,所以我不确定该怎么做。抱歉不知道那么多,感谢您的帮助。
Scenario: simple graphql request
#Verify 200 response status returned
Given text query =
"""
{
Results: getSearchResults(searchLatitude:"38.942833",
searchLongitude: "-119.984549", providerType: "Primary Care Physicians",
sortBy: "distance", maxDistance:"600",skip: 0, take: 10) {
providerID
firstName
lastName
mI
title
name
nameLFMT
status
specialties
locations
institutions
acceptNewPatient
imageUri
distanceToNearest
}
}
"""
And request { query: '#(query)' }
When method post
Then status 200
# pretty print the response
* print 'response:', response
# the '..' wildcard is useful for traversing deeply nested parts of the
json
* def results = get[0] response..Results
* match results contains { ProviderId: 520, firstName: 'Richard',
lastName: 'Botto' }
看看 replace
关键字。
然后试试这个:
Given text query =
"""
{
Results: getSearchResults(searchLatitude:"<searchLatitude>",
searchLongitude: "<searchLongitude>", providerType: "Primary Care Physicians",
sortBy: "distance", maxDistance:"600",skip: 0, take: 10) {
providerID
firstName
lastName
mI
title
name
nameLFMT
status
specialties
locations
institutions
acceptNewPatient
imageUri
distanceToNearest
}
}
"""
* replace query.searchLatitude = '38.942833'
* replace query.searchLongitude = '-119.984549'
完成此工作后,请搜索 "graphql" 的文档以获取更多想法。
匹配模式应该很简单:
* match results contains { ProviderId: '#number', firstName: '#string', lastName: '#string' }
该文档有一整节关于 fuzzy matching。
我终于让空手道与 GraphQL 一起工作,并且能够验证一个简单的 200 响应,尽管我在验证模式和响应时遇到了问题。我是超级新手,所以我深表歉意(不是程序员,只是测试人员)。我想验证模式是否正确,例如结果只是 return(providerID、firstName、lastName 等),而不是数据。然后我想单独验证数据本身。我不明白的另一件事是如何传递数据,例如我可以在哪里更改纬度、经度、最大距离等并将其作为变量。我在示例中看到 "name" 如何用作变量,但这些似乎以不同方式传递,所以我不确定该怎么做。抱歉不知道那么多,感谢您的帮助。
Scenario: simple graphql request
#Verify 200 response status returned
Given text query =
"""
{
Results: getSearchResults(searchLatitude:"38.942833",
searchLongitude: "-119.984549", providerType: "Primary Care Physicians",
sortBy: "distance", maxDistance:"600",skip: 0, take: 10) {
providerID
firstName
lastName
mI
title
name
nameLFMT
status
specialties
locations
institutions
acceptNewPatient
imageUri
distanceToNearest
}
}
"""
And request { query: '#(query)' }
When method post
Then status 200
# pretty print the response
* print 'response:', response
# the '..' wildcard is useful for traversing deeply nested parts of the
json
* def results = get[0] response..Results
* match results contains { ProviderId: 520, firstName: 'Richard',
lastName: 'Botto' }
看看 replace
关键字。
然后试试这个:
Given text query =
"""
{
Results: getSearchResults(searchLatitude:"<searchLatitude>",
searchLongitude: "<searchLongitude>", providerType: "Primary Care Physicians",
sortBy: "distance", maxDistance:"600",skip: 0, take: 10) {
providerID
firstName
lastName
mI
title
name
nameLFMT
status
specialties
locations
institutions
acceptNewPatient
imageUri
distanceToNearest
}
}
"""
* replace query.searchLatitude = '38.942833'
* replace query.searchLongitude = '-119.984549'
完成此工作后,请搜索 "graphql" 的文档以获取更多想法。
匹配模式应该很简单:
* match results contains { ProviderId: '#number', firstName: '#string', lastName: '#string' }
该文档有一整节关于 fuzzy matching。