ivanov660 / TestingTool-3

Инструмент автоматизации тестирования ПО
Apache License 2.0
104 stars 24 forks source link

В тестах не обновились параметры из готового блока шагов #99

Closed uramalyutin closed 3 years ago

uramalyutin commented 3 years ago

Изменились настройки подключения к базе. В библиотечном тесте "Права" изменил настройки подключения для всех тестовых пользователей. Тест "Права" добавлен в каждый тест как готовый блок шагов. Но во всех тестах значения параметров из теста "Права" остались старыми, из-за этого ни один тест сейчас не работает, т.к. не может запуститься клиент тестирования.

В тесте "Права" настройки подключение обновлены: image

В любом другом тесте настройки подключения из теста "Права" остались старые: image

В итоге клиент тестирования запускается со старыми настройками подключения к базе: image

Удаление и добавление заново готового блока шагов "Права" ни к чему не приводит, т.к. после удаления блока "Права" параметры из него в тесте остаются. Если после удаления блока "Права" его параметры удалить вручную, а потом снова добавить готовый блок шагов "Права", то параметры в тест добавляются уже обновленные. Но не хотелось бы сейчас "прощелкивать" все тесты по этому алгоритму.

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

UPD: проверил - изменения в шагах теста, добавленного как готовый блок шагов в другие тесты, появляются в других тестах, а изменения в параметрах не появляются.

Версия конфигурации: 3.20.07.02 Версия МСТ: 2020.03.13 Версия платформы: 8.3.16.1148

ivanov660 commented 3 years ago

@uramalyutin На сколько я понял, то проблема в следующем. Как есть сейчас:

  1. Есть головной тест в котором находятся подчиненные сценарии (блок готовых шагов)
  2. В подчиненных сценариях указаны права.
  3. При загрузке подчиненных, новые параметры добавляются, если их не было.
  4. При загрузке остаются права в параметрах старые или не те

Что хочется:

  1. Чтобы параметры настроек обновлялись из подчиненного блока готовых шагов.

Решение: Чтобы обновлялись параметры в головном тесте необходимо в подчиненном (блок готовых шагов), который , к примеру, называется права, установить флаг напротив параметра Роль... "затирать родительские значения". В этом случае при загрузке параметра, если он существует, будет заменен на существующий в этом блоке.

P.S. Сейчас мы добавляем новое действие, которое называется "Память". Для него будут доступны операции загрузки/сохранения параметров через txt файл, базу данных, а также загружать права из базы из регистра права для тестов. Это думаю значительно упростит данный вопрос.

uramalyutin commented 3 years ago

Да, проблему поняли правильно, решение было на поверхности, но я как-то не замечал его =) Спасибо!

Новое действие "Память" - судя по описанию это то, что мне было нужно в начале года (https://github.com/ivanov660/TestingTool-3/issues/79). В принципе тот вариант реализации, который описан по ссылке выше работает без ошибок в наших тестах, мы его распространили на вторую конфигурацию, на третьей конфигурации попробуем вариант с "Памятью". Но впереди еще юнит-тесты: как их создавать и запускать разобрались, в общем-то оказалось не сложно, осталось только написать их))

ivanov660 commented 3 years ago

Сейчас думаем над следующим гибридом. Через сценарные тесты выполнять проверки типа юнит не верно, но идея следующая:

  1. Нужно создать обработку, которая сравнивает две табличные части. На входе у нее ссылка на макет с эталонными данными и ссылка на документ, справочник и т.п. + кнопка сравнить и окно результата.
  2. Далее в сценарии откроем эту обработку и укажим ссылку на созданный документ и файл эталон
  3. Нажмем выполнить и проверить поле на наличие ошибки.
  4. В случае ошибки можно вызвать исключение.

Замечания. Тут требуется еще одна обработка для загрузки начальных данных. Чтобы от них прыгать. Т.е., к примеру, проверка заполнения табличной части РТУ из ЗК. Будет требовать наличие готового ЗК с движениями и достаточно будет нажать одну кнопку. Хотя можно сразу в полном сценарии проверять, но будет дольше.