Меню
Разработки
Разработки  /  Информатика  /  Практикумы  /  Прочее  /  Разработка тестовых сценариев на Python

Разработка тестовых сценариев на Python

Практическая работа позволяет студентам познакомиться с возможностями виртуализации на базе платформы VMware Workstation, познакомиться с сетевым оборудованием MikroTik, отечественными операционными системами Alt Workstation и Alt Server в контексте удалённого взаимодействия через язык программирования Python.
27.12.2024

Содержимое разработки

РАЗРАБОТКА ТЕСТОВЫХ СЦЕНАРИЕВ НА PYTHON

Цель: разработать тестовые сценарии, которые будут выполняться на виртуальных машинах с помощью протокола SSH.


Сценарии тестирования используются в процессе разработки программного обеспечения для проверки и валидации функциональности, производительности и надежности приложения. Они помогают убедиться, что программа работает так, как задумано, и выполняет все заявленные функции, что является основным аспектом обеспечения качества.

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

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

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

Для выполнения задания понадобятся следующие образы операционных систем:

  • RouterOS;

  • Alt Workstation;

  • Alt Server.

Установка RouterOS в VMware Workstation. Прежде, чем устанавливать и настраивать виртуальные машины, необходимо создать папку для нашего «тестового» стенда: ниже списка с виртуальными машинами необходимо нажать ПКМ и выбрать пункт «New Folder». Папка должна называться «TestScript».

Создание виртуальной машины RouterOS:

После этого в рабочей области появится новая виртуальная машина с названием ISP:

После этого «ОК». Должны стать так:

Создание виртуальной машины Alt Server:

Создание виртуальной машины Alt Workstation:

Виртуальные машины созданы. Теперь необходимо каждую из них установить.

ISP:

После того, как нажали «i», необходимо написать «y» и нажать «Enter». Начнётся процесс установки. После установки необходимо повторно нажать «Enter», чтобы устройство перезагрузилось.

Логин «admin», пароль – отсутствует. Просто, после ввода логина, нужно нажать «Enter». После написать «n», нажать «Enter» и через несколько секунд ещё раз «Enter». Попросит новый пароль: введите дважды P@ssword.

Операционная система RouterOS установлена и готова к работе.

AltServer:

После перезагрузки запустится ОС в минимальной комплектации (без интерфейса):

AltWorkstation:

После перезагрузки запустится ОС:

После авторизации («P@ssw0rd»):


Чтобы выполнить тестирование с помощью Python, необходимо настроить основные параметры для подключения к виртуальным машинам. На ISP необходимо настроить DHCP Client, чтобы роутер мог получить IP-адрес со стороны NAT-соединения.

Проверяем отсутствие IP-адреса:

Создаём DHCP Client и убеждаемся, что всё сработало:

Переходим в PyCharm и создаём файл «test_script.py». Необходимо дополнительно установить модуль, с помощью которого будет осуществляться взаимодействие с RouterOS: «pip install routeros_api».

Код для подключения к ISP и вывода информации об интерфейсах:

from routeros_api import RouterOsApiPool


if __name__ == '__main__':

routeros_api = RouterOsApiPool(

host='10.0.0.106',

username='admin',

password='P@ssw0rd',

port=8728,

plaintext_login=True,

)

api = routeros_api.get_api()


try:

result = api.get_resource('/ip/address').get()


for item in result:

print(item)


except Exception as err:

print(f'[!] Ошибка: {err}')


finally:

routeros_api.disconnect()

IP-адрес хоста должен соответствовать тому адресу, который выводится при выполнении команды «ip/address/print».

Вывод кода:

{'id': '*1', 'address': '10.0.0.106/24', 'network': '10.0.0.0', 'interface': 'ether1', 'actual-interface': 'ether1', 'invalid': 'false', 'dynamic': 'true', 'slave': 'false', 'disabled': 'false'}


Настройка NAT на ISP, чтобы виртуальные машины – AltServer и AltWorkstation могли свободны выходить в Интернет:

Настройка шлюзов (интерфейсов) для виртуальных машин:


Обратите внимание, что все действия на AltServer и AltWorkstation выполняются с повышенными привилегиями (из-под «root»). Чтобы выполнять команды из-под «root», необходимо в командной строке AltServer и AltWorkstation выполнить команду: «su -» и ввести пароль «P@ssw0rd».


AltServer:

Проверяем возможность выхода в Интернет:

AltWorkstation:

Esc + Да:

Проверяем возможность выхода в Интернет:

После настройка соединения с Интернет, необходимо на AltServer и AltWorkstation настроить возможность подключения по SSH.

AltServer:

Esc + Да:

После того, как убедились в возможности подключаться по SSH, отключаемся с помощью команды «Ctrl + D»:


AltWorkstation:

Esc + Да:

После того, как убедились в возможности подключаться по SSH, отключаемся с помощью команды «Ctrl + D»:

Чтобы можно было подключаться к виртуальным машинам AltServer и AltWorkstation, необходимо настроить проброс портов на ISP:

Проверка из хостовой ОС Windows:

Как видно, всё работает.

Теперь можно написать Python-скрипт, который будет выполнять подключение к AltServer или AltWorkstation. Перед этим необходимо установить модуль «paramiko»: «pip install paramiko».

Дорабатываем программу:

import paramiko

from routeros_api import RouterOsApiPool



def isp():

routeros_api = RouterOsApiPool(

host='10.0.0.106',

username='admin',

password='P@ssw0rd',

port=8728,

plaintext_login=True,

)

api = routeros_api.get_api()


try:

result = api.get_resource('/ip/address').get()


for item in result:

print(item)


except Exception as err:

print(f'[!] Ошибка: {err}')


finally:

routeros_api.disconnect()



def alt_server():

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(hostname='10.0.0.106', port=2210, username='root', password='P@ssw0rd')


stdin, stdout, stderr = ssh.exec_command('ip -c --br a')


print(stdout.read().decode())

print(stderr.read().decode())


ssh.close()



if __name__ == '__main__':

#isp()

alt_server()

IP-адрес хоста должен соответствовать тому адресу, который выводится при выполнении команды «ip -c --br a».

Вывод в консоли:

Добавляем к коду подключение к AltWorkstation:

import paramiko

from routeros_api import RouterOsApiPool



def isp():

routeros_api = RouterOsApiPool(

host='10.0.0.106',

username='admin',

password='P@ssw0rd',

port=8728,

plaintext_login=True,

)

api = routeros_api.get_api()


try:

result = api.get_resource('/ip/address').get()


for item in result:

print(item)


except Exception as err:

print(f'[!] Ошибка: {err}')


finally:

routeros_api.disconnect()



def alt_server():

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(hostname='10.0.0.106', port=2210, username='root', password='P@ssw0rd')


stdin, stdout, stderr = ssh.exec_command('ip -c --br a')


print(stdout.read().decode())

print(stderr.read().decode())


ssh.close()



def alt_workstation():

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(hostname='10.0.0.106', port=2220, username='root', password='P@ssw0rd')


stdin, stdout, stderr = ssh.exec_command('ip -c --br a')


print(stdout.read().decode())

print(stderr.read().decode())


ssh.close()



if __name__ == '__main__':

#isp()

#alt_server()

alt_workstation()

IP-адрес хоста должен соответствовать тому адресу, который выводится при выполнении команды «ip -c --br a».

Вывод в консоли:

Суммарный вывод всех функций:

Базовое взаимодействие через Python со всеми участниками виртуальной сети установлена.

Практическая работа

Доработайте данную программу, чтобы можно было выполнять дополнительные действия внутри виртуальной сети на виртуальных машинах:

  • получение полной конфигурации ISP;

  • тестирование связности между устройствами AltServer и AltWorkstation;

  • получение логов с ISP;

  • выполнение резервного копирования конфигурации ISP на основную (хостовую) машину;

  • проверка состояния служб на AltServer;

  • автоматическое обновление пакетов на AltServer/AltWorkstation;

  • мониторинг дискового пространства на AltServer/AltWorkstation;

  • проверка доступности определённых портов с помощью стандартного модуля Python «socket»;

  • создание пользователей на AltServer/AltWorkstation;

  • разработка интерактивной среды для последовательного выполнения команд на виртуальных машинах.










-80%
Курсы повышения квалификации

Методика преподавания информатики в начальной школе в соответствии с ФГОС НОО

Продолжительность 72 часа
Документ: Удостоверение о повышении квалификации
4000 руб.
800 руб.
Подробнее
Скачать разработку
Сохранить у себя:
Разработка тестовых сценариев на Python (4.73 MB)

Комментарии 0

Чтобы добавить комментарий зарегистрируйтесь или на сайт