Coder Social home page Coder Social logo

ceredira / cerediratess Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 3.0 3.63 MB

Service for script execution on remote hosts

License: GNU General Public License v3.0

Python 7.88% Batchfile 0.68% HTML 3.03% JavaScript 88.29% CSS 0.06% Shell 0.06%
psexec linux windows batch bash

cerediratess's Introduction

CerediraTess

HTTP-сервис для выполнения скриптов (.bat, .sh) на удаленных агентах (Windows, Linux).

Проект находится в разработке!!!

По всем вопросам обращаться в телеграм чат поддержки: t.me/CerediraTess.

Содержание

  1. Содержание
  2. Описание инструмента CerediraTess
    1. Для кого предназначен этот инструмент
    2. Какие проблемы, решает этот инструмент
    3. Основные задачи инструмента
    4. Второстепенные задачи инструмента
    5. Особенности инсрумента
  3. Системные требования
  4. Установка и настройка
    1. Первый запуск
    2. Установка в качестве сервиса
  5. Дополнительная информация
    1. Кто создал CerediraTess?
    2. Почему изначально была создана CerediraTess?
    3. Хорошо, а в чём подвох? Что вы получаете распространяя CerediraTess?

English version

Описание инструмента CerediraTess

Для кого предназначен этот инструмент:

  • DevOps-инженерам;
  • Администраторам операционных систем;
  • Тестировщики;
  • Автоматизаторам;
  • Программистам.

Какие проблемы, решает этот инструмент:

  1. Администраторам операционных систем, необходимо разрешить команде разработки выполнять перезагрузку сервиса Windows на машине, без возможности выполнять любые другие действия на этой машине и без необходимости выдачи каждому пользователю прав для входа на машину.
  2. Администраторам операционных систем, необходимо обеспечить тестировщикам возможность очистки логов сервисов Windows на серверах, без возможности выполнять любые другие действия на этих серверах, без необходимости предоставления прав именно на разрешенные действия.
  3. Администраторам операционных систем, по запросу пользователей, устанавливать на рабочих виртуальных машинах пользователей различное ПО вида Java JDK, Python интерпретатор, Maven, среды разработки и любой другой софт, без необходимости ручного вмешательства в процесс установки.
  4. DevOps-инженерам, если у вас автоматизация тестирования, в качестве агентов выступают Windows машины, пул машин меняется или растет, то необходимо устанавливать ПО и настраивать одни и те же параметры на каждой машине, и велика вероятность возникновения ошибки.
  5. Автоматизаторам при проведении нагрузочного тестирования необходимо приводить стенд нагрузочного тестирования в изначальное положение: выполнять перезагрузку, чистить логи, чистить таблицы баз данных и т.п.
  6. Тестировщикам, при обновлении кода эмуляторов или заглушек, необходимо выполнять редеплой.

Основные задачи инструмента:

  • Предоставление широкому кругу пользователей возможность выполнения действий, согласованных с администратором, на удаленных агентах.
  • Сокрытие от пользователей используемых учетных данных, для подключения к удаленным агентам.
  • API-интерфейс, для возможности использования в связке с инструментами организации CI\CD.

Второстепенные задачи инструмента:

  • Файловый сервер.
  • Пользовательский интерфейс для удобства администрирования инструмента.
  • Пользовательский интерфейс для удобства ручного использования инструмента/отладки скриптов.

Особенности инсрумента:

  • Не нужно устанавливать на удаленных агентах для выполнения действий дополнительное ПО и выполнять настройки.
  • Встроенный широкий набор скриптов, который позволит выполнить быстрый старт.
  • Открытость набора встроенных скриптов позволит быстро обучится написанию собственных.

Системные требования

Информация в данном разделе будет уточнения после проведения дополнительных испытаний. Все очень сильно зависит от задач.

  • Конфигурация с количеством параллельных агентов до 50 штук:
    1. ЦП: 4 ядра;
    2. ОП: 6-8 Гб;
    3. Диск: 50 Гб или больше.
  • Конфигурация для запуска UI автотестов с открытием RDP сессий, агентов до 20-30 штук одновременно:
    1. ЦП: 8 ядер;
    2. ОП: 16 Гб;
    3. Диск: 100 Гб или больше.

Как собрать приложение из исходного кода

Сборка приложения под ОС Windows

pyinstaller --name CerediraTess --add-data="venv\Lib\site-packages\flask_admin\static\admin\css\bootstrap4;ceredira_tess\static\admin\css\bootstrap4" --add-data="venv\Lib\site-packages\flask_admin\static\admin\js;ceredira_tess\static\admin\js" --add-data="venv\Lib\site-packages\flask_admin\static\bootstrap\bootstrap4\css;ceredira_tess\static\bootstrap\bootstrap4\css" --add-data="venv\Lib\site-packages\flask_admin\static\bootstrap\bootstrap4\fonts;ceredira_tess\static\bootstrap\bootstrap4\fonts" --add-data="venv\Lib\site-packages\flask_admin\static\bootstrap\bootstrap4\js;ceredira_tess\static\bootstrap\bootstrap4\js" --add-data="venv\Lib\site-packages\flask_admin\static\bootstrap\bootstrap4\swatch\flatly;ceredira_tess\static\bootstrap\bootstrap4\swatch\flatly" --add-data="venv\Lib\site-packages\flask_admin\static\vendor\bootstrap-daterangepicker\daterangepicker-bs4.css;ceredira_tess\static\vendor\bootstrap-daterangepicker" --add-data="venv\Lib\site-packages\flask_admin\static\vendor\bootstrap-daterangepicker\daterangepicker.js;ceredira_tess\static\vendor\bootstrap-daterangepicker" --add-data="venv\Lib\site-packages\flask_admin\static\vendor\bootstrap-daterangepicker\README.MD;ceredira_tess\static\vendor\bootstrap-daterangepicker" --add-data="venv\Lib\site-packages\flask_admin\static\vendor\bootstrap4;ceredira_tess\static\vendor\bootstrap4" --add-data="venv\Lib\site-packages\flask_admin\static\vendor\leaflet;ceredira_tess\static\vendor\leaflet" --add-data="venv\Lib\site-packages\flask_admin\static\vendor\multi-level-dropdowns-bootstrap;ceredira_tess\static\vendor\multi-level-dropdowns-bootstrap" --add-data="venv\Lib\site-packages\flask_admin\static\vendor\select2;ceredira_tess\static\vendor\select2" --add-data="venv\Lib\site-packages\flask_admin\static\vendor\x-editable;ceredira_tess\static\vendor\x-editable" --add-data="venv\Lib\site-packages\flask_admin\static\vendor\jquery.min.js;ceredira_tess\static\vendor" --add-data="venv\Lib\site-packages\flask_admin\static\vendor\moment.min.js;ceredira_tess\static\vendor" --add-data="venv\Lib\site-packages\flask_admin\static\vendor\popper.min.js;ceredira_tess\static\vendor" --add-data="venv\Lib\site-packages\flask_admin\templates\bootstrap4\admin;ceredira_tess\templates\admin" --add-data="venv\Lib\site-packages\flask_admin\translations\ru;flask_admin\translations\ru" --add-data "www;www" --add-data "scripts;scripts" --add-data "resources;resources" --add-data="ceredira_tess\static;ceredira_tess\static" --add-data="ceredira_tess\templates;ceredira_tess\templates" run.py

Установка и настройка

Первый запуск

  1. Скачать архив с последней версией CerediraTess со страницы релизов https://github.com/Ceredira/CerediraTess/releases.
  2. Создать каталог, например: C:\Temp\CerediraTess_{ProjectName1}\, который будет является корнем проекта, где {ProjectName1} - желаемое имя проекта.
  3. Распаковать содержимое архива в созданный каталог.
  4. Перейти в каталог CerediraTess и переименовать CerediraTess.exe в CerediraTess_{ProjectName1}.exe.
  5. Вернутся в каталог на уровень выше.
  6. Запустить командную строку в данно каталоге.
  7. Выполнить команду CerediraTess\CerediraTess_{ProjectName1}.exe.
  8. Правка файлов конфигурации:
    1. На текущий момент в файле users.json зашито 2 пользователя:
      1. usr_1 с паролем 1qaz@WSX
      2. usr_2 с паролем !QAZ2wsx
      3. В дальнейшем это будет разрешено редактировать через странице Администрирования в UI.
    2. На текущий момент в файле agents.json зашито 2 агента, один локальный, другой удаленный. Их можно использовать как шаблоны для добавления новых агентов в конфигурационный файл, пока не будет реализован функционал страницы Администрирование.
  9. Загрузка необходимых сторонних утилит, для выполнения удаленных команд:
    1. С сайта https://live.sysinternals.com/ скачать утилиту psexec.exe и положить в каталог resources проекта. Для возможности выполнения запросов к удаленным Windows-машинам.
    2. С сайта https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html скачать утилиту plink.exe и положить в каталог resources проекта. Для возможности выполнения запросов к удаленным Linux-машинам.
  10. Утилита работает.

Установка в качестве сервиса

Для уставноки в качестве сервиса используется утилита nssm.exe.

Принцип работы с системы

Варианты работы системы

Дополнительная информация

Кто создал CerediraTess?

CerediraTess (CT) как концепт, был создан unixshaman (Джамалов Газимагомед) в январе 2018 года на проектах по автоматизации тестирования программного обеспечения компании AppLine.ru. Проект назывался WindowsServiceWebAPI (WSWA) и был написан на C# и .NET Framework. Большой вклад в рефакторинг первой версии WSWA был внесен Дильдиным Николаем.

CT, как текущая реализация - это результат упорного труда и целеустремленности. В разработке не принимали участие крупные компании, или команда разработчиков, и не было никакого бюджета - только я один.

Однако, теперь CT - это проект с открытым исходным кодом, и я не могу сказать, что все что тут сделано, будет только моим. Возможно, у проекта появятся соавторы, которые помогли бы сделать CT еще лучше. Также нельзя забывать о всех тех прекрасных библиотеках и инструментах, благодаря которым стало возможным создание CT, в особенности psexec.exe, без которого проект выглядел бы не так минималистично, как сейчас. Отдельное спасибо, Богачеву Никите, чьи наработки в части сервиса из проекта KeyWordAutomation я смог использовать.

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

Спасибо вам всем за помощь в разработке CerediraTess!

Почему изначально была создана CerediraTess?

Основной целью создания CT было получить инструмент с удобным интерфейсом (как GUI, так и API для возможности использования в автоматизации) для возможности выполнения команд или скриптов (набора команд) на удаленных агентах (Windows\Linux), без необходимости предварительной установки дополнительного программного обеспечения или выполнения иных конфигурационных действий на них. Фактически, это все еще так и остается его основной целью, поскольку моя концепция не менялась с 2018 года, и я все еще следую ей. Разумеется, с тех пор было сделано много изменений в части стабильности, доработок в части безопасности и нововведений, включая полное переписывание с технологического стека C# и .NET Framework на Python.

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

Хорошо, а в чём подвох? Что вы получаете распространяя CerediraTess?

Нет никакого подвоха, я создал CT для себя и поделился им с остальным сообществом в надежде, что он окажется полезным. То же самое случилось в 1991 году, когда Линус Торвальдс поделился своим первым ядром Linux с остальным миром. В нём нет скрытых вредоносных программ, сбора данных, майнинга криптовалют или других функций, которые принесут мне денежную выгоду. Проект CT поддерживается исключительно необязательными пожертвованиями от довольных пользователей, таких же, как вы. Вы можете использовать CT точно так же как его использую я, и если он вам нравится - вы всегда можете спонсировать меня, чтобы показать свою благодарность за то, что я делаю.

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

CerediraTess. English Version

Service for script execution on remote hosts.
Must be running on Windows as executable, or as a windows service with nssm.exe using.
Run .bat scripts on Windows hosts.

cerediratess's People

Contributors

elvira333 avatar radostdudhi avatar unixshaman avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

cerediratess's Issues

При обновлении страницы, все заполненные поля исчезают

Шаги:

  1. Пользователь авторизован
  2. Роль текущего пользователя равна "admin"
  3. В главном меню перейти в раздел "Администрирование -> Пользователи"
  4. Выбрать вкладку "Создать"
  5. Появилось модальное диалоговое "Создать новую запись"
  6. Заполнить все поля значениями:
    1. В поле "Логин пользователя" ввести значение "test"
    2. В поле "Почта" ввести значение "[email protected]"
    3. В поле " Имя пользователя" ввести значение "test"
    4. В поле "Роли" ввести значение "admin"
    5. В поле "Пароль" ввести значение "123"
    6. В поле "Подтверждение пароля" ввести значение "123"
  7. Нажать на кнопку F5 на клавиатуре (обновить текущую страницу)
  8. Модальное диалоговое окно со всеми заполненными данными исчезло

Фактический результат:

Модальное диалоговое окно со всеми заполненными данными исчезло

Ожидаемый результат:

Модальное диалоговое окно со всеми заполненными данными осталось как было до обновления страницы. Все введенные данные кроме полей "Пароль" и "Подтверждение пароля" не исчезли.

Аналогичная ситуация происходит также при создании Агентов, Скриптов, Ролей и Типов ОС.

При запуске сервиса на машине без интернета - происходят зависания при загрузке страниц

Окружение:

-     Google Chrome Версия 101.0.4951.67 (Официальная сборка), (64 бит)
-     ОС - Windows 10, 64 бит
-     CerediraTess-v0.6.0

Шаги:

  1. Отключить интернет
  2. Войти на сайт с пользователем "admin"
  3. В главном меню перейти в раздел "Администрирование -> Скрипты"

Ожидаемый результат: страница загружается сразу
Фактический результат: страница грузится дольше чем при влюченном интернете

Возможная причина: в bootstrap библиотеке используются шрифты, которые качаются
с Google серверов, а так как интернета нет, то загрузка страниц пытается грузить,
пока по таймауту не свалится. В файле bootstrap.min.css

При выполнении несуществующего скрипта на хосте, на интерфейсе пользователя не отображается корректно результат

Окружение:

-     Google Chrome Версия 101.0.4951.67 (Официальная сборка), (64 бит)
-     ОС - Windows 10, 64 бит
-     CerediraTess-v0.6.0

Шаги:

  1. Войти под admin
  2. Перейти на страницу "Выполнение запросов"
  3. Выбрать скрипт "test.bat"
  4. Выбрать имя агента "CerediraTess"
  5. Hажать F12
  6. Перейти в код HTML
  7. Поменять значение value="test.bat" на несуществующее value="000"
  8. Поменять имя скрипта test.bat на несуществующее 000
  9. Нажать на кнопку "Выполнить запрос"

Фактический результат: запрос бесконечно висит.
Ожидаемый результат: должен прийти ответ в виде JSON

Часть действий написано по-русски а часть по-англйиски

После создания скрипта, с ним можно производить разные действия и описаны они так:

  • Просмотр записи
  • Редактировать запись
  • Delete record
  • Duplicate Row

Наверно лучше написать все по-русски:

  • Просмотр записи
  • Редактировать запись
  • Удалить запись
  • Дублировать запись

Отсутствует чекбокс для выбора агентов, для применения кнопок, в История блокировок агентов

Окружение:

-     Mozilla Firefox 80.0.1, 64 бит
-     Windows 8.1, 64 бит
-     CerediraTess-v0.6.0

Шаги:

  1. Войти на сайт с пользователем "admin"
  2. В главном меню перейти в раздел "Блокировка агентов"
  3. В списке "Агенты" выбрать значение "CerediraTess"
  4. В поле "Причина блокировки" ввести значение "using_19"
  5. Нажать на кнопку "Заблокировать агенты"
  6. В списке "История блокировок" появилась 1 новая запись - "Результат блокировки агентов (yyyy:mm:dd hh:mm:ss): using_19"
  7. В списке "Агенты" выбрать значение "CerediraTess"
  8. В поле "Причина блокировки" ввести значение "For_testing_19"
  9. В списке "История блокировок", нажать над записью кнопку "Использовать"
  10. В поле "Причина блокировки" поменялось значение на "using_19"

Фактический результат: чекбокс отсутствует. Значение кнопки "Использовать" неочевидно. Кнопки дублируются над каждой записью, что затрудняет их использование.
Ожидаемый результат: присутствует чекбокс рядом с каждой записью, при нажатии на который можно применить кнопку к выбранной записи.

Чекбокс "Блокировка", при создании пользователя, стал по умолчанию не активным

При создании нового пользователя:

  1. Войти на сайт с пользователем "admin"
  2. В главном меню перейти в раздел "Администрирование -> Пользователи"
  3. Выбрать вкладку "Создать"
  4. Ввести обязательные поля:
    1. В поле "Логин пользователя" ввести значение "test"
    2. В поле "Пароль" ввести значение "test"
  5. Отметить checkbox "Блокировка", если он не отмечен

Если его не отметить, что невозможно будет под таким пользователем войти в систему.

Ошибка целостности выводится вместе с кодом

При дублировании записи скрипта (негативный сценарий)

    1. Создать скрипт
    2. Нажать на иконку дубликата "Dublicate Row"
    3. В поле "Имя скрипта" не вводить новое имя (оставить как есть)
    4. Нажать на кнопку "Сохранить"

Выводится такая ошибка:

Ошибка целостности. (sqlite3.IntegrityError) UNIQUE constraint failed: script.name [SQL: INSERT INTO script (name, description) VALUES (?, ?)] [parameters: ('3', '')] (Background on this error at: http://sqlalche.me/e/14/gkpj)

Длинный адрес агента выходит за границы поля в таблице "Блокировка агентов"

Окружение:

-     Google Chrome Версия 101.0.4951.67 (Официальная сборка), (64 бит)
-     ОС - Windows 10, 64 бит
-     CerediraTess-v0.6.0

Шаги:

  1. Войти на сайт с пользователем "admin"
  2. В главном меню перейти в раздел "Администрирование -> Агенты"
  3. Создать агент с адресом агента "test119090922222119090922222119090922222119090922222119090922222119090922222119090922222119090922222119090922222119090922222"
  4. В главном меню перейти в раздел "Блокировка агентов"

Ожидаемый результат: длинный адрес агента переносится на другую строку
Фактический результат: длинный адрес агента выходит за границы поля

При переходе на вкладку "Главная" открывается пустая страница

Окружение:

-     Google Chrome Версия 101.0.4951.67 (Официальная сборка), (64 бит)
-     ОС - Windows 10, 64 бит
-     CerediraTess-v0.6.0

Шаги:

  1. Войти на сайт с пользователем "admin"
  2. В главном меню перейти в раздел "Администрирование -> Главная"

Фактический результат: открывается пустая страница
Ожидаемый результат: открывается главная страница

Поле Fs Uniquifier необходимо скрыть из формы

При создании нового пользователя и его редактировании во вкладке "{url}:7801/admin/User/"
одним из обязательных полей является "Fs Uniquifier", которое надо скрыть из формы, т.к. оно техническое.

Не ясно назначение и влияние типов ОС на работу системы

Окружение:
Google Chrome версия 101.0.4951.54 (Официальная сборка), (64 бит)
ОС - Windows 10, 64 бит
CerediraTess-v0.6.0

Не ясно назначение и влияние типов ОС на работу системы.
Типы ОС можно удалить.

Шаги:

  1. Войти под пользователем admin
  2. В главном меню перейти в раздел "Администрирование -> Типы ОС"
  3. Нажать на иконку "Удалить запись" типа ОС с именем "Windows"
  4. Если тип ОС с именем "Windows" не удалился, нажать на иконку "Удалить запись" типа ОС с именем "Linux"
  5. Если тип ОС с именем "Linux" не удалился, создать новый тип ОС с именем "MAC OS"
  6. Нажать на иконку "Удалить запись" типа ОС с именем "Linux"
  7. Если тип ОС с именем "Linux" не удалился, нажать на иконку "Удалить запись" типа ОС с именем "Windows"

Фактический результат: Типы ОС можно удалить
Ожидаемый результат: ???

При создании нового агента, поменять описание под полем "Скрипты" на более информативное

Окружение:

-     Google Chrome Версия 101.0.4951.67 (Официальная сборка), (64 бит)
-     ОС - Windows 10, 64 бит
-     CerediraTess-v0.6.0

Шаги:

  1. Войти на сайт с пользователем "admin"
  2. В главном меню перейти в раздел "Администрирование -> Агенты"
  3. Нажать на вкладку "Создать"
  4. В выпадающем списке "Скрипты" выбрать значение "${scripts}"
  5. В выпадающем списке отображается значение "No matches found"

Фактический результат:
"No matches found"

Ожидаемый результат:
"Скриптов не найдено. Перейдите в раздел "Скрипты" для их создания."

Поле "пароль" должно являться обязательным, при создании пользователя.

При создании нового пользователя:

  1. Войти на сайт с пользователем "admin"
  2. В главном меню перейти в раздел "Администрирование -> Пользователи"
  3. Выбрать вкладку "Создать"
  4. Ввести обязательные поля:
    1. В поле "Логин пользователя" ввести значение "test"
    2. В поле "Пароль" ввести значение "test"

Поле "Пароль" должно быть обязательным, т.к. он требуется обязательно при входе в систему.

Нельзя сделать дубликат записи пользователя "admin"

Шаги:

  1. Войти на сайт с пользователем "admin"
  2. Нажать на иконку "Dublicate Row" роли с названием "admin"
  3. В поле "Логин пользователя" ввести "admin2"
  4. Нажать на кнопку "Сохранить"

Появляется ошибка:

Ошибка целостности. (sqlite3.IntegrityError) UNIQUE constraint failed: user.fs_uniquifier [SQL: INSERT INTO user (name, username, email, created_on, updated_on, password, last_login_at, current_login_at, last_login_ip, current_login_ip, login_count, fs_uniquifier, confirmed_at, active) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)] [parameters: (None, 'admin2', '[email protected]', '2022-04-30 01:07:44.000000', '2022-04-30 01:07:44.000000', '$pbkdf2-sha512$25000$SIkxhtA6B8A4JwQgxLgXYg$GlvaN8N/QRccWNl7aVm94ErCrV8Er.o6jS.I1iSIgKoYiHfwBtu/lETn/k6CEhjNw0G2onp1ewmdPENlrL2CEw', None, None, None, None, None, '3b830eae9b4c4cf082e0b68879fceb2b', None, 1)] (Background on this error at: http://sqlalche.me/e/14/gkpj) 

Неправильная нумерация записей

Шаги:

  • Создать 3 записи (например)
  • Удалить вторую запись
  • Нажать на глазик у последней записи (она теперь вторая. И записей всего 2, т.к. ту что посередине удалили)
    Но почему то она указана как 3я запись - "Просмотр записи # 3"

Возможно, это дефект.

**Подготовка тестового окружения**

UDP Посмотреть видео в т-канале, по вопросам писать @void9669

Svitlana Aleksiienko - svetaAl

  • Скачивание образа Windows 10
  • Установка VMware
  • Запуск и настройка VMware
  • Создание рабочего каталога
  • Установка SublimeText4
  • Установка Notepad++
  • Установка Everything
  • Установка WinMerge
  • Установка HDDScanner
  • Установка и настройка Git

Katey - KateyMewa

  • Скачивание образа Windows 10
  • Установка VMware
  • Запуск и настройка VMware
  • Создание рабочего каталога
  • Установка SublimeText4
  • Установка Notepad++
  • Установка Everything
  • Установка WinMerge
  • Установка HDDScanner
  • Установка и настройка Git

Поменять название поля "Agents" на "Агенты" при создании нового типа ОС

Окружение:

-     Google Chrome Версия 101.0.4951.67 (Официальная сборка), (64 бит)
-     ОС - Windows 10, 64 бит
-     CerediraTess-v0.6.0

Шаги:

  1. Войти на сайт с пользователем "admin"
  2. В главном меню перейти в раздел "Администрирование -> Типы ОС"
  3. Нажать на вкладку "Создать"
  4. Название поля "Имя ОС" написано по-русски
  5. Название поля "Agents" написано по-английски

Ожидаемый результат: все поля написаны по-русски

При создании пользователей поле Пароль должно позволять ввод пароля

Шаги:

  1. Войти на сайт с пользователем "admin"
  2. В главном меню перейти в раздел "Администрирование" -> "Пользователи"
  3. Создать пользователя "user"
  4. Нажать на иконку "Редактировать запись" у пользователя "user"
  5. Ввести в поле "Password" значение "123"
  6. Нажать на кнопку "Сохранить"

Отсутствует знак "?" рядом с надписью "Описание"

В таблице со списком скриптов, есть две колонки:

  • Имя скрипта
  • Описание скрипта

Но описание есть только у поля " Имя скрипта".
Можно добавить также описание к полю "Описание", в виде знака "?" рядом.
И в нем написать например, что описание берется из файла скрипта (из test.bat например)

Поменять порядок заполнения всех полей, при создании сущностей, в разных моделях

Агенты

  1. Скрипты
  2. Кем заблокировано
  3. Тип ОС
  4. Роли
  5. Адрес агента (FQDN)
  6. Описание
  7. Причина блокировки

Пользователи

  1. Роли
  2. Логин пользователя
  3. Выбрать чекбокс Активный
  4. Почта
  5. Имя пользователя
  6. Пароль
  7. Подтверждение пароля

Роли

  1. Агенты
  2. Пользователи
  3. Название роли
  4. Описание

Скрипты

  1. Агенты
  2. Имя скрипта
  3. Описание

Типы ОС

  1. Агенты
  2. Имя ОС

Некорректная формулировка ошибки при блокировке/разблокировке агента без указания причины

Окружение:

-     Mozilla Firefox 80.0.1, 64 бит
-     Windows 8.1, 64 бит
-     CerediraTess-v0.6.0

Шаги:

  1. Войти на сайт с пользователем "admin"
  2. В главном меню перейти в раздел "Блокировка агентов"
  3. В списке "Агенты" выбрать значение "CerediraTess"
  4. Нажать на кнопку "Заблокировать агенты"
  5. Появилось модальное диалоговое окно с текстом "Ошибка выполнения запроса. Не указана Причина блокировки для выполнения запроса"

Фактический результат: Ошибка выполнения запроса. Не указана Причина блокировки для выполнения запроса
Ожидаемый результат: Ошибка выполнения запроса. Не указана причина блокировки агента

Некорректная формулировка ошибки при невыбранном агенте для блокировке/разблокировке агента

Окружение:

-     Mozilla Firefox 80.0.1, 64 бит
-     Windows 8.1, 64 бит
-     CerediraTess-v0.6.0

Шаги:

  1. Войти на сайт с пользователем "admin"
  2. В главном меню перейти в раздел "Блокировка агентов"
  3. В поле "Причина блокировки" ввести значение "For_testing_15"
  4. Нажать на кнопку "Заблокировать агенты"
  5. Появилось модальное диалоговое окно с текстом "Ошибка выполнения запроса. Не выбраны агент/агенты для выполнения запроса"

Фактический результат: Ошибка выполнения запроса. Не выбраны агент/агенты для выполнения запроса
Ожидаемый результат: Ошибка выполнения запроса. Не выбраны агент/агенты для блокировки/разблокировки

Непонятное описание результата при блокировке заблокированного агента в поле "locking_log"

Окружение:

-     Google Chrome Версия 101.0.4951.67 (Официальная сборка), (64 бит)
-     ОС - Windows 10, 64 бит
-     CerediraTess-v0.6.0

Шаги:

  1. Войти на сайт с пользователем "admin"
  2. Заблокировать агент "CerediraTess" с причиной "For_testing_5"
  3. В списке "Агенты" выбрать значение "CerediraTess"
  4. В поле "Причина блокировки" ввести значение "For_testing_5"
  5. Нажать на кнопку "Заблокировать агенты"
  6. В списке "История блокировок" появилась 1 новая запись - "Результат блокировки агентов (yyyy:mm:dd hh:mm:ss): For_testing_5"
  7. В поле "Агенты" присутствует значение "CerediraTess"
  8. В поле "Статус" присутствует значение "yyyy:mm:dd hh:mm:ss: success"
  9. В поле "Проверка" присутствует значение "FAILED"
  10. В поле "Результат" присутствует значение:
{
    "result": false,
    "locked_agents": [],
    "locking_log": "Not enough agents to lock. Available 0, required 1 - 0\n"
}

Фактический результат: "Not enough agents to lock. Available 0, required 1 - 0\n"
Ожидаемый результат: "Agent already blocked"

При вводе пробела в поле "Причина блокировки агента" не происходит ошибки ввода

Окружение:

-     Mozilla Firefox 80.0.1, 64 бит
-     Windows 8.1, 64 бит
-     CerediraTess-v0.6.0

Шаги:

  1. Войти на сайт с пользователем "admin"
  2. В главном меню перейти в раздел "Блокировка агентов"
  3. В списке "Агенты" выбрать значение "CerediraTess"
  4. В поле "Причина блокировки" ввести значение " "
  5. Нажать на кнопку "Заблокировать агенты"
  6. В списке "История блокировок" появилась 1 новая запись - "Результат блокировки агентов (yyyy:mm:dd hh:mm:ss): "

Фактический результат: В списке "История блокировок" появилась 1 новая запись - "Результат блокировки агентов (yyyy:mm:dd hh:mm:ss): "
Ожидаемый результат: Появилось модальное диалоговое окно со значением "Ошибка выполнения запроса. Не указана причина блокировки агента"

Две кнопки выполняют одни и те же действия

При дублировании записи скрипта (позитивный сценарий)

  1. Создать скрипт
  2. Нажать на иконку дубликата "Dublicate Row"
  3. В поле "Имя скрипта" ввести имя дубликата

При нажатии на кнопку "Сохранить и добавить новый объект"
или на кнопку "Сохранить и продолжить редактирование" происходят одни и те же действия

И в первом и во втором случае, создается дубликат записи и не происходит перенаправления ко всем записям.

Поменять текст сообщения под полем Имя скрипта в модальном окне Создать новую запись

Предусловия:
Авторизоваться (логин-admin, пароль-admin).
Перейти в раздел администрирование -> скрипты.

Окружение:
Google Chrome Версия 100.0.4896.127 (Официальная сборка), (64 бит)
ОС - Windows 10, 64 бит
CerediraTess-v0.6.0

Шаги:

  1. Нажать кнопку "Создать"
  2. Открывается модальное окно Создать новую запись.
  3. Отображается поле Имя скрипта
  4. Отображается поле Описание

Фактический результат:

Под полем Имя скрипта сообщение с текстом "Путь к исполняемому файлу от каталога scripts"

Ожидаемый результат:

Под полем Имя скрипта сообщение с текстом "Путь к исполняемому файлу от каталога scripts"
дополненное примером, для удобства пользователя

Появляется прокрутка таблицы при длинном названии

Окружение:

-     Google Chrome Версия 101.0.4951.67 (Официальная сборка), (64 бит)
-     ОС - Windows 10, 64 бит
-     CerediraTess-v0.6.0

Шаги:

  1. Войти на сайт с пользователем "admin"
  2. В главном меню перейти в раздел "Администрирование -> Агенты"
  3. Создать агент с адресом агента "test119090922222119090922222119090922222119090922222119090922222119090922222119090922222119090922222119090922222119090922222"

Ожидаемый результат: длинное имя переносится на другую строку
Фактический результат: появляется прокрутка

Аналогичная проблема встречается в других разделах.

Роль admin можно удалить

Нужно добавить сообщение об ошибке при удалении роли "admin".
Сейчас роль "admin" можно удалить и сайт падает с ошибкой:

Forbidden

You don't have the permission to access the requested resource. It is either read-protected or not readable by the server.

Нельзя посмотреть информаю о полях "Агенты" и "Users" в ролях

При создании и редактировании записи роли можно выбрать поле "Агенты" и "Users", но потом эти поля нигде не отображаются. Т.е. если нажать на иконку "глазика" отображается только "Название роли " и "Описание". Можно также добавить туда такие поля как "Агенты" и "Users" (т.е чтобы все заполненные поля отображались)

Их можно увидеть только если опять нажать на "Редактировать запись". Наверно это неправильно.

При добавлении нового типа ОС доступно для заполнения поле Agents

Окружение:
Google Chrome версия 101.0.4951.54 (Официальная сборка), (64 бит)
ОС - Windows 10, 64 бит
CerediraTess-v0.6.0

Шаги:

  1. Войти под пользователем admin
  2. В главном меню перейти в раздел "Администрирование -> Типы ОС"
  3. Нажать на вкладку "Создать"
  4. В поле "Имя ОС" ввести значение "Mac OS"
  5. В поле "Agents" ввести "SSS"
  6. Нажать "Сохранить"

Фактический результат: Поле Agents доступно для заполнения
Ожидаемый результат: Поле Agents не доступно для заполнения

При дублировании существующего скрипта, появляется "Ошибка целостности" вместо ожидаемой ошибки "Уже существует"

При выполнении скрипта 13 - Дублирование скрипта. "Сохранить и продолжить редактирование" без внесения изменений

  1. Войти на сайт с пользователем "admin"
  2. Создать скрипт "test_13.bat"
  3. Нажать на иконку "Дублировать запись" скрипта с именем "test_13.bat"
  4. Пользователь находится на странице http://{url}admin/Script/duplicate/?id= (порядковый номер скрипта)
  5. Нажать кнопку "Сохранить и продолжить редактирование"
  6. Под основным меню появилось сообщение "Ошибка целостности"

Ожидаемая ошибка: "Уже существует"

Но при выполнении скрипта 14 - Дублирование скрипта. "Сохранить и продолжить редактирование" ввести имя уже существующего скрипта

  1. Войти на сайт с пользователем "admin"
  2. Создать скрипт "test_14_1.bat"
  3. Создать скрипт "test_14_2.bat"
  4. Нажать на иконку "Дублировать запись" скрипта с именем "test_14_1.bat"
  5. Ввести в поле "Имя скрипта" значение "test_14_2.bat"
  6. Нажать на кнопку "Сохранить и продолжить редактирование"
  7. Появилась надпись "Уже существует"

Ожидаемая ошибка: "Уже существует"

В обоих кейсах ожидаемая ошибка - "Уже существует" т.к. дублируем существующий скрипт, однако в первом случае другая ошибка.

Отсутствуют заголовки страниц в блоке "Администрирование"

STR:

  1. Пользователь авторизован.
  2. Роль текущего пользователя равна "admin"
  3. В главном меню перейти в раздел "Администрирование -> Агенты (Скрипты, Пользователи, Роли, Типы ОС)

AR: Пользователь ориентируется на какой странице находится по заголовку стр.
ER: Отображается название страницы только в <title>

Лишний символ "\n" в выводе результата в unlocking_log/locking_log при блокировке/разблокировке агентов

Окружение:

-     Google Chrome Версия 101.0.4951.67 (Официальная сборка), (64 бит)
-     ОС - Windows 10, 64 бит
-     CerediraTess-v0.6.0

Шаги:

  1. Войти на сайт с пользователем "admin"
  2. Заблокировать агент "CerediraTess" с причиной "For_testing_9_1"
  3. В списке "Агенты" выбрать значение "CerediraTess"
  4. В поле "Причина блокировки" ввести значение "For_testing_9_2"
  5. Нажать на кнопку "Разблокировать агенты"
  6. В списке "История блокировок" появилась 1 новая запись - "Результат блокировки агентов (yyyy:mm:dd hh:mm:ss): For_testing_9_2"
  7. В поле "Агенты" присутствует значение "CerediraTess"
  8. В поле "Статус" присутствует значение "yyyy:mm:dd hh:mm:ss: success"
  9. В поле "Проверка" присутствует значение "FAILED"
  10. В поле "Результат" присутствует значение:
{
    "result": false,
    "unlocked_agents": [
        "CerediraTess"
    ],
    "unlocking_log": "Cannot unlock agent CerediraTess, locked with another cause: For_testing_9_1\n"
}

Фактический результат: Cannot unlock agent CerediraTess, locked with another cause: For_testing_9_1\n

Ожидаемый результат: Cannot unlock agent CerediraTess, locked with another cause: For_testing_9_1

Примечание:

  • Также встречается при выполнении всех остальных кейсов на блокировку/разблокировку агентов.
  • Необходимо заменить символ "\n" на перенос строки, чтобы при блокировке/разблокировке нескольких агентов, вывод в locking_log/unlocking_log не склеивался:
    {
        "result": false,
        "unlocked_agents": [
            "CerediraTess",
            "test_8"
        ],
        "unlocking_log": "Cannot unlock agent CerediraTess, locked with another cause: For_testing_10_1\nCannot unlock agent test_8, locked with another cause: For_testing_10_1\n"
    }
    

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.