Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Производительность стандартных шагов #1779

Closed
akademik1986 opened this issue Sep 30, 2022 · 22 comments
Closed
Labels
question Further information is requested

Comments

@akademik1986
Copy link
Contributor

Версия Vanessa Automation 1.2.039.11
Версия платформы 8.3.20
Режим совместимости базы, где запускается Vanessa Automation 8.3.17
Операционная система windows

Просьба рассмотреть производительность по шагам:
И выражение внутреннего языка 'Выражение' Истинно
Если элемент "ИмяЭлементаФормы" не присутствует на форме Тогда

  1. По результатам аллюр шаг сильно деградирует, если условие в выражении ложно (стабильно всегда)
  2. А шаг элемент не присутствует на форме сам по себе очень долгий при выполнении на CI (скачет время, 12 секунд первые 2-4 раза,потом по 2-3 секунды, при условии что элемента нет на форме)

image

код фичи
image

Шаги стандартные, я думаю примеры есть и у вас в CI.

@Pr-Mex
Copy link
Owner

Pr-Mex commented Sep 30, 2022

@akademik1986
Приложите пример для воспроизведения, пожалуйста. Нужна база и сценарий.

@Pr-Mex Pr-Mex added the question Further information is requested label Sep 30, 2022
@akademik1986
Copy link
Contributor Author

К сожалению , при запуске вручную таких шагов на каркасной конфигурации, эффекта такого нет.
Однако же по отчету allure там много примеров видно, где условие ложно, там долго выполняется. Может там троекратный повтор выполнения, если ложно? в настройках стоит 3 раза выполнять, но это же не должно касаться такого шага, где выполняется выражение?

@Pr-Mex
Copy link
Owner

Pr-Mex commented Sep 30, 2022

@akademik1986 Надо смотреть код шага.

@Pr-Mex
Copy link
Owner

Pr-Mex commented Sep 30, 2022

Вообще да, скорее всего так себя ведёт количество попыток выполнения действия. Как обход вы можете прямо в сценарии установить другое значение количества попыток перед нужными шагами, а потом вернуть обратно.

@akademik1986
Copy link
Contributor Author

@Pr-Mex Посмотри на кусок кода теста, там очень много таких шагов, перед каждым из них и сразу после изменять настройку это лишний код и захламление.
Ведь даже шаг и я открываю окно тоже возможно требует 3 попыток, схалявить вначале и в конце поставить настройку не получится.
Может все таки жля шагов вычисления выражения попытку одну сделать?

@Pr-Mex
Copy link
Owner

Pr-Mex commented Oct 1, 2022

@akademik1986
Пока не готов сказать. Надо подумать.

@Pr-Mex
Copy link
Owner

Pr-Mex commented Oct 1, 2022

Скорее всего речь идёт об обычных шагах, которые вызывается как условия. Для них наверное можно сократить количество попыток.

@akademik1986
Copy link
Contributor Author

Ну на шаге типа Если открылось окно хотелось бы количество попыток оставить наверное

@Pr-Mex
Copy link
Owner

Pr-Mex commented Oct 3, 2022

Ну на шаге типа Если открылось окно хотелось бы количество попыток оставить наверное

В общем надо подумать как лучше.

@akademik1986
Copy link
Contributor Author

@Pr-Mex приветствую!
В новый релиз никак не сделать эту задачу?
у меня прям на некоторых фичах время доходит до 4 часов , активно использую шаги
Если выражение внутреннего языка 'нрег($УчетПоПодразделениям$) = нрег("Да")' Истинно Тогда
то есть вычисляемые шаги, там по идее незачем иметь несколько попыток, один раз вычислили и все
все остальные условия Если Тогда оставить количество попыток как было, сейчас по крайней мере.
Как думаешь? Я в такие дебри не полезу, так как нужно правильно отделить шаги просто условия от условий с вычислением выражения, так что надежда на тебя)
image

@Pr-Mex
Copy link
Owner

Pr-Mex commented Jan 27, 2023

@akademik1986
Я посмотрел по коду - у шага

И выражение внутреннего языка 'Выражение' Истинно.

нет внутри нескольких попыток вычислить выражение.

У тебя точно условие правильно написано? Оно ведь не может скомпилироваться, т.к. написано:
нрег(АП) = нрег("А")
Т.к. АП не обернуто в кавычки - то условие будет всегда ложным скорее всего

@Pr-Mex
Copy link
Owner

Pr-Mex commented Jan 27, 2023

@akademik1986
В общем непонятно почему ветка когда условие ложно вычисляется дольше.
Мне нужно это у себя воспроизвести.

@akademik1986
Copy link
Contributor Author

@Pr-Mex Исходный код вот такой.
И он работает в тех строках таблиц, если задано удовлетворение этому условию
image

@akademik1986
Copy link
Contributor Author

Сама таблица переменных задается вот так
image

@akademik1986
Copy link
Contributor Author

Кстати, вот пример того, что там где ложь в выражении он не зашел в условие, а там где истина, зашел
image

@Pr-Mex
Copy link
Owner

Pr-Mex commented Jan 27, 2023

@akademik1986
Чтобы это у себя воспроизвести мне нужна база и сценарий.

@akademik1986
Copy link
Contributor Author

@Pr-Mex выродил в универсальную фичу
посмотри пжт
PS включил отладочные сообщения, там все ок

30.01.2023 12:40:11 Шаг (Если выражение внутреннего языка 'нрег($Вал$) = нрег("Да")' Истинно Тогда) не выполнен.
30.01.2023 12:40:13 {ВнешняяОбработка.ВстроенныйЯзык.Форма.Форма.Форма(132)}: Выражение <нрег(ОбъектКонтекст.Вал) = нрег("Да")> оказалось равно <Нет>, а ожидали <Да>.

@Pr-Mex
Copy link
Owner

Pr-Mex commented Jan 30, 2023

@akademik1986

выродил в универсальную фичу

не понял - как мне у себя воспроизвести проблему?

@akademik1986
Copy link
Contributor Author

akademik1986 commented Jan 30, 2023

@Pr-Mex
запустить на любой базе
На всякий случай настройки, но там наверное из особенностей это стандартное повторение после ошибки = 3 раза, больше ничего интересного не должно быть
image

@Pr-Mex
Copy link
Owner

Pr-Mex commented Jan 30, 2023

@akademik1986
Какой именно сценарий нужно запустить на любой базе? Приложи feature файл, пожалуйста.

@akademik1986
Copy link
Contributor Author

@Pr-Mex
так она приложена же
image

@Pr-Mex
Copy link
Owner

Pr-Mex commented Feb 1, 2023

Решено.

@Pr-Mex Pr-Mex closed this as completed Feb 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants