Как опустить параметры в вызове REST - PullRequest
0 голосов
/ 14 февраля 2019

Для моего проекта автоматизации у меня будет много тестовых наборов и тестовых наборов с множеством комбинаций.Для этого я использую ReadyAPI для автоматизации.

Для каждого тестового набора я ввел необходимые параметры, которые можно использовать в каждом тестовом примере.В ReadyAPI вы делаете это на вкладке «Проекты» созданного вами веб-сервиса.

Теперь не все параметры будут заполнены для конкретного тестового случая, тогда как запрос REST в любом случае отправит все параметры в виде строки emtpy.

Для этого проекта это вредно, поскольку пустая строка может дать ответ, и это не то, что я ищу.

Например:

Параметры Testsuite:имя, cbe_number, страна, муниципалитет, соседи, улица, номер дома, po_box

Тестовый случай: поиск компании по имени

Для этого тестового случая будет заполнен только параметр 'имя', но когда я отправлюВ запросе все остальные параметры также заполняются в URL.Мой вопрос был: «Как я могу, в каждом тестовом примере, опустить другие параметры, пожалуйста?»

Ответ заключался в том, что на данный момент это невозможно, но должна быть работа вокруг.Хотя это не работает для меня.Я выполнил шаги, которые дал мне модератор Kudoed, с пропуском 1 шага, но даже после исправления этого шага GroovyScript по-прежнему выдает сообщение об ошибке после отладки.«wslite.rest.RESTClientException: URL и метод являются обязательными. Ошибка в строке: 26»

Это GroovyScript:

import wslite.rest.*

def getMap = { key ->
    def props = context.testCase.propertyNames.findAll { it.startsWith(key)}
    def result = [:]
    props.each { result [it.split('_').last()] = context.testCase.getPropertyValue(it) }
    result
}


def headerz = getMap('HEADER')
def queriez = getMap('QUERY')
log.info headerz
log.info queriez
def serviceHost = context.expand('${#Project#SERVICE_HOST_PORT}')
def urlPath = '/agents/organizations'

def client = new RESTClient(serviceHost)
def response = client.get(path: urlPath,
                     accept: ContentType.JSON,
                     query : queriez,
                     headers: headerz
                     )
assert response.statusCode == 200
log.info groovy.json.JsonOutput.prettyPrint(response.text)

Я установил jar-пакет wslite в SmartBear>bin> ext папка, я создал новый веб-сервис с конечной точкой, я добавил параметры HEADER_ [значение] и QUERY_ [значение] на уровне тестового набора с их значениями, но все же у меня есть сообщения об ошибках ..... Спасибозаранее для изучения этого.

1 Ответ

0 голосов
/ 14 февраля 2019

код работает нормально:

@Grab(group='com.github.groovy-wslite', module='groovy-wslite', version='1.1.3')
import wslite.rest.*

def client = new RESTClient('https://httpbin.org:443')
def response = client.get([
        path: '/get',
        accept: ContentType.JSON,
        query : [aaa:1,bbb:2],
        headers: [ccc:'333',ddd:'444']
    ])
assert response.statusCode == 200
println groovy.json.JsonOutput.prettyPrint(response.text)

однако для следующего кода

def client = new RESTClient('')

вы получите исключение wslite.rest.RESTClientException: URL and Method are required

, значит, это означает, чтоcontext.expand('${#Project#SERVICE_HOST_PORT}') дает вам пустое или недействительное значение

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