Как стать автором
Обновить

Комментарии 11

Что больше понравилось Go или Java?

Хороший вопрос) Java всегда останется в сердце моем) И для автоматизации тестов в нём гораздо больше инструментов. Но Go все больше набирает обороты, очень интересно разбираться и погружаться в новый язык. Думаю дальше будет интереснее)

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)
		}))
	}))
}

Возможно есть изящнее способ. Только надо еще над форматом вывода ошибки поработать. Получается так:

Похоже то что нужно, спасибо!

Зарегистрируйтесь на Хабре, чтобы оставить комментарий