Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/curiousdenis/docker_tests

Тестирование виджета (собес)
https://github.com/curiousdenis/docker_tests

docker interview-test oop-principles page-object-model playwright pytest python

Last synced: about 2 months ago
JSON representation

Тестирование виджета (собес)

Awesome Lists containing this project

README

        

## Задание
https://docs.google.com/document/d/1GKvzuQcRVdCYVpS90vg_Oi2Syk-m1qkJmr8RpU4alIw/edit?tab=t.0

## Что надо было сделать:
1. Написать checklist.txt
2. 5-7 авто тестов (Frontend, Backend):
- Frontend: Playwright
- Backend: no frameworks
4. Все тесты должны быть асинхронными - asyncio
5. Придерживаться паттерна Page Object, и принципам ООП
6. Тест должы быть упакованы в докер контейнер
- Результат работы контейнера : запуск тестов с отчетом в allure
- По упавшим отчетам: должен быть скриншот и видео (несколько отчетов должны намерено упасть)

## Что было выполнено:
- [x] Написать checklist.txt (см. файл в репе)
- [x] 5-7 авто тестов
/tests.py
```
test_positive_user_first_attempt
test_positive_user_prompt
test_after_reload_test_not_disappear
test_widget_closing
test_buttons_to_be_clickable_that_will_fail
test_benchmark_for_menu
test_benchmark_for_price
```
- [ ] Тесты асинхронные
- [x] Придерживаться паттерна Page Object, и принципам ООП
- [ ] Тест должы быть упакованы в докер контейнер

### test_positive_user_first_attempt
1. По клику на иконку открывается виджет
2. В форме юзер вводит свои (валидные) почту и имя
3. Нажимает на Отправить
4. Проверяется, что форма пропадает - появляется приветственный текст

### test_positive_user_prompt
1. По клику на иконку открывается виджет
2. Пользователь вводет в промпт "Цены"
3. Проверяется, что пользователь получил ответ в течение 60 секунд
4. В диалоговом окне, проверяется статус у сообщений (положительный статус), дата отправки, имя, и наличие/отсутствие аватара (картинки)

### test_after_reload_test_not_disappear
1. По клику на иконку открывается виджет
2. Пользователь вводит в промпт "Цены"
3. Проверяется, что пользователь получил ответ в течение 60 секунд
4. Перезагружаем страницу
5. По клику на иконку открывается виджет
6. После перезагрузки текст не пропал, ответ и текст пользователя остались на месте

### test_widget_closing
1. По клику на иконку открывается виджет
2. При повторном нажатии на иконку, диалог закрывается
3. При повторном опять, открывается
4. При нажатии на крестик в виджете, то он закрывается

### test_buttons_to_be_clickable_that_will_fail
1. По клику на иконку открывается виджет
2. Пользователь вводит в промпт "Меню"
3. Проверяется, что пользователь получил ответ в течение 60 секунд
4. Пользователь вводит в промпт "Меню"
5. Проверяется, что пользователь получил ответ в течение 60 секунд
6. Проверяется, что ссылки "не кликабельные" в 1ом сообщении (пункт 2)

### test_benchmark_for_menu / test_benchmark_for_price
1. Предположим, что хотим узнать среднюю скорость ответов на основные запросы Меню и Цены
2. Создаем бэнчмарк, который расскажет нам среднюю скорость (медиану, мин, макс) с которой виджет выдаст ответ на данные запросы

## Что помешало выполнить задание:
Недостаточно времени и в каких-то моментах компетенции

## Как запустить автотесты через github
1. В репе = https://github.com/curiousdenis/docker_tests переходим в Actions -> Automated tests -> Run workflow
2. По окончания выполнения тестов -> Settings -> Pages -> По ссылке переходим на генерацию отчета в allure = https://curiousdenis.github.io/docker_tests/