Анализ показателей продолжительности потока

#c# #testing #specflow

Вопрос:

У меня есть несколько тестов SpecFlow, которые обеспечивают такой тестовый вывод:

 Given my location is set to secret
-> done: Location.GivenMyLocationIsSetTo("secret") (0.0s)
And the date today is 03 Jun 2017 15:00
-> done: Date.GiveThatTheEffectiveDateIs(2017-06-03 3:00:0...) (0.0s)
And I have selected a client with the following properties
  --- table step argument ---
  | property                  | value      |
  | SomeAttr                  | someval    |
  | SomeAttr2                 | someval2   |
-> done: Client.GivenIHaveSelectedAClientWithTheFollowingProperties(<table>) (0.0s)
And I select a currency of CAD
-> done: Currency.WhenISetCurrency("CAD") (0.0s)
Then I see the following messages
  --- table step argument ---
  | classification | message       |
  | Class1         | Hello world   |
-> done: Message.ThenISeeTheFollowingMessages(<table>) (2.9s)
 

Я заметил, что для всех моих тестов последний шаг — это тот, который занимает все время (т. Е. 2,9 секунды выше — см. нижнюю строку-все предыдущие шаги равны нулю).

У меня есть много тысяч тестовых случаев, и их выполнение занимает много часов, что стало проблемой.

  • Это нормально или этого следует ожидать?
  • Включает ли эта метрика продолжительности разрушение самого тестового жгута (или это чисто тестовый тест)?
  • Есть ли какие-либо советы о том, как я мог бы проанализировать эту продолжительность и разбить ее дальше?

Примечание:

  • Я не использую Селен
  • Весь тест занимает 2,9 с — 100% из которых, по-видимому, приходится на этот последний шаг

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

1. Вы используете Selenium для автоматизации браузера? Можете ли вы добавить код для определения шага для последнего шага?

2. Для этого конкретного теста, каково было общее время, затраченное на тест? Это должно помочь вам ответить, включена ли отмена теста в последний шаг или нет.

Ответ №1:

Самое близкое, к чему я мог подойти для получения показателей в рамках этого шага, — это пошаговое выполнение кода в режиме отладки.

Я обнаружил, что могу поместить точки останова в .feature файл, и Visual Studio сломается там. Также смог поместить точки останова в свой код, используя обычные методы. Подсказки Visual Studio помогают указать медленные части кода.