Ты прав, там действительно баг, так как в `WithMarshalBody` не был выставлен jsonMarshaler, по умолчанию. Спасибо, что написал про это! Я выпустил фикс!
Для того, чтобы реализовывать что-то до/после теста можно было использовать:
type Middleware struct {
After []AfterExecute
AfterT []AfterExecuteT
Before []BeforeExecute
BeforeT []BeforeExecuteT
}
На счет падения тестов, сразу если один тест упал, дело спорное, но я согласен, что стоит реализовать такую возможность для табличных тестов.
Если создавать тест в формате builder, то там есть RequireHeaders, RequireBody и т.д
Спасибо за твой комментарий! Я приложу усилие, дабы исправить функциональности, которые тебе были не по душе
Конечно пробовали, в Озоне и не только CUTE активно используют.
Допустим, что в API ошибка, и на третьем этапе произошла ошибка. Дальнейшие тесты не падают. Приходится писать костыли.
Какой тип ассертов ты используешь? Попробуй использовать `RequireHeaders` или другой `Require*`
Внезапно оказывается, что данные не прокидываются в следующие тесты. Опять пишем костыли. Внезапно теперь тесты падают по причине "invalid memory address or nil pointer dereference". Приходится ещё больше костылей писать, сложность тестов увеличивается - профита никакого.
Это происходит внутри фреймворка или твоего кода? Возможно ты не так используешь замыкание, буду рад посмотреть и обсудить, если будет жаление.
Какой смысл от этого фреймворка, если он не упрощает, а только наоборот замедляет написание тестов? Документации нету, большую часть тестов приходится писать методом тыка. Но зато в посте как всё замечательно выглядит, с зелёными галочками и красивым кодом!
Привет, спасибо за вопрос. Наверное в идеальном мире в вакууме хотелось бы все покрыть метриками и считать профит от того или иного действия, но не всегда на практике это легко и прозрачно.
На моем примере: я — основной разработчик CUTE, пишу документацию и помогаю с вопросами. Безусловно, это определенный кост для компании, так как вместо этого я мог бы катить бизнес-фичи, заниматься RnD или просто искать носки.
Поэтому мой подход отчасти прыжок веры: условно говоря, мои 3 часа разработки CUTE потенциально сокращают работу тестировщика на 10 минут, но таких сокращений может быть сотни, так как тестов создается много. Мне хочется верить, что в этом случае мы всё же наточили пилу, чтобы потом ей быстрее пилить)
Если говорить про обучение, то оно будет всегда и везде независимо от стека, так как у всех компаний есть своя специфика и контекст. В нашей команде специфика — CUTE и Go.
Отдельно замечу, что CUTE изначально была небольшой утилитой для нашей команды, но сейчас она применяется и другими командами по их собственному желанию, а некоторые идут дальше и переходят с Python на Go, посмотрев на наш пример.
Началось с того, что я решил попробовать написать тест на голом Go, то есть без использования каких-либо библиотек, связанных с созданием e2e тестов. Потом я то же самое проделал с использованием и сравнил. Во втором случае время на разработку уменьшилось, но оно и понятно, так как много логики спрятано внутри библиотеки. (p.s. до принятия решения по разработке CUTE).
На счет замеров: такого не было, да и провести было бы трудно, так как сейчас мы максимально сделали всё, чтобы старт был простым. Мы написали полностью инструкцию, как освоить библиотеку и как писать тесты, да и примеров тестов создалось немало за прошедший год.
В соседние команды люди выходили без бэграунда в Go, достаточно быстро осваивались, но опять же это все очень субъективно и трудно оценить.
Вопросы дискуссионные, приходи к нам на митап обсудим это на круглом столе — так будет быстрее, эффективнее, а главное веселее! На митапе будет много коллег по цеху, поэтому можно будет обсудить вопросы с разработчиками, тестировщиками и лидами. Если не получится офлайн, то присоединяйся онлайн, пиши и мы на все ответим.
Привет.
Инструменты, которые ты указал, являются более широконаправлеными.
Здесь же получился инструмент исключительно для тестирования http-сервисов на более простом языке. Безусловно, использовать эти инструменты, то может получится такой же результат, но он будет сложнее. А если попробовать это обвязать Allure, то сложность еще увеличится.
В пункте «Как было раньше?» я указал ссылку на статью, чтобы можно было сравнить сложность использования.
А нам хотелось делать тесты проще — откуда и название Create Your Tests Easily.
Ты прав, там действительно баг, так как в `WithMarshalBody` не был выставлен jsonMarshaler, по умолчанию. Спасибо, что написал про это! Я выпустил фикс!
Для того, чтобы реализовывать что-то до/после теста можно было использовать:
На счет падения тестов, сразу если один тест упал, дело спорное, но я согласен, что стоит реализовать такую возможность для табличных тестов.
Если создавать тест в формате builder, то там есть
RequireHeaders,RequireBodyи т.дСпасибо за твой комментарий! Я приложу усилие, дабы исправить функциональности, которые тебе были не по душе
Привет.
Конечно пробовали, в Озоне и не только CUTE активно используют.
Какой тип ассертов ты используешь? Попробуй использовать `RequireHeaders` или другой `Require*`
Это происходит внутри фреймворка или твоего кода?
Возможно ты не так используешь замыкание, буду рад посмотреть и обсудить, если будет жаление.
На каждый тип теста написан пример, его можешь найти в репозитории https://github.com/ozontech/cute/tree/master/examples
Для каждого публичного метода написана Go документация https://pkg.go.dev/github.com/ozontech/cute#section-readme
Если вдруг какой-то части не хватает, я буду рад добавить ее в документацию!
На счет твоего тест кейса, мы реализуем примерно такие же кейсы без особых проблем.
Я всегда рад буду рассмотреть варианты улучшения работы или помочь с использованием, поэтому пиши!
Неожиданно и очень интересно.
Пока не все процессы идеальны, но мы думаем, как к этому стремиться и периодически что-то пересматриваем. Думали об этом тоже, спасибо за совет!
Привет, спасибо за вопрос.
Наверное в идеальном мире в вакууме хотелось бы все покрыть метриками и считать профит от того или иного действия, но не всегда на практике это легко и прозрачно.
На моем примере: я — основной разработчик CUTE, пишу документацию и помогаю с вопросами. Безусловно, это определенный кост для компании, так как вместо этого я мог бы катить бизнес-фичи, заниматься RnD или просто искать носки.
Поэтому мой подход отчасти прыжок веры: условно говоря, мои 3 часа разработки CUTE потенциально сокращают работу тестировщика на 10 минут, но таких сокращений может быть сотни, так как тестов создается много. Мне хочется верить, что в этом случае мы всё же наточили пилу, чтобы потом ей быстрее пилить)
Если говорить про обучение, то оно будет всегда и везде независимо от стека, так как у всех компаний есть своя специфика и контекст. В нашей команде специфика — CUTE и Go.
Отдельно замечу, что CUTE изначально была небольшой утилитой для нашей команды, но сейчас она применяется и другими командами по их собственному желанию, а некоторые идут дальше и переходят с Python на Go, посмотрев на наш пример.
Привет. Спасибо за комментарии.
Началось с того, что я решил попробовать написать тест на голом Go, то есть без использования каких-либо библиотек, связанных с созданием e2e тестов. Потом я то же самое проделал с использованием и сравнил. Во втором случае время на разработку уменьшилось, но оно и понятно, так как много логики спрятано внутри библиотеки. (p.s. до принятия решения по разработке CUTE).
На счет замеров: такого не было, да и провести было бы трудно, так как сейчас мы максимально сделали всё, чтобы старт был простым. Мы написали полностью инструкцию, как освоить библиотеку и как писать тесты, да и примеров тестов создалось немало за прошедший год.
В соседние команды люди выходили без бэграунда в Go, достаточно быстро осваивались, но опять же это все очень субъективно и трудно оценить.
Спасибо! :)
Привет!
1) Да, всё стандартно.
2) На данный момент реализация возможно неудобная, но мы работаем над этим!
3) Allure отчеты генерируются автоматически.
Будем рады видеть на митапе! :)
Вопросы дискуссионные, приходи к нам на митап обсудим это на круглом столе — так будет быстрее, эффективнее, а главное веселее!
На митапе будет много коллег по цеху, поэтому можно будет обсудить вопросы с разработчиками, тестировщиками и лидами.
Если не получится офлайн, то присоединяйся онлайн, пиши и мы на все ответим.
Привет. Да, можно сделать тест состоящий из нескольких запросов.
Пример:
Привет. Инструменты, которые ты указал, являются более широконаправлеными.
Здесь же получился инструмент исключительно для тестирования http-сервисов на более простом языке. Безусловно, использовать эти инструменты, то может получится такой же результат, но он будет сложнее. А если попробовать это обвязать Allure, то сложность еще увеличится.
В пункте «Как было раньше?» я указал ссылку на статью, чтобы можно было сравнить сложность использования. А нам хотелось делать тесты проще — откуда и название Create Your Tests Easily.