Created
October 15, 2020 08:20
-
-
Save log0div0/c23551fdc3b6b68551024421d9fbebd8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
machine win10 { | |
cpus: 2 | |
ram: 4Gb | |
disk main: { | |
source: "${QEMU_DISK_DIR}/win10.qcow2" | |
} | |
} | |
flash dr_web_flash { | |
size: 2Gb | |
fs: "ntfs" | |
folder: "${DR_WEB_DIR}" | |
} | |
test dr_web_install { | |
win10 { | |
#Включаем виртуалку | |
start | |
#Дожидаемся появления рабочего стола | |
wait "Recycle Bin" timeout 10m | |
#Подключаем флешку с дистрибутивом Dr Web | |
plug flash dr_web_flash; sleep 5s | |
mouse click "USB Drive"; sleep 3s | |
# Открываем содержимое флешки через проводник | |
mouse click "Open folder" | |
#Копируем инсталлятор на рабочий стол | |
mouse click "drweb" | |
press LeftCtrl + C | |
# Мы точно знаем, что под значком браузера "Edge" находится пустое место | |
mouse click "Edge".move_down(50) | |
press LeftCtrl + V | |
wait "Copying" | |
wait !"Copying" timeout 5m | |
#Наводим фокус на окно с открытой флешкой | |
#Щелкаем на верхнюю надпись "USB Drive" - как раз в заголовке окна | |
mouse click "USB Drive".from_top(0) | |
#Закрываем окно | |
press LeftAlt + F4 | |
#Вытаскиваем флешку | |
unplug flash dr_web_flash; sleep 3s | |
#Запускаем инсталлятор | |
mouse dclick "drweb" | |
#Отвечаем на всплывающее окошко | |
wait "Do you want to allow"; mouse click "Yes".from_bottom(0) | |
#Приветственный экран инсталлятора | |
wait "Thank you for choosing Dr.Web" timeout 3m | |
#Убираем галочку с предложением подключиться к облаку | |
mouse click "I want to connect to Dr.Web Cloud".right_center() | |
#А Firewall, наоборот, включаем | |
mouse click "Install Dr.Web Firewall" | |
mouse click "Next".from_bottom(0) | |
#Откладываем вопрос получения лицензии и начинаем установку | |
mouse click "Receive license later" | |
mouse click "Install" | |
#Установка завершена, перезагружаем компьютер | |
wait "Installation complete" timeout 10m | |
mouse click "Restart now" | |
#Убеждаемся, что перезагрузка началась | |
wait "Restarting" | |
#Пытаемся найти Dr. Web на рабочем столе после перезагрузки | |
wait "Recycle Bin" && "Dr.Web" timeout 10m | |
} | |
} | |
flash deny_access { | |
fs: "ntfs" | |
size: 16Mb | |
} | |
# Макрос, который запускает приложение, | |
# имя которого передается в качестве параметра | |
macro open_app(app) { | |
mouse click "Type here to search" | |
wait "Top apps" | |
type "${app}" | |
wait "Open" | |
press Enter | |
} | |
#Тест с ограничением доступа к флешкам в Dr. Web | |
#Этот тест полагается на результат работы теста dr_web_install | |
test dr_web_flash_drive_restriction: dr_web_install { | |
win10 { | |
sleep 5s | |
#Вставляем флешку, пока что с ней можно работать | |
plug flash deny_access | |
#Дожидаемся когда откроется проводник с этой флешкой | |
wait "USB Drive (E:)" && "This folder is empty" | |
#Создаем новый текстовый файл, называем его "my_file" | |
mouse rclick "This folder is empty" | |
mouse move "New"; sleep 3s | |
mouse click "Text Document".from_top(1) | |
wait "New Text Document"; | |
press Backspace; type "my_file"; press Enter | |
#Безопасно извлекаем флешку | |
mouse rclick "USB Drive (E:)".from_left(0); mouse click "Eject" | |
wait "Safe To Remove Hardware" | |
unplug flash deny_access | |
#Открываем центр безопасности Dr Web | |
open_app("Security Center") | |
wait "Computer is protected" | |
#Разблокируем режим изменений | |
mouse click "Click to make changes" | |
wait "Do you want to allow" | |
#Соглашаемся с всплывающим окошком | |
mouse click "Yes".from_bottom(0) | |
wait "Computer is protected" | |
#Включаем блокирование флешек | |
mouse click "Devices and Personal Data" | |
mouse click "Configure device access rules" | |
mouse click "Block removable media"; sleep 2s | |
#Снова вставляем флешку, открываем обозреватель | |
plug flash deny_access | |
open_app("File Explorer") | |
wait "Frequent folders" | |
#Пытаемся открыть флешку для чтения | |
mouse click "USB Drive (E:)".from_left(0) | |
#Ожидаем увидеть ошибку, т.к. работа с флешками должна быть заблокирована | |
wait "Access is denied" | |
unplug flash deny_access | |
} | |
} | |
flash free_commander_flash { | |
size: 2Gb | |
fs: "ntfs" | |
folder: "${FREE_COMMANDER_DIR}" | |
} | |
# Тест с установкой FreeCommander | |
# Этот тест полагается на результат работы теста dr_web_install | |
test win10_install_freecommander: dr_web_install { | |
win10 { | |
# Вставляем флешку, дожидаемся появления окна в файловым обозревателе с флешкой | |
plug flash free_commander_flash | |
wait "FreeCommanderXE-32-public_setup" | |
#Открываем архив и запускаем инсталлятор | |
mouse dclick "FreeCommanderXE-32-public_setup".right_bottom() | |
sleep 2s | |
mouse dclick "FreeCommanderXE-32-public_setup".from_bottom(0) | |
wait "This will install FreeCommander" | |
mouse click "Yes" | |
wait "Do you want to allow" | |
mouse click "Yes".from_bottom(0) | |
#Инсталлятор открылся, прокликиваем везде "Далее" | |
wait "English"; mouse click "OK" | |
wait "License Agreement" | |
mouse click "I accept the agreement" | |
mouse click "Next".from_bottom(0).center_bottom() | |
wait "Destination Location" | |
mouse click "Next".from_bottom(0).center_bottom() | |
wait "Would you like the folder to be created?" | |
mouse click "Yes" | |
wait "Select Start Menu Folder" | |
mouse click "Next".from_bottom(0).center_bottom() | |
wait "Select Additional Tasks" | |
mouse click "Next".from_bottom(0).center_bottom() | |
wait "Ready to Install" | |
mouse click "Install".from_bottom(0).center_bottom() | |
wait "Completing"; | |
# Установка завершена, отключаем галочку с просмотром ReadMe | |
# И также отказываемся от немедленного запуска FreeCommander | |
mouse click "View ReadMe" | |
mouse click "Start FreeCommander" | |
mouse click "Finish".from_bottom(0) | |
#Ждём, когда окно с установкой закроется | |
wait !"Finish" | |
#Закрываем проводник и отключаем флешку | |
press LeftAlt + F4 | |
wait !"USB Drive" | |
unplug flash free_commander_flash | |
} | |
} | |
#Тест с ограничением доступа к папке и добавлением | |
#исключения для FreeCommander | |
test dr_web_restrict_program: win10_install_freecommander { | |
win10 { | |
#Кликаем на пустое место правой кнопкой мышки | |
mouse rclick "Recycle Bin".move_right(100) | |
#Создаём новую папку Protected | |
mouse move "New" | |
mouse click "Folder".from_top(0) | |
type "Protected"; press Enter | |
#В папке создаём текстовый файл "my_file", играющий роль | |
#мемчиков с котиками | |
mouse dclick "Protected" | |
mouse rclick "This folder is empty" | |
mouse move "New"; sleep 3s | |
mouse click "Text Document".from_top(1) | |
wait "New Text Document"; | |
press Backspace; type "my_file"; press Enter | |
#Открываем центр безопасности и включаем | |
#режим изменений | |
open_app("Security Center") | |
wait "Computer is protected" | |
mouse click "Click to make changes" | |
wait "Do you want to allow" | |
mouse click "Yes".from_bottom(0) | |
wait "Computer is protected" | |
#Переходим в меню "Data loss Prevention" | |
mouse click "Devices and Personal Data" | |
mouse move 0 0 | |
mouse click "Data Loss Prevention" | |
#Открываем меню с добавлением защищаемой папки | |
mouse click "Protected folder".left_top().move_up(20) | |
wait "Add folder to protect" | |
#Находим в навигаторе папку "Protected" на рабочем столе | |
#И делаем её защищаемой | |
mouse click "Browse" | |
wait "Open folder" | |
mouse dclick "Users" | |
mouse dclick "testo" | |
mouse dclick "Desktop" | |
mouse click "Protected".from_right(0) | |
mouse click "OK".from_top(0) | |
wait !"Open folder" | |
#Добавляем исключение для FreeCommander | |
mouse click "Application".from_bottom(0).left_top().move_up(20) | |
wait "Open file" | |
mouse click "C:\\".from_top(0) | |
press LeftCtrl + A; press Backspace; | |
type "C:\\Program Files (x86)\\FreeCommander XE\\FreeCommander.exe"; | |
press Enter | |
wait !"Open file" | |
#Закрываем по череди все окна | |
mouse click "OK".from_top(0) | |
wait "Protected folder" && "C:\\Users\\testo\\Desktop\\Protected" | |
press LeftAlt + F4 | |
wait !"Protected folder" | |
# Пробуем удалить файл обычным способом | |
mouse click "my_file"; press Delete | |
wait "administrator permission" | |
mouse click "Continue" | |
# Даже с правами администратора - не получается | |
wait "Modification of the folder contents is blocked" | |
mouse click "Cancel" | |
# Подождем когда закроется окно с сообщением о блокировке | |
wait !"Modification of the folder contents is blocked" | |
#Теперь открываем FreeCommander | |
open_app("FreeCommander") | |
wait "Desktop - FreeCommander XE" | |
# Переходим в папку Protected | |
mouse dclick "Protected".from_left(0) | |
mouse click "my_file.txt" | |
# Удаляем файл my_file.txt | |
press Delete; mouse move 0 0 | |
# Ждём, когда файл исчезнет | |
wait !"my_file" | |
} | |
} | |
# Тест с добавлением нового пользователя | |
# Полагается на результат работы тесты dr_web_install | |
test win10_add_user: dr_web_install { | |
win10 { | |
#Открываем Управление Компьютером | |
open_app("Computer Management") | |
#Переходим в папку "Локальные пользователи" | |
mouse click "Local Users" | |
wait "Users" && "Groups" | |
#Запускаем создание нового пользователя | |
mouse rclick "Users".from_right(1) | |
mouse click "New User" | |
wait "User name" | |
# Создадим нового пользователя | |
type "MySuperUser" | |
mouse click "Create" | |
# Закроем окно добавления нового опльзователя | |
mouse click "Close" | |
wait !"User name" | |
# Закроем окно "Computer Management" | |
press LeftAlt+F4 | |
wait !"Computer Management" | |
# Переключаем пользователя | |
press LeftCtrl + LeftAlt + Delete | |
mouse click "Switch user" | |
mouse click "MySuperUser" | |
mouse click "Sign in".center_bottom() | |
# Стандартная инициализация | |
wait "The user's password must be changed" | |
mouse click "OK" | |
wait "New password" | |
type "1111"; press Tab; type "1111"; press Enter | |
wait "Your password has been changed"; mouse click "OK" | |
wait "Microsoft puts you in control" timeout 5m | |
mouse click "Accept".from_bottom(0).center_bottom() | |
# Рабочий стол нового пользователя | |
wait "Recycle Bin" | |
} | |
} | |
# Тест с проверкой родительсткого контроля для файла. | |
# Модификация файла должна требовать прав суперпользователя. | |
# Этот тест полагается на тест win10_add_user | |
# Все действия в этом тесте выполняются от имени нового пользователя | |
# MySuperUser, под которым мы залогинились в тесте win10_add_user | |
test dr_web_parental_control_file: win10_add_user { | |
win10 { | |
# Открываем "Проводник" и переходим в диск C | |
open_app("File Explorer") | |
wait "Frequent folders" | |
mouse click "This PC".from_left(0) | |
mouse dclick "Local Disk (C:)" | |
# Создаём новую "общую" папку | |
mouse rclick "Windows".move_down(20) | |
mouse move "New" | |
mouse click "Folder" | |
type "shared_folder"; press Enter | |
# Переходим в общую папку и создаём текстовый файл my_file.txt | |
mouse dclick "shared_folder" | |
mouse rclick "This folder is empty" | |
mouse move "New"; sleep 3s | |
mouse click "Text Document".from_top(1) | |
wait "New Text Document"; | |
press Backspace; type "my_file"; press Enter | |
# Откроем новый файл в блокноте и напишем в него надпись "Hello world!" | |
mouse dclick "my_file" | |
wait "my_file - Notepad" | |
type "Hello world!"; | |
abort "stop here" | |
# Сохраняем результаты, закрываем окно блокнота | |
press LeftCtrl + S, LeftAlt + F4 | |
wait !"my_file - Notepad" | |
# Открываем центр безопасности Dr. Web, | |
# Включаем режим изменений | |
open_app("Security Center") | |
wait "Computer is protected" | |
mouse click "Click to make changes" | |
wait "Do you want to allow" | |
# На этот раз нам нужно ввести пароль администратора | |
type "1111" | |
mouse click "Yes".from_bottom(0) | |
wait "Computer is protected" | |
# Переходим в меню родительского контроля | |
# и выбираем нового пользователя MySuperUser | |
mouse click "Parental Control" | |
mouse click "MySuperUser" | |
#Защищаем файл my_file.txt от модификации | |
# Пользователем MySuperUser | |
mouse click "Files and Folders" | |
mouse click "Object".from_bottom(0).left_top().move_up(30) | |
wait "Open file or folder" | |
mouse dclick "shared_folder".from_right(0) | |
mouse click "my_file.txt"; press Enter | |
wait !"Open file or folder" | |
wait "C:\\shared_folder\\my_file.txt" && "Read-only" | |
#Закрываем окно центра безопасности | |
press LeftAlt + F4 | |
wait !"Parental Control" | |
# Пробуем открыть файл my_file на чтение | |
mouse dclick "my_file" | |
# На чтение получилось | |
wait "Hello world!"; press LeftAlt + F4 | |
# Пробуем удалить файл | |
wait !"Hello world!"; press Delete; | |
# Видим сообщение о невозможности удалить файл | |
wait "File Access Denied"; mouse click "Continue" | |
mouse move 0 0 | |
#Попробуем удалить файл с правами администратора | |
wait "Do you want to allow"; type "1111"; mouse click "Yes" | |
# Всё получилось, файла больше нет | |
wait ("This folder is empty" || "Working on it") && !"my_file" | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment