Как установить вкладку JSON в качестве представления по умолчанию для ответа в SOAP UI с открытым исходным кодом?

#soapui

#soapui

Вопрос:

Я использую SOAP UI с открытым исходным кодом для тестирования REST API. Я хочу установить вкладку JSON в качестве представления по умолчанию для ответа.

Ответ, который я получаю, уже content-type установлен в 'application/json' значение. Он показывает вкладку XML, и мне нужно нажать на JSON, чтобы просмотреть ответ. Есть ли какой-либо способ, которым я могу этого добиться?

Я использую SOAP UI с открытым исходным кодом версии 5.4.0.

Комментарии:

1. Это невозможно. Вы можете отправить запрос функции здесь: community.smartbear.com/t5/SoapUI-Feature-Requests/idb-p / …

Ответ №1:

Вы можете сделать это с помощью скрипта демонтажа методом перебора. У меня был скрипт демонтажа на уровне проекта, который открывает все этапы тестирования, переключается на «необработанный» вид и делает снимок экрана. Только что протестировал это на примере API flikr, вставив его в скрипт демонтажа TestCase.

Он откроет все этапы тестирования после запуска тестового примера и переключит представление. Функция ‘SelectView’ принимает либо целое число (0-4?), либо строку «Source», «JSON-ответ», «HTML-ответ» или «Raw», Проверял это в SoapUI 5.5 и 5.2.1

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

 import com.eviware.soapui.support.editor.Editor
import java.awt.Component

def getContainers(Component c) 
{
    Component[] subC = c.getComponents()
    for (Component d : subC) 
    {
        String editorClassName = d.getClass().toString()
        if (editorClassName.contains("ResponseMessageEditor")) 
        {
            ((Editor)d).selectView("JSON Response")
        }
    getContainers(d)
    }

}

def uiSupport = com.eviware.soapui.support.UISupport

for (tStep in testCase.testStepList) {
    def panel = uiSupport.showDesktopPanel(tStep)
    com.eviware.soapui.SoapUI.desktop.maximize(panel)
    getContainers(panel)
}