Pr-Mex / vanessa-automation

BDD в 1С
https://pr-mex.github.io/vanessa-automation/dev/
BSD 3-Clause "New" or "Revised" License
484 stars 199 forks source link

Производительность выполнения шагов #2017

Closed YoungPadovan closed 1 year ago

YoungPadovan commented 1 year ago

Версия 1С : 8.3.21.1676(z) Режим совместимости : 8.3.17 ОС : Windows Server 2016

Просьба: Прошу рассмотреть возможность и целесообразность внесения описанных ниже изменений в обработку. Было : Обработка на версии 1.2.040.9, но кодовая база с описанными ниже пожеланиями совпадает с текущей в репозитории. Файл фичи с дымовым тестирование базы ERP2, в котором было открытие формы объекта и формы списка всех документов в базе.

Что предлагается сделать:

Изменение обработки итерация первая :

В модуле формы "УправляемаяФорма" процедуру переделали с &НаСервере на &НаСерверБезКонтекста и чуть-чуть модифицировали:

image

Получили колоссальный прирост производительности, за счет того что форма целиком не "гоняется" клиент->сервер. Чем больше файл *.feature тем сильнее ощущается прирост производительности.

Изменение обработки итерация вторая :

Изучив процедуру СоздатьFeatureReader - не понравился механизм передачи ДвоичныхДанных обработки с клиента на сервер. сохранении её, выполнении и последующем удалении при каждом шаге. Точечно, только в качестве проверки сделали 4 изменения:

  1. Завели переменную image

  2. Сделали на еще одну клиентскую процедуру, чтобы не поломать остальной механизм image

  3. Процедуру переделали на клиентскую image

  4. Ванессу запускали в толстом клиенте. Именно менеджер.

Как итог, после второй итерации, получили дополнительное 50% ускорение выполнение тестов. Суммарно после двух итераций получили 10 кратное ускорение.

Понимаю, что тест не совсем релевантный, реальные цифры могут сильно отличаться. Повторюсь, тесты делались на больших файлах фич ( ~ 7 000 строк )

Pr-Mex commented 1 year ago

@YoungPadovan Можете сделать реквест на ваши изменения? Тут описано как это делается: https://infostart.ru/1c/articles/1092009/

YoungPadovan commented 1 year ago

Ок

YoungPadovan commented 1 year ago

Основательно покопавшись в обработке выяснил, что предложенные мной изменения повлекут ускорение только в очень небольшом количестве операций. А именно в строках начала сценария : Сценарий: Имя сценария

т.е. НЕ надо писать тесты вида :

Сценарий: Открытие формы Справочника1
Дано Я открываю основную форму справочника "Справочник1"
...
Сценарий: Открытие формы Справочника2
Дано Я открываю основную форму справочника "Справочник2"
...

Объединяя действия внутри одного сценария - проблем с производительностью нет.

Если количество сценариев не будет гигантским, то производительность не изменится, а вот красота и простота кода будет утрачена (придется копировать и частично видоизменяя процедуры под 2 версии standart и single). Считаю нецелесообразным это делать.

Pr-Mex commented 1 year ago

@YoungPadovan Закрываем issue?