Метод Python: выполнить несколько IP-адресов в одном модульном тесте?Лучшая практика? - PullRequest
0 голосов
/ 29 сентября 2018

Подробности

Для большего юнит-теста мне нужен метод в Python, который позволяет серверам / коммутаторам / маршрутизаторам вызывать IP-адреса и отвечать соответствующим образом на тест.

Myмысли на этот счет:

  • Считывание IP-адресов из файла CSV

  • Создайте файл конфигурации, в который я буду вводить все соответствующие данные.

Настройка

import testcore
from testcore.control.ssh import SSH
import unittest
from test import support
import logging
import os

Тестовая настройка

    def setUp(self):

    self.s = testcore.control.ssh.SSH(host='172.23.56.xxx',
                                  username='admin', password='admin', type_of_dut='ecos')
    logger.info('self.s = testcore.control.ssh.SSH')
    self.s.query_interactive=True


    if self.s.login():
        logger.info('login')
        q = self.s.query('account')
        logger.info('account')
        self.assertIsNotNone(q, 'missing answer')
        self.assertEqual('\r\n', q, 'unexpected result')
        logger.info('missing answer')
        logger.info('unexpected result')

        # switch to prompt account

        q=self.s.query('enforce-Password-Rules yes')
        logger.info('enforce-Password-Rules yes')
        q=self.s.query('exit')
        logger.info('exit')

        def tearDown(self):
        self.s.close()

Так что мне нужно:

Как я могу написать метод на Python, который позволяет мне запускать несколько IP-адресов для моего теста?

Стоит ли это скрипт конфигурации?

В этом примере вы увидите тест, который я выполняю.

def test_create_ntp_external1(self):
    logger_true.info('test_create_ntp_external1')
    if self.s.loggedin:
        logger.info('self.s.loggedin')
        q = self.s.query('time')
        logger.info('time')
        self.assertIsNotNone(q, 'missing answer')
        self.assertEqual('\r\n', q, 'unexpected result')
        logger.info('missing answer')
        logger.info('unexpected result')

        # switch to prompt account

        q = self.s.query('ntp 1 2610:20:6F15:15::27')
        logger.info('ntp 1 2610:20:6F15:15::27')
        print(q)
        q = self.s.query('exit')
        self.assertIsNotNone(q, 'missing answer')
        self.assertEqual('\r\n', q, 'unexpected result')
        logger.info('missing answer')
        logger.info('unexpected result')

        q = self.s.query('logout')
        logger.info('logout')

        import time
        print('Wait')
        time.sleep(2)
        print('True')
        logger_true.info('True')

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

...