SoapUI - установить токен JWT в качестве глобального параметра проекта - PullRequest
0 голосов
/ 18 апреля 2019

Я новичок в SaopUI. Я создал проект с ресурсами. Мне нужно установить некоторые переменные и использовать их для запросов. Например, у меня есть мой токен JWT, и токен JWT будет часто меняться (тестирование для разных пользователей и разрешений = разные токены JWT) Итак, существует ли способ, как я могу глобально установить параметр для проекта и использовать его в качестве параметра HEADER для запросов в качестве «ссылки» (для этого параметра / значения)?

Спасибо! Jan

1 Ответ

0 голосов
/ 23 апреля 2019

Вы, вероятно, заинтересованы в Расширения собственности

SoapUI предоставляет общий синтаксис для динамического добавления («расширения») значений свойств во время обработки. Синтаксис следующий:

$ {[Объем] PropertyName [# выражение XPath]}

где область действия может принимать одно из следующих литеральных значений:

# Project # - ссылается на свойство Project (Ссылочные свойства для конкретного проекта SoapUI)

# TestSuite # - ссылается на свойство TestSuite в содержащем TestSuite

# TestCase # - ссылается на свойство TestCase в содержащем TestCase

# MockService # - ссылается на свойство MockService в содержащем MockService

# Global # - ссылается на глобальное свойство. Находится в File> Preferences> вкладка Global Properties. Справочные свойства по всем проектам

# System # - ссылается на системное свойство. Найдено в Справке> Свойства системы.

# Env # - ссылается на переменную окружения

[TestStep name] # - ссылается на свойство TestStep

Многие из областей, конечно, будут работать, только если они доступны, т. Е. Вы не можете использовать область # MockService # в сценарии TestCase, так как для доступа к ней нет MockService.

Если область не указана, свойство разрешается следующим образом:

  • Проверьте текущий контекст (например, TestRunContext) для свойства с совпадающим именем

  • Проверьте соответствие глобального свойства

  • Проверка соответствия системного свойства

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

import groovy.json.JsonSlurper

project = testRunner.getTestCase().testSuite.getProject();

testStep = testRunner.testCase.testSteps["YourApiRequestStep"]

def Response = testStep.getProperty("response").value;

def someFieldYouWantToSave = ""


if (Response == null) {
    log.error('No Response found.');
}
else {
    def jSlurper = new JsonSlurper();
    def json = jSlurper.parseText(Response);
    if (json.get("theFieldFromTheResponse") == null){
        log.error "TheFieldFromTheResponse not found in response. Please execute the teststep and try again"
    } else {
        someFieldYouWantToSave = json.get("theFieldFromTheResponse").toString()
        testRunner.testCase.setPropertyValue("someFieldYouWantToSave", someFieldYouWantToSave)
    }
}

Затем вы можете использовать свойство в запросе, например так: $ {# Проект # theFieldFromTheResponse}

...