Как использовать setBodyContent (HttpBodyContent) в Каталоне - PullRequest
0 голосов
/ 26 апреля 2018

Я пытался обновить наш API управления тестами после завершения теста Katalon.

Мы используем Adaptavist Test Management в JIRA. Кстати, я не пытаюсь обновить надстройку Katalon JIRA.

Вызов API для Adaptavist должен быть POST и содержать текстовое сообщение о таких элементах, как пример {"projectKey": "FVS", "testCaseKey": "FVS-T1", "status": "Pass "," environment ":" DEV "} В конце концов я бы в случае необходимости заменил эти элементы переменными результата теста Katalon.

Я создал сервисный вызов в репозитории объектов, который имеет дело с настройками аутентификации, это прекрасно работает, если я проверяю запрос в редакторе с этими примерами значений.

Когда я прихожу, чтобы добавить скрипт в сам тестовый пример, я изо всех сил пытаюсь заставить его работать, не говоря уже о замене переменных фактическими значениями.

У меня сейчас есть это:

//run test
WebUI.openBrowser('')

WebUI.navigateToUrl(GlobalVariable.MainURL)

WebUI.verifyElementClickable(findTestObject('img_img-responsive_1'))

WebUI.verifyElementClickable(findTestObject('img_img-responsive_2'))

WebUI.verifyElementClickable(findTestObject('img_img-responsive_3'))

WebUI.closeBrowser()

//update JIRA
RequestObject getJIRAUpdateObject = (RequestObject)findTestObject('Web Service 
Calls/Update JIRA')

String vsRequestBody = '{"projectKey": "FVS",  "testCaseKey": "FVS-T1",  
"status": "Pass", "environment": "DEV"}';

body = getJIRAUpdateObject.setHttpBody(vsRequestBody)

WS.sendRequest(getJIRAUpdateObject)

У меня также есть следующий дополнительный импорт

import com.kms.katalon.core.testobject.ResponseObject
import com.kms.katalon.core.testobject.RequestObject

Теперь в редакторе сценариев мне говорят, что setHttpBody теперь не рекомендуется в Katalon версии 5.4+ (я использую 5.4.1), и я должен использовать вместо него setBodyContent (HttpBodyContent) , но когда я смотрю на В документации API для этого я не могу определить синтаксис того, как я должен использовать это вместо этого.

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

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 05 декабря 2018

Как ответили на форуме Katalon:

В вашем случае содержимое тела - это текстовое тело, тогда подходящая реализация должна быть:

import com.kms.katalon.core.testobject.impl.HttpTextBodyContent //for text in body
import com.kms.katalon.core.testobject.impl.HttpFileBodyContent //for file in body
import com.kms.katalon.core.testobject.impl.HttpFormDataBodyContent //for form data body
import com.kms.katalon.core.testobject.impl.HttpUrlEncodedBodyContent //for URL encoded text body

setBodyContent(new HttpTextBodyContent(your_text))

(Документы API для реализации HttpBodyContent.)

...