Здравствуйте!!! Есть проблема: например на странице сайта есть combobox и кнопка скачивания файла. Я пишу тест, который автоматически выбирает значение из combobox (значений много) и нажимает Скачать файл. Я использую protractor+jasmine+selenium server.
Как мне написать в коде, чтобы по окончании тестов, браузер не закрывался, а дождался скачивания всех файлов и потом закрылся? Может кто знает, спасибо!)
Добрый день!) Подскажите, можно ли как то (и если да, то как) в отдельный файлик писать результат каждого запроса? Просто на удаленной машине когда запускаю нагрузку на тысяч 10 запросов есть ошибки, и мне нужно знать на какие запросы и какая именно ошибка падает. Спасибо!)
junior qa automation Есть почти готовый фреймворк, от меня требуется написать модули для шапки сайта(которая на всех страницах ) и категории со списком, который иногда меняется. Хочу посмотреть пример как это пишется правильно не с голым webdriver.
Я столкнулся со следующими проблемами/неудобствами в аллюре на C#:
Невозможность добавления шагов/аттачей в [SetUp] и [TearDown] методах.
Отсутствие нормальной возможности указания собственных:
Suite (самое неприятное)
SubSuite
Owner
Epic Suite
Parent Suite
При выполнении действий в других потоках в рамках одного теста - allure падает с исключением.
Т.е. если вы сделаете нечто подобное
Task.Run( () => someMethod());
и внутри данного метода будет вызвано логирование аллюр - выбросится исключение NullReferenceException.
Отсутствие проигнорированных тест-кейсов/тестов в отчётах. Это кейсы, у которых прописано TestCaseData.Ignore(string), а не в самом тесте Assert.Ignore (!)
Для меня это оказалось критично, т.к. если мы не смогли найти подходящие тестовые данные из БД для кейса, он должен об этом кричать в отчете, а не отсутствовать там.
Отсутствие нормального AddAttachment метода, который форматировал бы string в читабельный вид с отступами (json/xml).
Было что-то ещё, но оно не столь критичное, сейчас я уже не вспомню.
Переработанный мною C# allure имеет функциональность только для классического NUnit.
Если вы используете SpecFlow - не устанавливайте этот пакет, в нём нет ничего относящегося к SpecFlow, у вас всё сломается!
В будущем я добавлю нововведения для SpecFlow и сам SpecFlow, если это вообще кому-то будет нужно, кроме меня.
.NET 4.5.xи .NET 4.5 на данный момент не поддерживаются.
Некоторые методы я видоизменил, поэтому возможно придётся немного изменить их старую сигнатуру переходя с классического аллюра. Но это не точно.
Кратко, как использовать данный allure и его некоторые новые фишки:
ГЛАВНОЕ: Для включения логирования - необходимо унаследовать класс Allure.Commons.AllureReport базовым классом ваших тестов. Не нужно у каждого класса/метода писать какие-либо allure атрибуты:
public abstract class ABaseTestConfig : AllureReport
Либо непосредственно каждый класс с тестами, если базового нет.
Для использования своего названия Suite, нужно добавить атрибут [AllureSuiteAttribute] у класса:
[AllureSuite(LoginPassNotExists)]
public partial class MyTests: ABaseApiTestConfig
Пример:
Внутри класса у методов можно использовать атрибут [AllureSubSuiteAttribute], для разделения на более мелкие Suite’s внутри одной большой [AllureSuiteAttribute]
Для указания Epic Story для всего класса следует использовать атрибут [AllureEpicAttribute]:
[AllureEpic("Epic story")]
public partial class MyTests: ABaseApiTestConfig
Пример:
Соответственно, если в таком классе будут методы с атрибутами [AllureStoryAttribute], все они будут дочерними в следующем порядке:
Epic -> Feature > Story.
Если у метода указаны атрибуты [AllureIssueAttribute], то в отчете в Suite класса добавится ещё один SubSuite с названием “With Defects”, где будет список тестов/кейсов класса, в которых этот атрибут присутствует.
Сделано для быстрого поиска тестов с дефектами в указанных классах.
Аналогично дефектам из 5 пункта, в Suite класса будут добавлены все проигнорированные тесты/кейсы этого класса (для этого ничего указывать не надо).
Сам игнорированный тест имеет в отчете указанную причину, по которой это произошло.
Добавлена перегрузка метода AddAttachment()
Выглядит так:
Возможность использования потоков внутри одного теста для логирования в аллюр.
Например:
Task.Run( () => someMethod());
Данный метод будет иметь начальным шагом не текущий шаг главного потока, а рутовый шаг отчета.
Если вы в этом методе будете создавать steps с substeps - они будут создаваться корректно, внутри steps своего потока.
Итд…
Если возникнут проблемы/вопросы, пишите, буду рад помочь.
Из известных проблем сейчас:
В отчет попадают все проигнорированные тест-кейсы из тестового класса, даже если вы запускали только один тест в нём.