Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Protractor. Как дождаться окончания скачивания фйлов браузером?



Software-Testing.Ru - портал тестировщиков  

Новые темы форума тестировщиков


Protractor. Как дождаться окончания скачивания фйлов браузером?
2018-07-05 09:37

Здравствуйте!!! Есть проблема: например на странице сайта есть combobox и кнопка скачивания файла. Я пишу тест, который автоматически выбирает значение из combobox (значений много) и нажимает Скачать файл. Я использую protractor+jasmine+selenium server.

Как мне написать в коде, чтобы по окончании тестов, браузер не закрывался, а дождался скачивания всех файлов и потом закрылся? Может кто знает, спасибо!)



[Selenium, Chrome] Можно ли подключиться к уже открытой вкладке?
2018-07-05 11:45

И если можно, то как? Через get открывается новая копия хрома, и нужно авторизоваться на странице.



Логирование ошибок
2018-07-05 12:57

Добрый день!) Подскажите, можно ли как то (и если да, то как) в отдельный файлик писать результат каждого запроса? Просто на удаленной машине когда запускаю нагрузку на тысяч 10 запросов есть ошибки, и мне нужно знать на какие запросы и какая именно ошибка падает. Спасибо!)



Как писать модули для тестового фреймворка
2018-07-05 13:15

junior qa automation Есть почти готовый фреймворк, от меня требуется написать модули для шапки сайта(которая на всех страницах ) и категории со списком, который иногда меняется. Хочу посмотреть пример как это пишется правильно не с голым webdriver. 



Проверка валидационого уведомления
2018-07-05 15:26

У меня есть форма в которой есть валидация , при нажатии на "Отправить" появляется сообщение. 

"<input placeholder="* E-mail" name="email" type="text">"

<label id="email-error" class="form-input_error" for="email">Поле e-mail обязательное для заполнения</label>

 

Я хочу проверить что до нажатия на кнопку значения нет, а после нажатие есть значения.

ДО, я пробывал через assert но что то не получается, нет понятия как это реализовать

А ПОСЛЕ я могу написать "Assert.assertTrue("Поле e-mail обязательное для заполнения" == "Поле e-mail обязательное для заполнения");" 

 

Ну или как можно реализовать что бы это было правильно?Подскажите пожалуйста.

Прикрепленные изображения

  • Валидка.png
  • Валидка1.png


C# Allure classic NUnit with improvements
2018-07-06 07:47

Доброго времени суток, коллеги!

Я столкнулся со следующими проблемами/неудобствами в аллюре на C#:

  1. Невозможность добавления шагов/аттачей в [SetUp] и [TearDown] методах.
  2. Отсутствие нормальной возможности указания собственных:
  • Suite (самое неприятное)
  • SubSuite
  • Owner
  • Epic Suite
  • Parent Suite
  1. При выполнении действий в других потоках в рамках одного теста - allure падает с исключением.
    Т.е. если вы сделаете нечто подобное

    Task.Run( () => someMethod());

    и внутри данного метода будет вызвано логирование аллюр - выбросится исключение NullReferenceException.

  2.  

  3. Отсутствие проигнорированных тест-кейсов/тестов в отчётах. Это кейсы, у которых прописано TestCaseData.Ignore(string), а не в самом тесте Assert.Ignore (!)
    Для меня это оказалось критично, т.к. если мы не смогли найти подходящие тестовые данные из БД для кейса, он должен об этом кричать в отчете, а не отсутствовать там.

  4. Отсутствие нормального AddAttachment метода, который форматировал бы string в читабельный вид с отступами (json/xml).

Было что-то ещё, но оно не столь критичное, сейчас я уже не вспомню.

Я взял за основу проект https://github.com/unickq/allure-csharp-fork и добавил в него всю необходимую функциональность.

 

Переработанный мною C# allure имеет функциональность только для классического NUnit.
Если вы используете SpecFlow - не устанавливайте этот пакет, в нём нет ничего относящегося к SpecFlow, у вас всё сломается!

В будущем я добавлю нововведения для SpecFlow и сам SpecFlow, если это вообще кому-то будет нужно, кроме меня.

 

Представляю вашему вниманию nuget пакет с переработанным C# Allure под классический NUnit: https://www.nuget.org/packages/Noksa.NUnit.Allure/

.NET 4.5.x и .NET 4.5 на данный момент не поддерживаются.

Некоторые методы я видоизменил, поэтому возможно придётся немного изменить их старую сигнатуру переходя с классического аллюра. Но это не точно. slight_smile.png?v=5

Кратко, как использовать данный allure и его некоторые новые фишки:

  1. ГЛАВНОЕ: Для включения логирования - необходимо унаследовать класс Allure.Commons.AllureReport базовым классом ваших тестов. Не нужно у каждого класса/метода писать какие-либо allure атрибуты:
public abstract class ABaseTestConfig : AllureReport

Либо непосредственно каждый класс с тестами, если базового нет.

  1. Для использования своего названия Suite, нужно добавить атрибут [AllureSuiteAttribute] у класса:
[AllureSuite(LoginPassNotExists)]
public partial class MyTests: ABaseApiTestConfig

Пример:

 

suite.png

 

Внутри класса у методов можно использовать атрибут [AllureSubSuiteAttribute], для разделения на более мелкие Suite’s внутри одной большой [AllureSuiteAttribute]

subsuite.png
 
  1. Для указания Epic Story для всего класса следует использовать атрибут [AllureEpicAttribute]:
[AllureEpic("Epic story")]
public partial class MyTests: ABaseApiTestConfig

Пример:

epicstory.png

 

 

Соответственно, если в таком классе будут методы с атрибутами [AllureStoryAttribute], все они будут дочерними в следующем порядке:
Epic -> Feature > Story.

 

  1. Атрибут [AllureOwnerAttribute] - устанавливает Owner’a теста\тест-кейса.

  2. Если у метода указаны атрибуты [AllureIssueAttribute], то в отчете в Suite класса добавится ещё один SubSuite с названием “With Defects”, где будет список тестов/кейсов класса, в которых этот атрибут присутствует.
    Сделано для быстрого поиска тестов с дефектами в указанных классах.
    suitewithdefects.png

  3. Аналогично дефектам из 5 пункта, в Suite класса будут добавлены все проигнорированные тесты/кейсы этого класса (для этого ничего указывать не надо).

  4. Сам игнорированный тест имеет в отчете указанную причину, по которой это произошло.ignoredtest.png

  5. Добавлена перегрузка метода AddAttachment()
    Выглядит так:
public AllureLifecycle AddAttachment(string name, AttachFormat type, string content, string fileExtension = "")

Используется для добавления отформатированных аттачей (xml/json), чтобы они выглядели читабельно, а не в одну строку: 

 

attachs.png

 

  1. Соответственно, теперь можно использовать добавление шагов/атачей в [SetUp] и [TearDown]методах.
    Пример Setup:
[SetUp]
public virtual void Setup()
{
AllureLifecycle.Instance.AddAttachment($"Screenshot [{DateTime.Now:HH:mm:ss}]",
"image/png",
Driver.TakeScreenshot().AsByteArray);
...
}
    • Возможность использования потоков внутри одного теста для логирования в аллюр.
      Например: 
      Task.Run( () => someMethod());
      Данный метод будет иметь начальным шагом не текущий шаг главного потока, а рутовый шаг отчета.
      Если вы в этом методе будете создавать steps с substeps - они будут создаваться корректно, внутри steps своего потока.

Итд…
Если возникнут проблемы/вопросы, пишите, буду рад помочь.

 

Из известных проблем сейчас:

  1. В отчет попадают все проигнорированные тест-кейсы из тестового класса, даже если вы запускали только один тест в нём.

Прикрепленные изображения

  • subsuite.png


© 2010 | Software-Testing.Ru


В избранное