Комментарии 11
Что больше понравилось Go или Java?
Возможно кому-то будет полезно: недавно набросал либу для интеграции godog (BDD framework на go) с allure 2 https://github.com/OpenTagOS/allure2-godog
Allure формируется без истории? Вы где-то храните историю прохождения тестов?
Все хранится на allure-сервере
Каждый прогон запускается под ALLURE_LAUNCH_ID. Все запуски лаунчей хранятся на сервере, и их можно увидеть во вкладке launches.
Если зайти в какой-то launch в конкретный тест, то можно увидеть статус прохождений в предыдущие прогоны, справа в HISTORY.
И если нажать на History, то он покажет все прогоны с этим тестом и причины падения
Хорошая статья - спасибо. Если вы занимаетесь только бэком - то в принципе такой вариант хорошо подходит. Другое дело что оно на раннем развитии сейчас. Мой выбор - это простота написания тестов на Python с request + понятные структуры тестов на Java с Rest Assured + огромное комьюнити для решения проблем и вопросов без велосипедов. Один вопрос - если у вас появится UI - чем вы будете его тестировать? Добавлять новый язык в пирамиду автотестов?
П.С. Я бы не стал рекомендовать эту статью тем, кто не знает с чего начать... Начинать надо всегда с простого, но не с го)
Спасибо.
Вы правы. Тут зависит все от постановки задачи. Если стоит вопрос: какой бы язык и тулзы нам выбрать, чтоб написать тесты? То конечно лучше выбрать для этого распространенные практики с уже сложившимся комьюнити и поддержкой, и не придумывать свое. Но в моем случае так вопрос не стоял, поэтому пришлось адаптироваться.
Касательно UI: сейчас у нас в команде только backend и нет фронтенда. Потому что фронтенд у нас пишут и тестят другие команды, и там свои тулзы и языки. Если б в качестве исключения надо было добавить какой-то совсем маленький функционал, то можно продолжить на Go, т.к. уже есть selenium либы и т. д. Если говорить о какой-то глобальной задаче как большой скоуп ui тестов, то нужно смотреть по потребностям уже и выбирать наиболее оптимальный вариант( с точки зрения ресурсов, знаний, поддержки и т.д). Не вижу глобальной проблемы добавления нового языка. Вопрос только насколько это нужно.
Ну и статья для тех, кто не знает с чего начать именно в Go, а не вообще в тестированиии =)
У нас в компании есть UI-автоматизация на мобиле. На iOS автотесты пишем на Swift +XCUItest и в качестве репортера также используем Allure. На Android Kotlin + kaspresso + Allure.
А откуда инфа про поддержку интеграции allure с testify? может быть есть примеры как там наладить чтобы ошибки в отчет пробрасывались?
Если говорить про библиотеку allure-go. То можно создать свой кастомный MyTestingT
на основе интерфейса TestingT
( в testify в пакете assert assertions.go)
и имплементировать метод Errorf
, добавив туда методallure.Fail
(который как раз выводит ошибку в отчет)
type myTestingT struct {}
func (m *myTestingT) Errorf(format string, args ...interface{}) {
allure.Fail(errors.New(fmt.Sprintf(format+"\n", args[0])))
fmt.Printf(format+"\n", args...)
}
а в тесте(взяла из примера) проинициализировать myTestingT
и передавать в assert.Equal свой кастомный myT
func (suite *ExampleTestSuite) TestExample() {
myT := &myTestingT{}
allure.Test(suite.T(), allure.Action(func() {
allure.Step(allure.Description("Step 1"), allure.Action(func() {
assert.Equal(myT, 4, 5)
}))
}))
}
Возможно есть изящнее способ. Только надо еще над форматом вывода ошибки поработать. Получается так:
Автоматизация тестов на Go + Allure