Skip to content

LicBoy/CBR_test_task

Repository files navigation

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

Для написания автотестов использовал 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. Время в окне не соответствует текущему, если оно конечно должно.

About

My implementation of test task for Central Bank of Russia QA Automation Engineer position.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published