Comments 16
На go есть инструмент [hoverfly](https://hoverfly.readthedocs.io/), который регулярно советуют использовать для тестирования API в микросервисных архитектурах. А как он в сравнении с gonkey, они в принципе аналог друг друга или как?
Похоже, что hoverfly призван помочь в тестировании тем, что заменяет собой внешние зависимости по отношению к тестируемому сервису, имитирует их ответы.

Gonkey, в отличие от goverfly, ставит перед собой цель тестировать сам сервис, то есть имитировать клиентскую нагрузку на него. А чтобы заменять ответы внешних сервисов, в gonkey есть моки.
Что-то у вас странное написано в самом же начале.
// структура для хранения состояния светофора
type trafficLights struct {
    currentLight string       `json:"currentLight"`
    mutex        sync.RWMutex `json:"-"`
}

// экземпляр светофора
var lights = trafficLights{
    currentLight: lightRed,
}


и потом внезапно:

        resp, err := json.Marshal(lights)
        if err != nil {
            log.Fatal(err)
        }

        w.Write(resp)


Я даже запустил программу у себя и естественно метод get возвращает пустой объект, а VSCode справедливо подчёркивает ваши поля структур, которые не экспортируются.
Короче ваш пример не может работать в принципе, но он выложен на Github.
Дальше не читал.
А, так он специально с ошибкой. Там же ниже он тестируется и косяки исправляются.

(но, признаюсь, я действительно сделал эту ошибку, когда писал этот демо-код)
Ну ОК, если вы такие синтаксические по факту ошибки тестируете внешними средствами — дело ваше. На мой взгляд это просто ошибка и проверять внешними средствами тут нечего. Тут рулят внутренние автотесты. IDE ошибку подсвечивает, unit-тест ошибку подтверждает. Что ещё надо?
Странный пример.

Простите, конечно, но вы сравниваете несравнимые вещи: Jmeter не на Go, и там нету Yaml!

Есть ли возможность строить цепочки тестов/сценарии когда результаты вызова одного api метода становятся входными данными для другого?
Only those users with full accounts are able to leave comments. Log in, please.