2016-08-16 8 views
0

При использовании WireMock, чтобы высмеять конечную точку, которая, как ожидается, вернет JSON, я столкнулся с проблемой, когда он не вернет ожидаемый JSON. Запрос WireMock для его заглушек покажет правильный JSON в ожидаемой конечной точке.WireMock неожиданно возвращается Null

При запуске нескольких данных по моей теории я обычно получаю 7 успешно прошедших тестов до того, как эта проблема возникнет, и тест завершился неудачно. Однако добавление сна около 5 секунд в верхней части теории позволяет пройти все тесты. Обертка содержимого теста в цикле приведет к тому, что он будет запускать один datapoint несколько раз, что в итоге не удастся. Добавление во сне позволит ему работать дальше, но в конечном итоге оно подает нуль.

Это известная проблема? Есть ли подходящее решение?

+0

Как мы можем помочь, если вы не показываете код .. – Javant

+0

@Javant Проблема, кажется, проявляется только в полном проекте. Каждое небольшое доказательство тестового теста я пишу, что использует тот же самый трубопровод. Я должен был бы предоставить весь проект, который я не могу сделать. – Tott

+0

Вы добавляете заглушку динамически (есть ли возможность утечки памяти)? Можете ли вы определить неудачные запросы? Посмотрите, может ли ручное обращение с ними воспроизвести проблему. Если нет, попробуйте имитировать сценарий с высокой нагрузкой с тем же запросом. –

ответ

0

Оказывается, это был короткий цикл Гистрикса. В каждом тестовом случае выполнялось одно из трех конечных точек, а остальные два отказались. После седьмого теста было 21 звонок и 2/3rds из них провалились. Короткое замыкание сокращается после 20 вызовов, когда половина из них выходит из строя.

hystrix.command.default.circuitBreaker.requestVolumeThreshold = 100

Это остановит его от пропуска прямо на запасной вариант.