Авито скрыл номер телефона ЧТО ДЕЛАТЬ?
Я регулярно работаю с доской объявлений Авито и не перестаю удивляться тому, как часто они меняют свой сайт.
Но не все фишки нравятся – так и с услугой защиты номера. Как это работает и зачем это нужно и как отключить? Читайте далее.
Защита номера – зачем это надо?
В последние годы я и сам замечал такую интересную вещь – живёшь себе спокойно, никого не трогаешь, тебя тоже никто не трогает. Никто тебе не звонит и ничего не предлагает. Пока никто не знает твой номер – тебя не беспокоят:
- Агенты
- Банки
- Менеджеры по продажам
- Спамеры
- Помогаторы
- Сборщики информации для баз данных
Но вся эта лафа кончается с того момента, как только ты подаёшь какое-то объявление через Авито.
Сразу начинаются звонки, ты берёшь трубку в надежде, что это твой любимый покупатель решил посмотреть твою курточку, которую ты
- «один раз померил»
- и которая «не подошла по размеру»,
а не тут-то было!
Сначала на той стороне трубки идёт переключение телефонных линий (что доказывает, что переключают с помощью робота-дозвонщика) и через 5-10 секунд к разговору подключается приветливый, но назойливый голос.
Этот голос совсем не интересует ваша куртка (или что вы там ещё продаёте). Ему (голосу) главное – успеть за первую минуту, пока вы не готовы бросить трубку, вылить на вас ведро спама и ещё умудриться зацепить вас за святое, чтобы пригласить вас в свою клинику, на распродажу или куда-то ещё.
Короче говоря, спам – он и в Африке спам. И если вас реально бесят такие звонки и вы не готовы к их предложениям, то вариант защиты номера телефона вам как раз кстати.
Ещё по теме:
- На Авито теперь можно писать отзывы
- Как быстрее продавать на Avito
Сокрытие номера – как это работает
Фишку с режимом защиты номера от спамеров Авито разработали относительно недавно. Работает это всё предельно просто. Вместо вашего настоящего номера телефона на доске объявлений будет фэйковый номер от системы Авито. Именно его будут видеть спамеры.
Вот что предлагает Avito:
- Звонки от покупателей будут автоматически переадресованы на ваш обычный номер.
- Пользователи не смогут отправлять вам смс и писать в Viber, WhatsApp и другие мессенджеры.
- Сообщения на Авито будут приходить как и раньше.
На этапе подачи объявления вы можете выбрать это пункт:
Подключение защиты номера АвитоКак отключить подмену номера Авито
Если вам захочется вернуть всё назад – вы легко сможете это сделать, отредактировав настройки или при подаче объявления отменив галочку напротив пункта о «защищенном номере».
Однако в последнее время пользователи жалуются, что не могут выключить эту функцию — и вот что пишет Авито:
как убрать подмену номера на АвитоОднако есть ещё один интересный вариант для защиты.
Альтернативный способ спрятать номер на Авито
Про этот вариант не все в курсе, однако он уже встречается и особо продвинутые юзеры им активно пользуются. Ведь, что ни говори, а предыдущий метод защиты номера – это использование переадресации от мобильных операторов и доверия им не всегда достаточно.
По тому же закону Яровой они обязаны собирать и хранить все наши телефонные разговоры. А не всем этого хочется – итак государство о нас знает почти всё!
Здесь вы можете узнать: кто следит за вами через телефон.
Короче, есть более простой способ защитить свой номер на доске объявлений – для связи оставлять только сообщения Авито:
Выбор способа связи на АвитоПодключается эта фича достаточно просто – всё там же на этапе подачи объявления выбираете соответствующий пункт для способа связи:
- По телефону и в сообщениях
- По телефону
- В сообщениях
Если не хотите светить своим номером – смело жмите напротив пункта «в сообщениях» и тогда для связи с вами потенциальные покупатели будут предварительно писать вам текстовые вопросы в личку. А уже там вы сможете дать свой номер тем, кому вы пожелаете сами.
Однако не для всех категорий пока эта фишка доступна. Например в разделе «недвижимость» нельзя выбрать этот пункт.
А как вам эта функция подмены номера телефона? Давайте обсуждать в комментах.
Как разблокировать аккаунт на Авито, причины бана
С проблемой блокировки профиля на Авито сталкиваются как новички, так и продавцы со стажем. Рассказываем, с чем это может быть связано и как нужно действовать, чтобы разблокировать профиль пользователя.
Авито заботится о своей репутации и доверии к сервису со стороны пользователей. И с ними стремится выстраивать такие же взаимоотношения, поэтому пресекает любые попытки нарушить правила — например, опубликовать несколько объявлений с разных аккаунтов, чтобы получить конкурентное преимущество.
Профили здесь обычно блокируют если система распознала нарушение, или в результате проверки, если на продавца пожаловались.
Получайте до 8% от оборота клиентов на Авито
Продвигайте клиентов на Авито и возвращайте до 8% от их оборотов на площадке. Только для участников партнерской программы eLama
Узнать больше
Причины блокировки профиля
Аккаунт могут заблокировать, если будет допущено любое из семи нарушений. Причем это может быть бан без возможности восстановления — здесь все индивидуально, выяснять свои перспективы придется у техподдержки Авито.
Размещение похожих товаров с разных аккаунтов
С двух разных профилей на Авито можно размещать разные товары, например, детскую одежду и бытовую технику. Если с обоих опубликовать объявления о продаже детской одежды — администрация сервиса может отреагировать блокировкой, потому что это создает нечестную конкуренцию и может ввести в заблуждение покупателей.
Правило не касается вакансий в разных регионах, а также объявлений о продаже или аренде недвижимости, когда объявления могут публиковать и собственник, и агентство. Подробнее об этом написано в п.5 Требований к размещению и содержанию объявлений.
Повторная публикация объявлений
Если разместить на Авито предложение о продаже, например, детского комбинезона, а спустя время продублировать его — можно лишиться аккаунта. Причем даже если предыдущее отредактировать, снять с публикации или удалить.
Недостоверная информация
Аккаунт блокируется, если в объявление о продаже товара добавлены фото из интернета, товар недоступен или его характеристики отличаются от указанных.
А еще если условия сделки подразумевают дополнительные комиссии — например, при покупке автомобиля нужно будет заплатить комиссию посреднику.
Предложение подозрительной сделки
Администрация пресекает любые попытки обмана с обеих сторон сделки. Например, когда продавец получил предоплату, но не отправил товар. Или когда покупатель попытался выведать личные данные продавца.
Будьте осторожнее в переписке с покупателями: за отправку в личные сообщения изображения с различимым qr-кодом — например, фото товара, у которого он есть на упаковке — можно получить бан без возможности восстановления.
Запрещенные товары или услуги в объявлениях
На Авито нельзя предлагать медицинские услуги, кроме косметологических, лекарства, табак и алкоголь, финансовые услуги, контрафакт, диссертации и курсовые и так далее — всего в списке больше 40 категорий и тематик.
Массовая рассылка сообщений
Чтобы защитить пользователей от спама, Авито блокирует продавцов, которые рекламируют свои предложения, рассылая множество одинаковых или однотипных сообщений.
Объявления, нарушающие правила Авито
Блокировка возможна, если размещенное в профиле объявление опубликовано не в той категории. Всего их пять: Товары, Услуги, Транспорт, Недвижимость, Работа.
Аккаунт окажется под угрозой, если вы хотите не продать что-то, а купить, принять в дар, найти или заказать. Исключения — предложения о покупке в категории «Недвижимость» и поиск сотрудников или вакансий в категории «Работа». Объявления о сборе материальной помощи, знакомствах, находках и потерях — также против правил сервиса.
Кроме того, в публикациях не должно быть нецензурной лексики, рекламы сторонних сайтов и злоупотребления словами, привлекающими внимание — вроде «СРОЧНО» или «ДЕШЕВО».
Авито подходит к проверке аккаунтов крайне внимательно и чаще всего блокирует их за реальные нарушения. Если ваш профиль подпал под блокировку, а конкурент размещается сходным образом и не имеет таких проблем — значит, его нарушения пока еще не выявили, и это дело времени. Восстановить справедливость можно, отправив жалобу в техподдержку.
Как защититься от блокировки профиля
Чтобы застраховать свой аккаунт от попадания в бан, достаточно соблюдать требования к объявлениям и правила сервиса, а также элементарные меры безопасности.
- Выберите надежный пароль из редкой комбинации латинских букв, цифр и символов. Не используйте один и тот же пароль на разных ресурсах. Так вы защититесь от взлома, за которым последует блокировка.
- Постарайтесь заходить в кабинет Авито с одного и того же устройства и не использовать его с двух устройств одновременно — система может посчитать это подозрительной активностью.
- Публикуйте объявления для продаж в одной категории с одного аккаунта.
- Добавляйте собственные достоверные фото товара.
- Описывайте реальные характеристики товаров и услуг.
- Используйте чат для обсуждения сделок, а не для рассылки рекламы.
Как разблокировать аккаунт
Если вы все же попали в бан, первым делом изучите сообщение о блокировке. В нем обычно указывается причина — например, несколько аккаунтов в одной категории.
Или обман в публикациях.
Если под описанием причины вы видите кнопку «Пройти проверку» — значит, доступ к профилю можно вернуть, предоставив документы.
Нажмите на кнопку, следуйте инструкции и ждите на почту письма от техподдержки. Если такой кнопки нет — восстановить профиль, увы, не получится.
Единственное исключение — блокировка за подозрительную активность: по ошибке или из-за взлома аккаунта. В этом случае нужно писать в Помощь на почту [email protected] с контактного email, либо на сайте — по прямой ссылке или через пункт в верхнем меню.
Выбирайте в доступных вариантах помощи «Профиль заблокирован» — и вам помогут восстановить доступ.
Если вы ведете кампании в Авито через eLama, наша Служба Заботы поможет вам в общении с поддержкой — например, когда вам долго не отвечают или ответ не понятен.
Что делать, если заблокировали только что созданный аккаунт
Случается, что у нового продавца аккаунт блокируется автоматически. Решить проблему можно, подтвердив свою личность одним из двух способов (выбрать между ними нельзя):
- С помощью паспорта. Один паспорт можно использовать только для одного аккаунта. Если ваши паспортные данные когда-то уже были указаны для подтверждения на Авито, сделать это повторно не получится. Для подтверждения в аккаунте юридического лица можно использовать паспорт любого из сотрудников.
- Покрутив головой на камеру. Во второй раз подтверждение одним и тем же человеком может не сработать, так что здесь тоже лучше задействовать разных сотрудников.
Экономьте деньги на приложениях для Android и iPhone
Выйти
Популярные купоны
Последние обзоры приложений
- НОВОСТИ: AppGrooves запускает первую услугу по экономии денег для пользователей приложений
- Приложения могут воплотить ваши мечты о видеоблогерах в реальность
- Винный погреб 101: как собрать и сохранить свою коллекцию
- Как победить растительную пищу
- Новый и улучшенный инструмент сравнения AppGrooves
- Обновите свой гардероб — из дома и со смартфона
- Как нахлыст может расслабить разум
- Как приложения повышают опыт кулинарного мастер-класса
- Вот способы, которые помогут вам создать счастливую перспективу
- Лучшие способы позаботиться о стареющих родителях
Посмотреть все
Наборы приложений по жизненным целям
Забыли пароль?
Введите адрес электронной почты, связанный с вашей учетной записью, и мы отправим вам ссылку для сброса пароля
Скидка до 90% на Приложения и игры
Зарегистрируйте бесплатную учетную запись, чтобы получить специальные купоны
Зарегистрируйтесь, чтобы сохранить Лучший Контент
Создайте бесплатную учетную запись для полного Опыт AppGrooves
Зарегистрируйтесь, чтобы поделиться своими Рекомендация
Создайте бесплатную учетную запись для полного Опыт AppGrooves
Зарегистрируйтесь, чтобы поделиться своими Обзор
Создайте бесплатную учетную запись для полного Опыт AppGrooves
Присоединяйтесь к Grooviest Сообщество
Создайте бесплатную учетную запись для полного AppGrooves опыт
Зарегистрируйтесь, чтобы сохранить это App
Создайте бесплатную учетную запись, чтобы получать новые купоны для ваших любимых приложений каждую неделю.
- Зарегистрироваться
- Войти
или продолжить с
Мы никогда никогда не будем передавать или продавать ваши данные третьим лицам. Вы можете отказаться в любое время.
Условия Сервис | Конфиденциальность Политика
Заполните свой профиль
Завершите настройку своей учетной записи для полного использования AppGrooves
Мы никогда никогда не будем передавать или продавать ваши данные третьим лицам. Вы можете отказаться в любое время.
Условия Сервис | Конфиденциальность Политика
Успехов!
Проверьте свой почтовый ящик на наличие специального приветственного подарка!
Настройте свой опыт
Меня интересует…
Выбрать все Убрать выделение со всего
Вы можете обновить свои настройки позже
ОТПРАВИТЬ МНЕ КУПОНЫ НА…
iOS Андроид
Пожалуйста, выберите ОС
Проверьте свою электронную почту, чтобы получить свои первые предложения AppGrooves.
Спешите! Истекает через:
24 Часы
00 Минуты
00 Секунды
Перейти на вашу электронную почту
Все еще ищете другие игры?
Подпишитесь, чтобы получать обзоры, советы и похожие рекомендации по играм!
Все еще ищете самые надежные приложения?
Подпишитесь, чтобы получать обзоры, рекомендации и многое другое с помощью AppGrooves!
- Зарегистрироваться
- Войти
или продолжить с
Мы никогда никогда не будем передавать или продавать ваши данные третьим лицам. Вы можете отказаться в любое время.
Условия Сервис | Конфиденциальность Политика
Загрузка…
Зарегистрируйтесь, чтобы опубликовать свой отзыв!
И получайте рекомендации похожих приложений, которые стоят вашего времени.
- Зарегистрироваться
- Войти
или продолжить с
Мы никогда никогда не будем передавать или продавать ваши данные третьим лицам. Вы можете отказаться в любое время.
Условия Сервис | Конфиденциальность Полис
Проверьте свою электронную почту и сэкономьте на популярных приложениях уже сегодня!
Спешите! Истекает через:
24 Часы
00 Минуты
00 Секунды
Перейти на вашу электронную почту
{Название трека}
{formattedPrice}Загрузка…
Бесплатные купоны
Kaspresso: платформа автотестирования, которую вы так долго ждали. Часть I | Евгений Мацюк
Мир меняется с невероятной скоростью. Самый ценный и важный ресурс сейчас – это Время. Успех принадлежит тем, кто умеет лучше управлять временем.
Что означает время в разработке продукта? Вы должны выпустить свои функции как можно скорее, то есть улучшить показатель времени выхода на рынок. Я уверен, что вы слышали этот термин, но позвольте мне напомнить вам, что это такое. Время выхода на рынок — это время, в течение которого команда разрабатывает функцию из идеи и доставляет ее конечным пользователям.
Как сократить время выхода на рынок? Есть много разных вариантов, и один из них — сократить время, затрачиваемое на ручные регресс-тесты. Итак, как сократить время до релиза? Да, просто автоматизируйте тестирование.
Так просто сказать «Автоматическое тестирование». Но как начать?
Первое препятствие, с которым вы столкнетесь, это выбор инструмента.
Вы видите много разных фреймворков и инструментов для автотестов. В настоящее время основная битва идет между Appium и Espresso.
Сравнение таких инструментов посвящено большому количеству докладов и статей, которые вы можете прочитать в свободное время. Короче говоря, Espresso лучше из-за следующих особенностей:
- Это родной инструмент. Гугл рекомендует.
- Эспрессо стабильнее и быстрее, чем Appium. Это утверждение обосновано отсутствием промежуточных слоев в эспрессо.
- Эспрессо удобнее для разработчиков. Разработчик может писать и отлаживать UI-тесты в Android Studio в одном проекте.
К сожалению, эспрессо не так совершенен и не удовлетворяет всем нашим потребностям. Как так?
ЧитаемостьВы будете похожи на этого человека, пытаясь прочитать такой код.
Что ты видишь? API, подробно описывающий простую функцию. Но эта функция содержит только три действия: поиск кнопки, проверка видимости кнопки и нажатие на кнопку. Вы можете понять это из этого кода? Конечно, но тебе нужно время.
Ненадежность
Следующая неприятная черта любого UI-тестового фреймворка, не только Espresso, — это ненадежность.
Ваш тест может пройти десять раз подряд. Но с одиннадцатой попытки тест срывается. Причина и момент, когда тест не проходит, могут быть абсолютно неопределенными. А на двенадцатой попытке тест снова зеленый. Все это похоже на черную магию.
Ведение журнала
Красивые журналы и сообщения об ошибках, предоставленные Espresso. Это распространенное сообщение об ошибке. Что произошло? Фу.
Кроме того, вы не можете наблюдать, что делает ваш тест во время выполнения, потому что Espresso не выводит никакой полезной информации.
Архитектура тестов
Когда команда написала кучу UI-тестов, можно заметить большое разнообразие подходов к написанию UI-тестов. Каждый разработчик == новый стиль кода. Это катастрофа.
В мире автотестов нет хороших общих правил и рекомендаций по архитектуре для написания тестов (почти).
Espresso не содержит инструментов для взаимодействия с ОС Android. Эспрессо бесполезен, если вы хотите передать некоторые файлы на устройство или имитировать телефонный звонок. Также ADB невозможен в Эспрессо-тестах. Но Appium-тесты могут его использовать.
Сценарии обновления
Архитектура эспрессо-тестов не позволяет автоматизировать сценарии обновления (при обновлении приложения). Вы знаете, что любое прерывание процесса приложения не проходит тест. Но во время обновления приложения мы останавливаем и перезапускаем процесс приложения.
Вот почему поведение ОС Android тормозит автоматизацию сценариев обновления через Espresso.
Опять же, Appium может автоматизировать эти сценарии.
Скриншот
Это дополнительная часть, не относящаяся напрямую к недостаткам Эспрессо. Но, так или иначе, здесь есть много интересных моментов, подсказок и хитростей, позволяющих упростить процесс изготовления скриншотов, который не так прост, как вы думаете.
Все это мешает писать чистые, стабильные, поддерживаемые и понятные UI-тесты! И все команды, решившие писать автотесты, вынуждены бороться с этими проблемами. Это отстой.
Поэтому мы (разработчики из Лаборатории Касперского, Avito, HeadHunter) решили объединиться, чтобы подготовить единую библиотеку для устранения этого недостатка.
Встречайте новую уникальную библиотеку — Kaspresso !
Мы написали серию статей о том, как Kaspresso решает ваши любимые задачи.
Первый касается проблем с читабельностью, нестабильностью, логированием и архитектурой UI-тестов.
Поехали!
Начнем с того, что библиотека Kakao собирается улучшить читабельность. Kakao — красивая DSL-обертка над Espresso.
Просто сравните два фрагмента кода, представляющие один тест.
Первый код написан с помощью Espresso:
Второй код написан с помощью Kakao:
Довольно впечатляюще.
Вы можете заметить использование таких вещей, как MainScreen
. MainScreen
является реализацией шаблона Page Object:
Вкратце, Page Object описывает представления, расположенные на экране. Более подробное объяснение будет чуть позже. Итак, Kakao призывает нас писать тесты на основе PageObjects.
Здесь начинается настоящее приключение. Хочу обратить ваше внимание на то, что не существует хороших и чистых решений для решения проблем с flaky и логированием. Но мы постарались восполнить этот недостаток. Что мы получили?
Как вы помните, Espresso не предоставляет никакого механизма для обработки ошибок с перезапуском неудачных действий и не добавляет автоматических журналов. Посмотрите на всю схему:
Если мы действительно хотим управлять Эспрессо, то мы должны поставить перехватчики между Пользователем и Эспрессо. Они будут отвечать за обработку ошибок, перезапуск неудачных действий и логирование, как на следующем рисунке:
Как здесь установить перехватчики? На что это похоже? Чтобы ответить на этот вопрос, давайте погрузимся в эспрессо!
Посмотрите еще раз на тест Espresso:
Мне очень нравится этот API. Так читабельно и ремонтопригодно. Довольно круто. (сарказм=))
Но давайте преобразуем код в блок-схему для упрощения восприятия Эспрессо:
Теперь рассмотрим блок-схему пошагово:
- Метод
onView
сViewMatcher
, переданный в качестве аргумента, помогает получить специальный класс, описывающий View, с которым мы работаем.
Имя этого класса — ViewInteraction. -
ViewIntercation
— самый основной и важный класс в Espresso.
Все действия и утверждения над представлением доступны только через классViewIntercation
. - На самом деле все действия и утверждения над представлением доступны через два метода
ViewIntercation
. Это методывыполнения
ипроверки
. Эти методы делают много разных вещей с MainLooper, представлениями, асинхронными операциями и другими под капотом. В аргументах задаем реализации простых интерфейсов:ViewAction
иViewAssertion
, с помощью которых мы устанавливаем правила для конкретных действий или утверждений, которые мы хотим выполнить.
Теперь вспомним начальную схему взаимодействия User-Espresso:
При включении вышеперечисленных интерфейсов и классов трансформируется в:
Думаю, следующий шаг вы предскажете. Хорошо, просто оберните выполните методы
и проверьте методы
для управления эспрессо:
Этот новый промежуточный слой является идеальным кандидатом, куда мы можем поместить наши перехватчики. Что это за перехватчики и как они выглядят?
Мы реализовали два вида перехватчиков: BehaviorInterceptor и WatcherInterceptor.
BehaviorInterceptor
Теперь мы сосредоточимся на примере с методом viewIntercation.perform
. Все, что мы собираемся обсудить, абсолютно идентично для viewIntercation.check
.
BehaviorInterceptor
является текущей оболочкой viewIntercation.perform
.
Перехватчик отвечает за:
- Вызов
viewIntercation.perform
столько, сколько вам нужно. - Обработка результата каждого выполнения
viewIntercation.perform
.
Код выглядит следующим образом:
Первой реализацией behaviorInterceptor
является FlakyBehaviorInterceptor
для преодоления проблемы нестабильности. См. проект реализации FlakyBehaviorInterceptor
:
Обратите внимание на параметр action
. В нашем случае это viewInteraction.perform(ViewAction)
. Вызов действия
обернут конструкциями try-catch и do-while, которые мы можем обрабатывать и управлять поведением Espresso.
В случае ошибки flakyBehaviorInterceptor
перехватывает исключение и повторяет вызов через intervalMs
период. Количество попыток выполнения действия ограничено параметром timeoutMs
.
Но мы не остановились только на FlakyBehaviorInterceptor
.
Например, еще один распространенный сбой — невидимость вида на экране. Вам просто нужно прокрутить родительский макет, чтобы сделать ваш вид видимым. Удивительно, но Espresso не может этого сделать и выдает исключение. Вот почему был разработан AutoscrollBehaviorInterceptor
.
Еще одна причина флажков – случайное появление системных диалогов андроида, особенно на реальных устройствах. Чтобы решить эту проблему, мы написали SystemDialogBehaviorInterceptor 9.0311 .
Имейте в виду, что принцип описанных перехватчиков работает как русская матрешка. Взгляните на изображение ниже:
FlakyBehaviorInterceptor
вызывает AutoscrollBehaviorInterceptor
, AutoscrollBehaviorINterceptor
вызывает SystemDialogBehaviorInterceptor
, SystemDialogBehaviorInterceptor
, SystemDialogBehaviorInterceptor
, SystemDialogBehaviorInterceptor
, SystemDialogBehaviorInterceptor
, SystemDialogBehaviorInterceptor
, SystemDialogBehaviorInterceptor
, SystemDialogBehaviorInterceptor
code. Но обработка результата идет обратным путем.
WatcherInterceptor
Второй вид перехватчиков — WatcherInterceptor
.
WatcherInterceptor
не может повлиять на поведение Espresso. Зато может получить много полезной информации о конкретном действии. Такая информация находится в ViewAction
. Благодаря этим данным вы можете создавать, например, более богатые, понятные и читаемые журналы. Итак, как получить такую информацию?
Мы представили класс ViewActionProxy
, который выглядит следующим образом:
Черновик реализации ViewActionProxy:
Как видите, мы просто вызываем все watcherInterceptors
и отправляем им всю необходимую информацию о конкретных viewAction
и view
. После этого действия мы вызываем оригинальный viewAction.perform
.
Наш по умолчанию WatcherInterceptor
регистрирует каждое действие и утверждение каждого представления. Взгляните на пример ниже:
Гениально, не так ли? Концепция действительно интересная и гибкая. Никто не мешает добавить дополнительные перехватчики и модифицировать обычное поведение Espresso. Но где находятся все перехватчики? Как это организовано?
Во-первых, полной оболочкой Espresso является Kakao, который скрывает все взаимодействия с ViewInteraction, onView и другими внутренними вещами Espresso. Именно поэтому мы добавили поддержку перехватчиков в библиотеку Kakao (версия 2.1).
Во-вторых, мы написали библиотеку, обеспечивающую простой и удобный способ управления перехватчиками; он предоставляет богатый набор перехватчиков по умолчанию, обрабатывающих ненадежные тесты, улучшающих ведение журнала и тому подобное. А название этой библиотеки вы знаете — Kaspresso .
Посмотрите пример того, как это работает с простым тестом, написанным с помощью Kakao:
Как включить все перехватчики по умолчанию, то есть перехватчики поведения и наблюдателя?
Вам просто нужно добавить следующее:
TestCase
— это специальный родительский класс, создающий всю магию. Здесь наш тест обрабатывает нестабильность и может выводить более подробные журналы. Это довольно сексуально =)
Sweety cookies
Ранее описанные перехватчики позволили нам реализовать несколько очень привлекательных функций. Смотри ниже.
flakySafety
Это метод, который получает лямбду и вызывает ее так же, как это делает
FlakyBehaviorInterceptor
. Если вы отключите этот перехватчик или если вы хотите установить некоторые специальные ненадежные параметры безопасности для любого представления, вы можете использовать этот метод.
постоянно
Эта функция похожа на то, что делает flakySafely
, но для негативных сценариев, где нужно все время проверять, что не происходит чего-то .
составить
Это метод составления составного действия из нескольких действий или утверждений, и это действие завершается успешно, если успешно выполняется хотя бы один из его компонентов. Он доступен как функция расширения для любого BaseView
(базовый класс для всех представлений в Kakao) и просто как обычный метод (в этом случае он может выполнять действия и в разных представлениях).
Были ли у вас когда-нибудь рекомендации по написанию обычных UI-тестов? Я не уверен, что у вас есть. Но когда команда разработчиков начинает писать автотесты без какого-либо стиля кода и правил, то результат может быть непредсказуемым.
Итак, что мы предлагаем? Мы собираемся разделить все рекомендации на две большие группы: Абстракции и Структура теста.
Абстракции
Эта часть построена в формате вопрос-ответ.
Сколько абстракций вы можете использовать в своих тестах?
Только один! Это объект страницы (PO), термин, хорошо объясненный Мартином Фаулером в этой статье. Как мы уже говорили, Page Object описывает представления, расположенные на экране. Это делает ваш код чище.
В Какао а Экран
класс является реализацией ПО. Каждый видимый пользователем экран, даже простой диалог, должен быть отдельным ПО.
Конечно, бывают случаи, когда нужна новая абстракция и это нормально. Но наш совет — хорошо подумать, прежде чем вводить новую абстракцию. Меньшее количество абстракций упрощает возможность вовлечения тестировщиков и автотестировщиков в процесс написания автотестов.
Это нормально, что ваш заказ на покупку содержит вспомогательные методы?
Если эти методы помогают понять, что делает тест, то все в порядке.
Например, сравните две части кода:
и
Я уверен, что метод navigationToTasksScreen()
более "явный", чем простой щелчок на каком-нибудь ShieldView
.
Может ли объект страницы содержать внутреннее состояние или логику?
Нет! Page Object не имеет внутреннего состояния или логики. Это всего лишь описание пользовательского интерфейса конкретного представления. Помните о принципе единой ответственности.
Утверждение методов справки внутри Page Object. Это уместно?
Опытные автотестировщики, которые занимались автоматизацией тестов в приложении Desktop, могут помнить о потенциально огромных размерах Page Objects в случае, когда разработчик помещает внутри PO много вспомогательных (assert) методов, как это предлагается в статья Мартина Фаулера.
Но мобильные и настольные приложения — это разные вещи. И, конечно же, размер экрана на мобильном телефоне и размер экрана на рабочем столе тоже разные. Поэтому мы не видим препятствий для добавления методов assert в PO.
Чтобы понять преимущества такого подхода, просто сравните три фрагмента кода:
Третий код был вдохновлен советом Мартина Фаулера в упомянутой статье.
Подводя итог, мы за первый вариант.
Проверьте этот простой пример:
У нас есть два экрана и три действия. Можете ли вы предсказать, как этот тест коррелирует с тестовым набором, на котором он основан? Сколько шагов в тестовом примере? Сомневаться.
Что здесь может сделать разработчик? Первый способ - поставить комментарии:
Хорошо. Но мы также хотим видеть, какой шаг выполняется в журналах теста.
Выполним код:
Мы добавили логи в тест. Неплохо.
Еще одна полезная функция — перехватывать потенциальные исключения на каждом этапе. В случае исключения мы хотим вывести дополнительную информацию в логи и сделать скриншот.
Текущий код трансформируется в:
Тьфу. Вы видите, как ваш простой тест превращается в настоящий беспорядок. Поддерживать такой код слишком сложно.
Вот почему мы создали специальный вид «Kotlin» DSL, чтобы выполнить все наши пожелания, оставив код без существенных изменений.
Этот DSL выглядит следующим образом:
Метод шаг
делает все то, что мы обсудили:
- автоматическая регистрация
- отлов исключений
- снимок экрана после ошибки
- и т.д. Теперь ваш тест состоит из отдельных и логичных шагов с понятными названиями и огромной логикой под капотом:
Просто оцените журналы шаг
Функция выдает:
Отлично!
Дополнительные возможности нашей DSL
В процессе автоматизации DSL развивалась и совершенствовалась. Что еще мы добавили в DSL?
Сценарий
«Сценарий» — это группа шагов, которые повторяются практически во всех тестах. Ниже приведен пример:
Внутренний шаг
Иногда бывает полезно выделить каждое утверждение в одном шаг
или сделать что-то подобное. В этом случае можно использовать «внутренний шаг»:
Подготовка среды
Эта часть также является продолжением предыдущей части. Но мы рассмотрим немного другую задачу.
Очень часто перед запуском теста необходимо подготовить устройство или среду. Например, перед тестом нужно отключить сеть. Что мы можем сделать?
Мы добавили нулевой шаг для отключения сети.
Ключевой задачей здесь является восстановление исходного состояния среды устройства. Мы настоятельно рекомендуем восстанавливать среду устройства после каждого теста, чтобы избежать потенциальной нестабильности для будущих тестов.
Честно говоря, эти два шага не являются частью теста.