Ответ
Да, тестировал push-уведомления многократно. Это критичная функциональность, и ее проверка включает несколько аспектов.
Что именно я проверяю:
- Доставка и отображение: Получает ли устройство уведомление при разных состояниях приложения (запущено, свернуто, закрыто). Проверяю текст, иконку, звук и вибрацию.
- Действие по тапу: Корректно ли уведомление открывает приложение и ведет на нужный экран (часто через deep link).
- Логика триггеров: Правильно ли уведомление отправляется в ответ на нужное событие бэкенда (например, новое сообщение, статус заказа).
- Группировка и управление: Как уведомления группируются (на iOS) и можно ли их очистить.
Пример автоматизации:
Для сложных сценариев, где нужно проверить отправку уведомления по расписанию или в ответ на событие, я писал скрипты, которые через API бэкенда инициировали отправку и затем проверяли результат на эмуляторе.
# Пример упрощенного скрипта для проверки (используя Appium и запрос к API)
import requests
from appium import webdriver
def test_scheduled_push():
# 1. Через API бэкенда запланировать отправку push
api_response = requests.post("https://api.example.com/send_push",
json={"userId": "test_user", "type": "reminder"})
assert api_response.status_code == 200
# 2. Подождать и проверить появление уведомления на эмуляторе
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
# ... код для открытия шторки уведомлений и проверки текста
Особое внимание уделяю пограничным случаям: отключение уведомлений в настройках, режим "Не беспокоить", отсутствие сети в момент отправки.