AssertThat ответ от ключевого слова совпадает с ответом от текущего POST - PullRequest
0 голосов
/ 14 октября 2019

Я использую assertThat, чтобы проверить поле ответа B 1 = жестко закодированный текстовый результат в настоящее время. как использовать assertThat ответ B поле 1 = ответ поле A 1 (из ключевого слова A)? так что мне не нужно писать много тестов для жесткого кодирования результата assert.

пример: ключевое слово A: POST msg A и получить ответ A для проверки содержимого

	@Keyword
	def POSTA def dataFile){
		JsonBuilder ItemBuilder = new JsonBuilder()
		JsonSlurper jsonSlurper = new JsonSlurper()
		ExcelData data = findTestData(dataFile)
		def date = new Date()
		for (def index : (1..data.getRowNumbers())) {
			def TestItemId = data.getValue('ItemId', index) + "/" + data.getValue('ItemCode', index)
			ItemBuilder({
				ItemId(TestItemId)
				name(data.getValue('ItemId', index))
				Id(data.getValue('ItemCode', index))
				created(date)
				lastModified(date)
			})

			String ItemPostJson = JsonOutput.prettyPrint(ItemBuilder.toString())
			println(ItemPostJson)
			def item = ((findTestObject('Web Service Request/item-service/ApiItemPost')) as RequestObject)
			item.setBodyContent(new HttpTextBodyContent(ItemPostJson))


			//POST ITEM
			def response = WS.sendRequestAndVerify(item)
			if(dataFile == "Data Files/ItemData"){
				println(response.statusCode)
				println(response.responseText)
				WS.verifyResponseStatusCode(response, 201)
			}
			else if(dataFile == "Data Files/ItemDataPost400"){
				println(response.responseText)
				WS.verifyResponseStatusCode(response, 400)
			}
		}
	}

новый контрольный пример B, POST msg B и получение ответа B

def NewItemMessage = consumeMessage("NewItem")

def responseList = new JsonSlurper().parseText(consumeMessage.getResponseText())

def decoded = new JsonSlurper().parseText(new String(responseList[0].value.decodeBase64()))
println('response text: \n' + JsonOutput.prettyPrint(JsonOutput.toJson(decoded)))

assertThat(decoded.item.ItemId).isEqualTo("123")
assertThat(decoded.item.name).isEqualTo("Test fdfs")

def consumeMessage(String topic) {
	WS.sendRequestAndVerify(findTestObject('Kafka/1b-Subscribe NewItem Topic', [('topic_name') : topic]))
	return consumeMessage = WS.sendRequestAndVerify(findTestObject('Kafka/1c-Consume Message from NewItem Topic'))
}
...