Как использовать «Приоритеты» в Wiremock - PullRequest
0 голосов
/ 28 апреля 2018

Я хочу понять, как работают приоритеты. Более конкретно, каков ожидаемый результат установки приоритетов для заглушки. На это имеется ограниченная документация, и те, которые доступны, на самом деле не объясняют, как будет выглядеть вывод, поэтому я не могу проверить, правильно ли я его реализовал.

Это мой текущий код:

    stubFor(post(urlMatching("/user/test\\?(and)\\=(que).*")).atPriority(1)
    .willReturn(aResponse()
              .withStatus(200)
                      .withHeader("Content-Type", "text/plain")
                      .withBody("This stub is testing for Title ")
              )
        );   

   System.out.println("About to execute the second stub");
            stubFor(post(urlMatching("/user/test\\?(and)\\=(que).*")).atPriority(2)
    .willReturn(aResponse()
              .withStatus(200)
                      .withHeader("Content-Type", "text/plain")
                      .withBody("This stub is testing Author ID ")
              )
        );

            System.out.println("Second stub executed");

Я отправляю следующий запрос от SOAPUI:

/user/test?and=query 

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

В настоящее время я получаю только один ответ от заглушки с приоритетом 1. Я не получаю ответ от заглушки с приоритетом 2 /

Может кто-нибудь, пожалуйста, помогите мне в этом?

1 Ответ

0 голосов
/ 14 августа 2018

Чего именно вы хотите достичь? Обычно у вас есть конфигурации Wiremock, которые имеют разные параметры запроса или перекрываются. В вашем случае они точно такие же. В каком случае должен быть первый, а в каком - второй?

Wiremock всегда будет возвращать только один ответ. Этот ответ обычно определяется оценкой параметров запроса, определенных вами в конфигурации Wiremock. Пожалуйста, обратитесь к этому описанию того, как работает Wiremock и приоритеты: Заглушка Wiremock и приоритеты

Если есть перекрывающиеся параметры, Wiremock выберет конфигурацию, которую вы добавили совсем недавно (в вашем случае - вторую). Или вы можете руководить Wiremock, устанавливая приоритеты. Приоритет, который ниже, будет использоваться в предпочтении.

Обычно у вас есть более общий случай (с меньшим количеством параметров запроса - в качестве догоняющего) и более конкретный случай. Первый получит более высокое первичное значение (например, 9), а второе - более низкое (например, 5). Таким образом, последний будет выбран в предпочтении, если параметры запроса совпадают, а в других случаях второй.

...