Сканирование QR кода на мобильном девайсе в автотестах (Appium)

Здравствуйте,

На проекте есть необходимость автоматизировать функционал по сканированию QR кода.

Пошагово:

  1. Нажатие кнопки “Scan”
    Приложение камеры открывается
  2. Сканирование QR -кода
  3. Значение из QR -кода вставляется в инпут

Приложение: мобильная гибридная аппликация
Тестирование реализовано через Appium (java)
Девайс: iOS (11.2.6), iPad

Насколько я понимаю, Appium не предоставляет средства работы с камерой и нужно использовать другие библиотеки.
Может кто-то решал похожую проблему и мог бы что-то посоветовать? Буду благодарна

Т.е. пока будет выполнятся код, ты должна будешь держать телефон, чтобы он считал QR код. А не легче считывание проверять руками, а вместо кода использовать заглушку для автоматизации? Так будет намного быстрее.

Я больше представляла этот процесс следующим образом:
сам QR код сохранить, как png-файл (или любой другой) и программно подставлять файл для считывания камерой (если такое вообще возможно:slightly_smiling_face:)

Как временное решение пока вижу только

  • проверку того, что камера открывается после нажатия необходимой кнопки
  • и отдельное распарсивание уже сохраненного файла с QR кодом посредством таких библиотек, как com.google.zxing и последующим сеттанием значения в инпут

Просто хотелось бы это сделать одним процессом и сетать значение кода посредством камеры, а не сторонней либы…:slight_smile:

Т.е. если я правильно понял:

  1. Ты проверяешь открытие камеры и все.
  2. Ты просто парсишь картинку, а не изображение с камеры напрямую и потом подставить значение с нее в инпут?

Так легче сделать как я описал выше, чем делать как ты.

  1. Ты просто открываешь камеру и все, ты не тестируешь получения кода с картинки на которой изображен QR код.
  2. Зачем парсить картинку, если можно сразу взять код и пусть себе тесты идут дальше.
  3. Когда приложение будут использовать пользователи они же не будут подставлять картинку программно под камеру.
2 лайка

В нас на проекті таку задачу реалізували наступним чином:

  1. написати генератор відеофайлів (відео складається з рухомої картинки QR коду)
  2. створили сервіс на localhost який стрімить відео (в цьому сервісі з коду підставляємо в рантаймі потрібну нам картинку-відео)
  3. Натравили віртуальну веб камеру на наш сервіс (ManyCam платна версія)
    більше деталей тут:
    java - How to make virtual video port, direct it to avd emulator and play video file on it? - Stack Overflow
1 лайк