Запуск теста SoapUI из Java

#java #rest #soapui

#java #rest #soapui

Вопрос:

Я пытаюсь запустить тест SoapUI с Java. Я подготовил проект в ReadyApi, и в нем используется служба Rest и выполняются два шага. На первом шаге (groovy script) я настраиваю свойства тестового примера (загружаю значения из JSON), а вторым шагом является запрос Rest. Если я отправляю запрос из ReadyApi, все идет хорошо, и я получаю надлежащий ответ.

Но если бы я попытался выполнить этот тестовый пример с Java, я получаю следующие ответы:

08:23:03,028 ОТЛАДКА [HttpClientSupport$SoapUIHttpClient] Попытка 1 выполнить запрос 08:23:03,029 DEBUG [SoapUIMultiThreadedHttpConnectionManager$SoapUIDefaultClientConnection] Отправка запроса: POST / Process /op /execute HTTP /1.1 08:23:04,391 DEBUG [SoapUIMultiThreadedHttpConnectionManager $SoapUIDefaultClientConnection] Получение ответа: HTTP / 1.1 401 Несанкционированный 08:23:04,396 ОТЛАДКА [HttpClientSupport $SoapUIHttpClient] Соединение может поддерживаться в рабочем состоянии неопределенно долго 08:23:04,396 ОТЛАДКА [HttpClientSupport$SoapUIHttpClient] Целевая запрошенная аутентификация 08:23:04,398 ОТЛАДКА [HttpClientSupport $ SoapUIHttpClient] Обработан запрос авторизации 08:23:04,399 DEBUG [HttpClientSupport$SoapUIHttpClient] Область аутентификации: BASIC @EndpointAddress:443 08:23:04,399 INFO [HttpAuthenticationRequestFilter$UPDCredentialsProvider] Конечный адрес: 443 требует аутентификации с областью ‘null’ 08:23:04,400 DEBUG [HttpClientSupport$SoapUIHttpClient] Найдены учетные данные 08:23:04,403 DEBUG [HttpClientSupport$SoapUIHttpClient] Попытка 2 выполнить запрос 08:23:04,403 ОТЛАДКА [SoapUIMultiThreadedHttpConnectionManager$SoapUIDefaultClientConnection] Отправка запроса: POST / Process /op /execute HTTP /1.1 08:23:09,061 ОТЛАДКА [SoapUIMultiThreadedHttpConnectionManager $SoapUIDefaultClientConnection] Получение ответа: HTTP / 1.1 400 Неверный запрос 08:23:09,062 ОТЛАДКА [ HttpClientSupport$SoapUIHttpClient] Соединение может поддерживаться в рабочем состоянии неопределенно долго 08:23:41,067 DEBUG [SoapUIMultiThreadedHttpConnectionManager$SoapUIDefaultClientConnection] Соединение закрыто

Мой Java-код:

 List<TestSuite> testSuiteList = new ArrayList<TestSuite>();
    List<TestCase> testCaseList = new ArrayList<TestCase>();

    SoapUI.setSoapUICore(new StandaloneSoapUICore(true));

    TestRunner testRunner = null;
    try {
        WsdlProject project = new WsdlProject("C:/Users/User/soapui - projects/rest-soapui-project.xml");
        testSuiteList = project.getTestSuiteList();
        Map<String,TestProperty> propertyMap;

        for (int i = 0; i < testSuiteList.size(); i  ) {
            testSuiteName = testSuiteList.get(i).getName();

            System.out.println(testSuiteName);
            testCaseList = testSuiteList.get(i).getTestCaseList();
        }
        for (int i = 0; i < testCaseList.size(); i  ) {
           testCaseName = testCaseList.get(i).getName();
            propertyMap = testCaseList.get(i).getProperties();
            for (Map.Entry<String, TestProperty> entry :
                    propertyMap.entrySet()) {
                String key = entry.getKey();
                TestProperty value = entry.getValue();
                System.out.println(key);
                System.out.println(entry.getValue().getValue());

            }
        }
        testRunner = project.getTestSuiteByName(testSuiteName).getTestCaseByName(testCaseName).run( new PropertiesMap(),false);

    } catch (XmlException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (SoapUIException e) {
        e.printStackTrace();
    }
  

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

1. Вы смотрели документацию? soapui.org/test-automation/junit/junit-integration.html . Кроме того, у вас есть какие-либо настроенные настройки / предпочтения? Если это так, возможно, вам также потребуется их пройти. Кстати, вам удалось успешно выполнить проект с помощью утилиты SOAPUI_HOME/bin/testrunner ? это просто для того, чтобы изолировать проблему.

2. Вы получаете 401 Unauthorized ошибку из журнала. Поэтому, пожалуйста, проверьте запрос, который вы отправляете. Кстати, если проект собран из Pro и запущен с бесплатной версией, он может не сработать.

3. Привет, извините за поздний ответ, но у меня не было времени. Я могу отправить этот запрос rest из SoapUI бесплатно. На этапе тестирования настроена базовая аутентификация и определен заголовок. Как я могу добавить базовую аутентификацию в TestRunner?

4. Как вы добавляете это вручную, чтобы иметь возможность успешно отправить запрос? И как только вы установите тестовые примеры в проекте, вы сможете запустить его с помощью java. Не так ли?

5. Я могу отправить запрос вручную из Soap UI free и ReadyApi с положительным ответом, но я не могу отправить его из Java-кода, и я получаю несанкционированный доступ. Итак, я думаю, что мне нужно добавить учетные данные в run (new PropertiesMap(), false);