json ответьте, как убедиться, что структура всегда согласована? - PullRequest
0 голосов
/ 20 марта

Я использую jsonslurper и анализирую текст для захвата ответа API. Затем, используя утверждение, чтобы убедиться, что результат

Неполноценность ответа, следовательно, утверждение не удалось.

Есть ли лучший способ получить ответ, который я получил при использовании POSTMAN? таким образом, дочерний элемент в массиве всегда появляется в одной и той же последовательности?

или лучшее утверждение, которое я могу использовать, чтобы избежать такой проблемы со структурой?

Reason:
org.junit.ComparisonFailure: expected:<"FF1/M[1]"> but was:<"FF1/M[2]">

import com.kms.katalon.core.testobject.ConditionType
import com.kms.katalon.core.testobject.RequestObject
import com.kms.katalon.core.testobject.ResponseObject
import com.kms.katalon.core.testobject.RestRequestObjectBuilder
import com.kms.katalon.core.testobject.TestObjectProperty
import com.kms.katalon.core.testobject.impl.HttpTextBodyContent
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import internal.GlobalVariable
import groovy.json.JsonOutput as JsonOutput
import groovy.json.JsonSlurper as JsonSlurper
import internal.GlobalVariable as GlobalVariable
import static org.assertj.core.api.Assertions.*
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import internal.GlobalVariable
import com.kms.katalon.core.util.KeywordUtil
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import static org.assertj.core.api.Assertions.*
import com.kms.katalon.core.testobject.RequestObject as RequestObject
import com.kms.katalon.core.testobject.impl.HttpTextBodyContent as HttpTextBodyContent
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import groovy.json.JsonOutput as JsonOutput



def SiteHostName = GlobalVariable.SiteHostName 
def Port = GlobalVariable.Port

String requestMethod = "GET"

String endpoint11 = "http://${SiteHostName}:${Port}/api/items/drug?name=Plastic"

RequestObject ro11 = new RequestObject()
ro11.setRestUrl(endpoint11)
ro11.setHttpHeaderProperties()
ro11.setRestRequestMethod("GET")

def test11 = WS.sendRequest(ro11)
WS.verifyResponseStatusCode(test11, 200)
def test11List = new JsonSlurper().parseText(test11.getResponseText())
println('response text Test 11: \n' + JsonOutput.prettyPrint(JsonOutput.toJson(test11List)))

assertThat(test11List.data[0].drugId).isEqualTo("FF1")
assertThat(test11List.data[0].manufacturedDrugs[0].drugId).isEqualTo("FF1/M1")
assertThat(test11List.data[0].manufacturedDrugs[0].packagedDrugs[0].drugId).isEqualTo("FF1/M1/P1")
assertThat(test11List.data[0].manufacturedDrugs[0].packagedDrugs[1].drugId).isEqualTo("FF1/M1/P2")
assertThat(test11List.data[0].manufacturedDrugs[1].drugId).isEqualTo("FF1/M2")
assertThat(test11List.data[0].manufacturedDrugs[1].packagedDrugs[0].drugId).isEqualTo("FF1/M2/P2")
assertThat(test11List.data[0].manufacturedDrugs[1].packagedDrugs[1].drugId).isEqualTo("FF1/M2/P1")
assertThat(test11List.total).isEqualTo(1)

	
	
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...