Closed uramalyutin closed 4 years ago
I) По МСТ
Вот это сам сценарий: ddt-open-forms.zip адаптирован к 8.3.12 и 8.3.14 Вот это макет для режима DDT: Тест_ОткрытиеФормСправочников.zip
Для работы требуется запуск WinAutomationUI. Пример как работать смотрите в видио-уроке: http://testingtool.ru/lesson-2-continue-test-calculator-data-driven-testing/
Результатом выполнения будет отчет с набором тестовых случаев для каждой формы, указанной в файле.
Отпишитесь пжста подойдет вам такой пример. Мы рекомендуем использовать параллельность - несколько тестов: проверка справочников, документов и т.д.
II) Про график. На основании этого графика можно делать оценку времени выполнения тестов и думать над оптимизацией времени выполнения. Т.е. видеть долгие тесты. Более всего подходит для анализа юнит тестов. У вас равномерное распределение. Коллеги по цеху считают что общее суммарное время выполнения более 5 минут - это фейл.
Как работать с DDT-тестами в МСТ я вроде разобрался. Поменял в параметрах имя основного окна (и в шагах теста тоже, просто чтоб не сбивало с толку), добавил свойства подключения, и поменял в файле данных навигационные ссылки. После этого в МСТ тест заработал. Правда несколько раз МСТ говорила, что не смогла обнаружить панель или даже окно, но при следующих запусках это не повторялось и я решил оформить этот сценарий в тест и добавить его в проверку.
Ваш тест с моими изменениями (выделены красным) я сохранил как библиотечный тест.
Создал сценарный тест и добавил в него готовые блоки шагов: Права и новый тест.
Оформил тест
Оформил задание. Для создания задания я выбрал шаблон "Сценарный UI тест (МСТ)".
Добавил задание в проверку
До этого я все задания в проверке добавлял с порядком выполнения +1 от предыдущего. В этот раз решил попробовать выполнять это задание параллельно с каким-нибудь другим. Второе и третье задания выполняются под Администратором и поскольку новый тест тоже пока будет выполняться под администратором, я ему установил порядок выполнения вместе с четвертым заданием, которое уже должно запуститься под Кадровиком. При выполнении проверки задание как бы выполнилось. Я специально следил за выполнением проверки в нулевом сеансе и не увидел чтобы этот тест выполнялся. Однако в списке выполненных тестов из этой проверки он появился, но выглядит необычно. Для первых трёх тестовых случаев детализация шагов выглядит одинаково, а для четвертого ее вообще нет. При этом вроде бы тест считается выполненным успешно.
Очевидно, что где-то я что-то неправильно сделал, но, боюсь, сам не скоро разберусь. Подскажите, пожалуйста, что не так.
А вот вторую часть вашего ответа (про график) я не понял. Вот теперь у меня есть один тест, состоящий из четырех тестовых случаев, и я это вижу. Но если их будет несколько, то как понять, какой из столбцов диаграммы к какому из тестов относится? На диаграмме нет этой информации. В общем я все еще не понимаю как читать эту диаграмму.
У вас равномерное распределение.
Это хорошо или плохо? =)
Коллеги по цеху считают что общее суммарное время выполнения более 5 минут - это фейл.
Стыдно признаться, но вся моя проверка целиком выполняется за 3200+ секунд, а это 50+минут. В таком случае моя проверка не просто фейл, а ФЕЙЛИЩЕ =) Но ручное выполнение всех этих сценариев занимает, конечно, значительно больше времени и поэтому сокращение времени проверки до 50 минут я считал, как это модно сейчас говорить, прорывом) Можете дать какие-то рекомендации, как это оптимизировать? Мне кажется, что надо хотя бы выполнение сценариев под разными пользователями запускать параллельно.
И последний пока вопрос: DDT-тесты всегда используют API AutomationUI? Или можно их делать используя другое API - 1С, например?
Тест использует интерфейс Microsoft Automation UI. Там есть параметры интервал для действий найти окно, найти элемент (2-5 сек). Иногда 1С подвисает и этого интервала может не хватить, поставьте побольше. Однако, если окно не откроется (ошибка), то он будет ждать именно интервал секунд, поэтому тест может выполнятся дольше. А в нем иногда ищутся окна которые могут быть (окно формы) и могут не быть (окно ошибки). Т.е. слишком мало ставить нельзя будет нестабильным (мигать), много тоже будет долго выполняться. Ищите компромисс под себя.
Думаю для вас этот график не является критическим, смотрите другие. Можно посмотреть еще рекомендации от яндекса, как они еще рекомендуют интерпретировать эти данные.
Механизм DDT тестов можете использовать для любого API. Придумайте подходящую свою ситуацию. Основная идея это повторение одного порядка действий с разными данными. -У нас был тест, который проверял расчет данных в строке. Но мы перешли на юнит тесты, т.к. 1С криво получает данные (представление) из ТЧ, если поле в строке ТЧ не находится в режиме редактирования (их косяк).
Почему не запускается.
Проверить можно так: а) В задании открытия форм временно отключите опцию загрузки отчета или в шаблоне команд отключите опцию удаления.
После этого файл отчета должен остаться в каталоге и уже проверить что там написано. б) Проверить корректность строки запуска. Через историю запуска сборок можно получить командную строку для cmd.
Не получается разобраться самостоятельно В нулевом сеансе тест действительно запускается, но он запускается с ошибками.
Тест не может загрузить готовые блоки шагов.
При этом адрес, по которому он пытается загрузить готовые блоки шагов неправильный (на это вы уже обращали внимание в https://github.com/ivanov660/TestingTool-3/issues/70#issuecomment-576399824).
В строке запуска также неправильный путь:
"C:\Program Files\1cv8\8.3.12.1790\bin\1cv8c.exe" /S "<сервер>/TestingTool" /N"QA-бот" /P"QA-бот" /DasableStartupMessages /DisableStartupDialogs /UseHwLisenses- ¶ /Execute "C:\Малютин\Автотесты на гит-сервере\МенеджерСценарногоТеста.epf" /LogUI /TESTMANAGER ¶ /C"¶ TestUI C:\Малютин\Автотесты на гит-сервере\UITests\ЗУП\DDT\DDT_TEST_Открытие форм справочников.xml ¶ TestLogUI C:\Отчеты_о_тестировании ¶ TestLibDirUI C:\Малютин\Автотесты на гит-сервере\C:\Малютин\Автотесты на гит-сервере\UITestsLib ¶ TestConnectionStringUI <сервер>/HRMS_PRL¶ TestFileBase1CUI Нет ¶ TestUser1CUI МалютинЮН ¶ TestPass1CUI 11 ¶ TestPortUI 1538¶ TestProg1C C:\Program Files\1cv8\8.3.12.1790\bin\1cv8c.exe ¶ TestUrlExternAutomationUI http://localhost:8080¶ TestScreenShotUI Errors¶ TestReportNameUI report-57_DDT_Открытие форм справочников ¶ TestReportFormatUI AllureXML¶ TestDataDrivenUI Да¶ TestDataFileNameUI C:\Малютин\Автотесты на гит-сервере\DDT_DataFiles\ЗУП\Тест_ОткрытиеФормСправочников.mxl ¶ TestID DDT_Открытие_форм_справочников¶"
Насколько я понял, ошибка тянется из команды:
В шаблоне для этой команды путь до каталога библиотечных тестов задается как:
В настройках работы пользователя этим настройкам установлены следующие значения:
Возможно в этом и есть проблема и нужно для настроек "Путь к каталогу библиотеки сценариев" и "Путь к каталогу наборов сценариев" указывать путь относительно настройки "Путь к каталогу GIT"?
P.S. пока не менял настройку, т.к. в остальных сценарных тестах проблем нет, только с тестом DDT (unit-тесты пока не используем совсем).
UPD: Поменял настройки, запустил этот сценарий - ошибка та же, ~хотя путь теперь выглядит правильно~ UPD 14:50 - Только сейчас разглядел, что путь все-таки неправильный.
С чем может быть связано? Проявляется только на DDT тесте, простые сценарные тесты работают без ошибок.
При формировании командной строки запуска сценария происходит дублирование каталога git. И вместо данных справочника Тест "%ПутьККаталогуБиблиотекиСценариев% " похоже берется глобальный путь. Можно попробовать в глобальный путь превратить в относительный вручную.
Поменял значение настройки
В тесте не получилось поменять
Строка запуска:
"C:\Program Files\1cv8\8.3.12.1790\bin\1cv8c.exe" /S "<сервер>/TestingTool" /N"QA-бот" /P"QA-бот" /DasableStartupMessages /DisableStartupDialogs /UseHwLisenses- ¶ /Execute "C:\Малютин\Автотесты на гит-сервере\МенеджерСценарногоТеста.epf" /LogUI /TESTMANAGER ¶ /C"¶ TestUI C:\Малютин\Автотесты на гит-сервере\UITests\ЗУП\DDT\DDT_TEST_Открытие форм справочников.xml ¶ TestLogUI C:\Отчеты_о_тестировании ¶ TestLibDirUI C:\Малютин\Автотесты на гит-сервере\C:\Малютин\Автотесты на гит-сервере\UITestsLib ¶ TestConnectionStringUI <сервер>/HRMS_PRL¶ TestFileBase1CUI Нет ¶ TestUser1CUI МалютинЮН ¶ TestPass1CUI 11 ¶ TestPortUI 1538¶ TestProg1C C:\Program Files\1cv8\8.3.12.1790\bin\1cv8c.exe ¶ TestUrlExternAutomationUI http://localhost:8080¶ TestScreenShotUI Errors¶ TestReportNameUI report-60_DDT_Открытие форм справочников ¶ TestReportFormatUI AllureXML¶ TestDataDrivenUI Да¶ TestDataFileNameUI C:\Малютин\Автотесты на гит-сервере\DDT_DataFiles\ЗУП\Тест_ОткрытиеФормСправочников.mxl ¶ TestID DDT_Открытие_форм_справочников¶"
Во время выполнения текста ошибка не поменялась.
А под каким пользователем выполняется регламентное задание?
Судя по картинке перезаписать справочник не удалось, там вроде защита стоит от несовпадения с гит.
Под Администратором
Поменял настройку каталога для библиотечных тестов для администратора и при выполнении тестов текст ошибки поменялся
Строка запуска
"C:\Program Files\1cv8\8.3.12.1790\bin\1cv8c.exe" /S "<сервер>/TestingTool" /N"QA-бот" /P"QA-бот" /DasableStartupMessages /DisableStartupDialogs /UseHwLisenses- ¶ /Execute "C:\Малютин\Автотесты на гит-сервере\МенеджерСценарногоТеста.epf" /LogUI /TESTMANAGER ¶ /C"¶ TestUI C:\Малютин\Автотесты на гит-сервере\UITests\ЗУП\DDT\DDT_TEST_Открытие форм справочников.xml ¶ TestLogUI C:\Отчеты_о_тестировании ¶ TestLibDirUI C:\Малютин\Автотесты на гит-сервере\krakozyabra_administrator ¶ TestConnectionStringUI <сервер>/HRMS_PRL¶ TestFileBase1CUI Нет ¶ TestUser1CUI МалютинЮН ¶ TestPass1CUI 11 ¶ TestPortUI 1538¶ TestProg1C C:\Program Files\1cv8\8.3.12.1790\bin\1cv8c.exe ¶ TestUrlExternAutomationUI http://localhost:8080¶ TestScreenShotUI Errors¶ TestReportNameUI report-61_DDT_Открытие форм справочников ¶ TestReportFormatUI AllureXML¶ TestDataDrivenUI Да¶ TestDataFileNameUI C:\Малютин\Автотесты на гит-сервере\DDT_DataFiles\ЗУП\Тест_ОткрытиеФормСправочников.mxl ¶ TestID DDT_Открытие_форм_справочников¶"
Да, в справочнике настройку пути к библиотеке сценариев "на что попало" не заменишь - новый каталог должен быть в каталоге GIT.
Проверьте для задания выполнения теста в регистре сведений ""Переменные заданий" (e1cib/list/РегистрСведений.ПеременныеЗаданий) наличие строки и именем переменной %ПутьККаталогуБиблиотекиСценариев%. Скорее всего она отсутствует. Если отсутствует, тогда попробуйте выполнить следующую последовательность действий.
Проверьте, что обработка конструктор сценарных тестов от версии не менее "2019.02.05".
Проверьте, что у теста заполнен реквизит "путь к библиотеке ..."
Откройте конструктором задание выполнения теста и перепройдите все шаги.
По результату у вас в регистре сведений ""Переменные заданий" должна появиться строчка с именем переменной %ПутьККаталогуБиблиотекиСценариев%.
После этого запуск тестов должен происходить корректно и путь должен появится корректный.
Да, действительно такой переменной нет.
В тесте путь к библиотеке заполнен
Версия конструктора правильная
Шаги конструктора прошел заново и переменная появилась
Тест стал выполняться.
Странно, что при первом создании задания эта переменная не заполнилась. Понаблюдаю за поведением при создании новых заданий.
Не ошибка Помогите разобраться для чего и как используются Тестовые случаи? Сейчас у меня в тестах эта команда из списка команд МСТ вообще не используется. И, если я правильно понимаю, это означает, что каждый мой тест содержит по одному тестовому случаю (одноименному с самим тестом). Обработка, показывающая результаты проверок, говорит в каждой проверке, что всего было выполнено 39 тестовых случая (по количеству тестов) И на диаграмме Продолжительность рисует вот такой красивый "заборчик" :) Что должна показывать диаграмма тоже не понятно, т.к. насколько я могу судить она показывает сколько тестовых случаев выполнилось за какое-то время. У меня всегда получается, что все тестовые случаи выполняются за различное время (время выполнения для различных тестов не повторяется) и на диаграмме всегда на каждое время по одному тестовому случаю.