Настроить
Я использую следующие пакеты в дополнение к Python 3.7: Testcore (специальный пакет с paramiko внутри!), Pyserial
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.xx.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()
Информация:
В моей структуре накладываются различные пользователи на аппаратный коммутатор. Во втором тесте я проверяю, может ли вновь созданный пользователь войти в систему.
Согласно журналу, он также может войти в систему, который также регистрируется соответствующим образом.
В моей структуре не действует то, что должно произойти, если тестовый пример не срабатывает, на самом деле тестовый пример не должен регистрироваться, когда он войдет в систему, поскольку он не может подключиться. К сожалению, он пишет это только в журнале, и тестовый пример все еще положительный.
Создать пользователя
def test_create_user_1(self):
logger_true.info('test_create_user_1')
if self.s.loggedin:
logger.info('self.s.loggedin')
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('add 1 testuser_P1 testuser_P1')
logger.info('add 1 testuser_P1 testuser_P1')
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')
self.s.close()
Пользователь явно создан (если посмотреть на команду "Переключить команду" Показать список пользователей). Пока что все положительно, и этот тестовый пример передан.
На следующем шаге я хочу сделать логин, который проверяет, может ли пользователь войти в запрос.
Проблема:
Если я удалю пароль для отрицательного теста из SSH-соединения на self.s = testcore.control.ssh.SSH(host = '172.xx.xx.xxx', username = 'testuser_P1', password = 'testuser_P1'), тест будет проходить в любом случае. Поэтому тест не показан как отрицательный.
Любая идея исправить это?
Проблема была исправлена мной. Я закончил
self.s.login() self.assertEqual(self.s.loggedin, False)
В соответствии с утверждением я не регистрируюсь как ложный. Это регистрируется через другой файл журнала.
def test_try_login2(self):
logger_true.info('test_try_login1')
self.s.close()
self.s = testcore.control.ssh.SSH(host='172.23.xxx.xxx',username='testuser_P2', password='testuser_P2')
self.s.query_interactive = True
self.s.login()
self.assertEqual(self.s.loggedin, False)
print('True')
logger_true.info('True')
self.s.close()