Skip to content

Latest commit

 

History

History
36 lines (29 loc) · 7.23 KB

File metadata and controls

36 lines (29 loc) · 7.23 KB

Окружение и запуск

Для написания автотестов использовал Python версии 3.13.0, все зависимости в requirements.txt. Рекомендуется запускать командой pytest -s --html=pytest_report.html (-s - для более детального вывода в консоль, --html - для генерации html репорта). Для запуска используется конфиг, путь к которому можно указать в параметрах запуска pytest --config=<PATH>, по умолчанию, берется конфиг из корневой папки config.json.

Есть возможность сгенерировать более читаемый репорт, для простоты использовал pytest-html. Пример уже готового репорта в pytest-report.html (папка assets тоже относится к репорту).

Задание 1. BalancesXML (main.exe)

Важно: нужно заполнить путь к сформированному Balances.xml по пути в конфиге balances_xml.path, а также, для того чтобы автотесты корректно считали поля из окна приложения "Зачислено" и "Списано", и разницу из "Осталось", заполнить поля конфига application_amounts: debit_total для Зачислено, credit_total для Списано и difference для Осталось, т.к. взять эти данные из .exe-файла автоматически думаю не входит в список задач.

Опишу кратко структуру автотестов: написаны в файле test_balance.py - логически разделены на 2 группы: 1-ая проверяет структуру XML файла и выводит ошибки по нему; 2-ая проверяет бизнес логику операций, например что не происходит дебета или кредита самого себя, проверка валидности сумм и т.д.

Баги, ошибки

Много ошибок по описанию и формированию XML-файла:

  1. "Документ состоит из Узла Balance": в документе ошибка Ballance
  2. " и его детей Operation": в документе все дети находятся в нодах Oper
  3. "-date": в документе ошибка data во всех элементах
  4. "dbt или cdt": должен быть только 1 аттрибут из указанных, но в некоторых нодах оба.
  5. "corAcc": должен быть аттрибутом, но в некоторых нодах является подэлементом.
  6. Вышеуказанные проверки написаны в автотестах, касающихся XML-части, также автотесты проверяют бизнес логику, и найдены следующие проблемы: некоторые операции в качестве корреспондирующего счета указывают изначальный счет; разные даты в операциях, хотя насколько я понимаю, дата должна быть одна; и сумма выполненных операций не сходится с указанной в окне - ни дебетовая, ни кредитовая, ни итоговая разница.
  7. Ошибка в окне приложения "Итогог"

Задание 2. PacketEPD (testqawin.exe)

Автотесты написаны написаны в файле test_epd.py.

Баги, ошибки

  1. По требования пункта 1 почти все работает как указано (правда функционал приложения открывается и без введения корректного ключа активации, а случайного текста - но в реализации не сказано, что ДОЛЖНО работать только с реальным ключом - тут немного непонятно). Найдена ошибка, при которой после ввода ключа активации не отображается модальное окно с подтверждением успешности ввода («Успешно!»).
  2. Шаги пункта 2 полностью автоматизированы и проверяются автотестами. Выявлены баги в данных: например в 17-ом элементе BICDirectoryEntry отсутствует элемент Accounts: <BICDirectoryEntry BIC="047003001"><ParticipantInfo NameP="ОТДЕЛЕНИЕ ТУЛА БАНКА РОССИИ" Rgn="70" Ind="300000" Tnp="г" Nnp="Тула" Adr="ул Советская, зд. 88, к. 1" PrntBIC="044525000" DateIn="1994-01-20" PtType="12" Srvcs="3" XchType="1" UID="7003001000" ParticipantStatus="PSAC"></ParticipantInfo></BICDirectoryEntry> Также по логике кол-во тегов BICDirectoryEntry должно быть в 2 раза больше, чем сформированных в PacketEDP тегов ED101, т.к. на каждого получателя и отправителя приходится по оддному тегу BICDirectoryEntry (для заполнения), но это количество было больше чем в 2 раза. Также после определенного количества (у меня вышло 9) большинство полей, указанных в пункте 2 начинают заполняться неверно из-за несоответсвия полей.
  3. Не совпало количество пакетов ED101 и их сумма, указанных в окне Import -> PacketEDP, с данными, посчитанными в автотесте, сумму отличается почти в 2 раза, количество на 1 меньше. Если пытаться делать импорт без PacketEPD.xml в директории, то выходит окно с корректной ошибкой.
  4. Экспорт в csv работает корректно: имя верное, и в окне удачного экспорта указано верное кол-во записей, не уменьшенное.
  5. Экспорт в json работает некорректно: экспорт происходит в файл PacketEPD.json вместо ED101.json, но количество записей тоже верное.
  6. Пункт меню "Выход" реализован не так, как ожидалось: находится не отдельно в меню, а в пункте "Convert" и на другом языке.
  7. Время в окне не соответствует текущему, если оно конечно должно.