Мобильная ферма своими руками

Обновлено: 07.07.2024

Телефонные фермы стали одной из главных тем разговоров на Reddit. Суть заключается в том, чтобы использовать несколько старых смартфонов для заработка. Как это возможно? Есть два типа приложений, которые будут приносить деньги за выполнение заданий:

Приложения для просмотра видео: такие приложения проигрывают короткие видео и показывают рекламу между клипами. Пользователи обычно получают очки за просмотр рекламы и в дальнейшем могут обменять их на подарочные карты, наличные или криптовалюты.

Приложения для сбора данных: эти приложения работают в фоновом режиме и платят пользователям за сбор персональных данных. Компании, которым принадлежат эти приложения, предположительно продают информацию другим организациям, готовым за это платить.

На этом сильно не заработаешь, рассказывает Том Блейк. В среднем ваш смартфон будет приносить примерно $0,40 в день, если вы проживаете в США или Канаде. Но это довольно неплохой вариант для пассивного источника дохода, делает вывод блогер.


Телефонная ферма Тома Блейка

  • Покупать только телефоны на Android: они дешевле, их проще купить б/у и для них есть много приложений, которые принесут деньги.
  • Покупать телефоны с версией Android 5.0 или выше: некоторые приложения не работают на телефонах с версией 4.
  • Искать телефоны с оперативной памятью в 1GB. Причина: вам нужен телефон, который сможет стабильно показывать видео. Оперативная память – один из лучших показателей того, как хорошо будет работать ваше устройство.
  • Не тратить больше $15-$20: чем дороже будет телефон, тем больше времени вам понадобится на то, чтобы окупить его и начать получать прибыль. С учетом того, что смартфон приносит $0,4 в день, дешевый телефон окупится через 40-50 дней, замечает блогер.
  • Не покупать планшеты: раньше почти все приложения работали на планшетах, теперь ситуация изменилась. Кроме того, планшеты стоят дороже, чем поддержанные модели телефонов.

Приложения для сбора данных, которые приносят деньги

Блейк перечислил приложения, на которых он зарабатывает.

Panel App:


Panel App – приложение для сбора данных, которое работает в фоновом режиме и собирает информацию, касающуюся вашего местоположения и использования телефона. Все, что вам нужно сделать, – пройти короткий опрос в начале.

В месяц вы зарабатываете примерно 1000 очков – то есть $1. Пользователи могут менять очки на подарочные карты Amazon, карты Starbucks и даже делать ставки.

Конечно, $1 в месяц ($0,03 в день) – не очень большая сумма. Однако вы можете установить это приложение на нескольких устройствах, замечает Блейк. На это вам потребуется две минуты.

Embee Meter CX:


В отличие от Panel App, Embee Meter CX может работать далеко не на всех устройствах.

В любом случае, в день приложение будет приносить около $0,1-$0,3, в зависимости от вашего местоположения. Блейк живет рядом с Торонто и зарабатывает около $0,1 в день.

Деньги вам смогут переводить только на PayPal, и вы должны заработать $5 очками, для того чтобы снять сумму.

MobileXpression:


MobileXpression – очередное приложение, работающее не на всех устройствах. Тем не менее, его стоит попробовать установить, говорит блогер.

Новые пользователи получают подарочный сертификат Amazon на $5. Да и очки заработать здесь довольно просто. Приложение должно работать в фоновом режиме, и вам будут начисляться очки, которые можно обменять на подарочные карты Amazon, Starbucks или BestBuy.

Сейчас MobileXpression приносит Блейку $5 в месяц.

Пассивные приложения для просмотра видео

Perk TV Live:


Perk TV – это приложение стабильнее всего и доступно практически для любых устройств, рассказывает блогер. Пользователи могут использовать один аккаунт на пяти телефонах, что делает Perk TV лучшим вариантом для новичков.

После каждого видео пользователи получают 2-3 очка + им начисляется примерно 1000 баллов за просмотр рекламы – это примерно $1.

Юзеры могут менять очки на подарочные карты Amazon, деньги, подарочные сертификаты нескольких магазинов.

Оценка: 4/5

Потенциал заработка: $0,2-$0,5/один телефон/день

Десктоп-версия: нет.

Perk Pop Quiz!


Perk Pop Quiz – еще одно приложение, которое работает примерно так же, как Perk TV. Пользователи могут выбирать викторины и отвечать на вопросы различных категорий, в перерывах между игрой будет показываться реклама.

За каждую викторину пользователь получает 1 очко. По сравнению с Perk TV это приложение приносит меньше очков за цикл, однако оно работает более стабильно на старых устройствах.

Оценка: 3,5/5

Потенциал заработка: $0,2-$0,4/один телефон/день

Десктоп-версия: нет.

Swagbucks Watch (TV):


Swagbucks – одно из самых популярных приложений, приносящих деньги, хотя пользователям понадобится больше времени, чтобы разобраться с платформой. У Swagbucks есть множество возможностей для заработка, включая опросы, бонусы за регистрацию, кэшбэк и просмотр видео.

Блейк пишет, что в Swagbucks Watch (TV) можно заработать быстрее всего. За просмотр каждого видео вы получаете по два очка ($0,02). Видео длятся недолго.

Единственный недостаток Swagbucks Watch (TV) – лимит заработка, отмечает блогер. С мобильного телефона вы сможете заработать не больше 20 очков в день ($0,2).

Очки можно обменять на карты Amazon, Starbucks, iTunes и других магазинов.

Оценка: 3/5

Потенциал заработка: $0,2/день

Десктоп-версия: есть.

Стоит ли заниматься телефонными фермами в 2018 году?

Том Блейк уверен: небольшие телефонные фермы – отличная возможность получать дополнительную прибыль, при этом не прикладывать усилия.

Блогер предупреждает, что если вы подумываете купить много устройств и открыть большую телефонную ферму, надо учесть технические сложности: чем больше у вас телефонов, тем чаще вам нужно будет исправлять проблемы. Тогда это перестанет быть пассивным заработком и станет работой. Блейк советует хорошо подумать и заранее посчитать, сколько времени вы готовы на это выделить.

Как запустить телефонную ферму – подводим итоги:

Если вы хотите запустить телефонную ферму, вот как это можно сделать.

  • Соберите устройства, которые никто не использует, у друзей и членов семьи; или просто купите 1-3 телефона в интернете.
  • Загрузите приложения для сбора данных вроде Panel App или Embee Meter CX.
  • Загрузите приложения для просмотра видео. Начните с Perk, если для вас важна стабильность, а затем начните тестировать другие приложения.
  • Отслеживайте свои заработки. На протяжении нескольких первых недель желательно отслеживать свои заработки, чтобы отмечать прогресс и определять приложения, которые не приносят прибыли.

Часто задаваемые вопросы:

Доказательства заработка:

Том Блейк приложил скриншоты в доказательство того, что на телефонных фермах можно заработать. Чаще всего он меняет баллы на подарочные карты Amazon.




Вряд ли вы разбогатеете на этом, но лишние $40-$50 в месяц – неплохая идея, заключает Блейк.

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

Современные криптовалюты основываются на категории Блокчейн, присутствует математическое хэширование. Самые востребованные валюты применяют особые алгоритмы sha256, где участвуют Биткоин и многочисленные форки. Могут быть использованы daggerhashimoto – эфир, equihash зикеш и их форки.

Основные понятия в майнинге

Для начала о криптовалюте и ее природе. По своей физической сути это набор электронных импульсов, блуждающих во всемирной информационной сети. Каждая виртуальная денежная единица имеет уникальный номер, что придает ей определенное сходство с бумажной банкнотой. Более того, именно этот код и придает ценность биткоину или другой подобной единице.

После краха Бреттон-Вудских соглашений мир живет в условиях плавающих курсов, определяемых спросом на ту или иную денежную единицу. Обеспечения драгоценными металлами, то есть золотого или серебряного содержания больше нет. Таким образом, ценность денег, выпускаемых в оборот любым государством, и их покупательская способность, на самом деле, ни к чему не привязаны. Это свойство присуще и криптовалюте, но у нее есть несомненные достоинства. Сравним ее с обычными денежными единицами, имеющими хождение в разных странах:

ПараметрНациональные и межгосударственные денежные единицыКриптовалюта
ЭмиссияВыпускаются в оборот эмиссионными центрами (монетными дворами) с условными ограничениями, обусловленными инфляционными рискамиДецентрализована, ограничена
Анонимность трансакцийУсловная: безналичные финансовые потоки можно отследитьПолная
ИнфляцияОбязательно имеет местоНаиболее вероятна дефляция, обусловленная изначальной ограниченностью размера эмиссии
Риск подделкиНизкий, но не нулевойПрактически нулевой, благодаря криптографическим методам генерации и децентрализации хранения

Криптовалюта представляет собой некий аналог обычных денег, отличающийся от них главным образом отсутствием государственной гарантии, дающей, впрочем, весьма призрачные преимущества.

Существенным препятствием расширения оборота новых платежных средств являются законодательные ограничения, принятые во многих странах. Бесконтрольный финансовый оборот противоречит государственным интересам.

Зачем майнить криптовалюту

Что такое ферма для майнинга


В первую очередь майнить криптовалюту нужно для поддержки работы сети. Это основа основ всех валют с механизмом Proof-of-Work – майнеры подтверждают транзакции в сети, благодаря чему платежи успешно переходят от пользователя к пользователю. Проверенные транзакции майнеры записывают в блоки и добавляют в блокчейн.
Помимо этого, за каждый найденный блок майнеры получают вознаграждение. На 2021 год оно составляет 6,25 BTC, через четыре года уменьшится вдвое, плюс все комиссии за транзакции внутри блока. Эта сумма распределяется между всеми узлами, участвующими в процессе, по справедливости – то есть исходя из того, какой вклад был внесен определенным узлом.

Итак, майнинг нужен:

  • Для создания новых монет и их распределения между пользователями сети.
  • Для децентрализации. Чем больше узлов в разных точках мира, тем сложнее захватить систему и навредить ей.
  • Для работы транзакций. Платежи осуществляются только после их записи в блокчейн.

Чтобы получать с майнинга доход, нужно обеспечить себя мощным оборудованием. В процессе майнинга уходит много средств на электроэнергию, это дает существенный минус к заработку, что тоже следует учитывать.


Виды расходов, или куда вкладывать деньги, чтобы начать майнить?

Для начала о том. что собой представляет криптовалютная ферма. Это помещение, в котором на стойках закреплены специальные вычислительные устройства. Они греются, их обдувают многочисленные вентиляторы. Все это шумит и пышет жаром.

Рентабельность фермы для майнинга определяется расходами и возможной прибылью в виде добытой криптовалюты. Для начала деятельности необходимо приобрести оборудование. Второй составляющей себестоимости будет оплата потребленной электроэнергии, доля которой составит, примерно, 85 % в ее общем объеме.

Всего существует пять технологий майнинга:

Вид майнингаОписание
CPUС помощью адаптированного процессора. В настоящее время не используется по причине низкой эффективности
GPUПринцип тот же, что и у процессорного майнинга, но производительность выше – используется видеокарта
ОЗУПрименяется оперативная память компьютера. Прибыль минимальная
ASICЭксплуатируются специальные интегральные схемы, дорогостоящие и не подлежащие ремонту в случае выхода из строя. Соотношение финансового результата к расходуемой энергии – высокое
FPGAПрименение вентильных матриц наиболее производительно, но сами они стоят дорого и их цена растет

Мощность, потребляемая единицей оборудования для майнинга, колеблется от 0,88 кВт (L3+) до 1,57 кВт (S15). Главным показателем эффективности служит так называемый хэшрейт, то есть производительность устройства, выраженная количеством математических операций, производимых за единицу времени. Чем выше этот показатель, тем больше вероятность создания нового блока. Скорость майнинга зависит от суммарной потребляемой мощности и совершенства технических средств.

Чем лучше работает устройство, тем выше и его цена.








Как собрать ферму для майнинга: пошаговый процесс с фотографиями

Чтобы не тратиться еще и на корпус, а также чтобы обеспечить более эффективное охлаждение видеокарт — фермы собираются открытыми, в виде прямоугольных каркасов. Их делают из дерева или металла. Я выбрал металлический — как более прочный.

Алгоритм сборки

Сам процесс сборки с нуля выглядит так:

  1. Распаковать железо.
  2. Выбрать каркас. Вариантов сборки существует несколько, как такового стандарта не существует: главное чтобы обслуживать железо было удобно, и чтобы между видеокартами было достаточно расстояния, для нормального охлаждения. Самый распространенный и простой вариант: прямоугольник (такой я и выбрал).
  3. Меряются, размечаются и нарезаются деревянные бруски и металлические уголки. Деревяшки будут играть роль поддона: на них ляжет материнка, блок питания и жесткий диск. Уголки будут выполнять роль каркаса. Размеры должны выбираться индивидуально: чтобы перечисленные детали на них уместились.




Все: после этого осталось установить приложения, которые будут майнить, и запустить их.

Контроль за фермой через TeamViewer

Контроль за фермой через TeamViewer

Кроме ОС, драйверов и майнеров у меня на ферме еще установлено:

  1. MSI Afterburner: для управления кулерами видеокарт и для их разгона.
  2. TeamViewer: для удаленного доступа.
  3. Notepad++ (текстовый редактор): для редактирования .bat-файлов майнеров (для настройки).

С какими проблемами можно столкнуться при сборке?



Виды майнинга и различия в прибыли

Окончательно сформировалось деление майнинга на три вида. Рассмотрим их по отдельности.

Майнинг на ферме

Наиболее выгодный вид добычи криптовалют. Требует самых высоких затрат. Предполагает значительные расходы на приобретение оборудования и оплату существенных сумм за потребление электричества (до трети от эквивалента генерируемой криптовалюты). Модули работают в параллельном режиме. Оборудованию требуется мощное охлаждение.

Облачный майнинг

Используются мощности, предоставляемые в аренду сторонними лицами, владеющими оборудованием. Участник выступает в роли инвестора, получая прибыль от вложенных средств. Доходность невысокая – около 1 % годовых. Выгоднее открыть депозитный банковский вклад.

майнинговое оборудование

Майнинг в пулах

Суть метода состоит в кооперации множества майнеров, ставящих целью увеличение вероятности создания очередного блока. Финансовый результат делится между участниками, но появляется чаще, что делает доход более стабильным. Пулы берут комиссию.

Рентабельность майнинга в 2021 году зависит еще от одного фактора, который, в отличие от способа добычи и вида оборудования, является внешним. Это волатильность курсов криптовалют, в последнее время не демонстрирующих роста, характерного для прошлых времен. Важно правильно выбрать нужную электронную денежную единицу (Bitcoin, ETH, ZCash), исходя из прогнозов на основе доступной динамики.




Перечень этапов для начала добычи криптовалюты

Какие этапы нужно выполнить, чтобы начать добывать криптовалюту:

  • Воспользоваться калькулятором майнинга (в сети много различных вариантов, самым достоверным считается Whattomine). Калькулятор поможет узнать, на какой заработок вы можете рассчитывать при наличии определенного количества мощности и с учетом затрат на оплату электроэнергии. До тех пор, пока на 100% не убедитесь, что вложение будет выгодным, не начинайте ничего покупать и устанавливать.
  • Купить несколько видеокарт или 1-2 ASIC новых моделей с наилучшем соотношением стоимости и хешрейта (производительности), а также качественным охлаждением. При покупке ASIC необходимо выбирать устройство, ориентированное на алгоритм хеширования SHA256, именно на нем работает биткоин.
  • Выбрать подходящее место и установить оборудование. Помещение должно быть прохладным, с хорошей вентиляцией, стабильным электричеством и интернетом.

Это в общих чертах, ниже мы рассмотрим процесс сборки фермы подробнее.

Расчет прибыльности майнинга

Для расчета потребуются следующие параметры:

  • период майнинга, измеряемый в секундах (в сутках 86 тыс. 400 сек.);
  • вознаграждение за нахождение блока, выраженное в единицах криптовалюты;
  • хэшрейт оборудования (кол-во операций в секунду);
  • сложность майнинга конкретной криптовалюты.

Последний показатель заслуживает отдельного рассмотрения. Дело в том, что сложность добычи постоянно увеличивается по причине ограниченности эмиссии (для биткоинов предел составляет 21 млн. ед.) Иными словами, чем дольше продолжается майнинг, тем ниже вероятность вычислить блок за определенное время.

Примерно то же самое происходит и при разработке угольной шахты. Сначала вырабатываются самые толстые и богатые пласты. Затем полезный слой становится тоньше, и для его добычи требуются большие усилия.

Периодичность изменения сложности 14,3 суток (Bitcoin).

Прогнозирование дохода от майнинга производится путем введения указанных исходных параметров в формулу:

Где:

  • P – доход (в единицах криптовалюты);
  • TS – плановая продолжительность майнинга в секундах;
  • RT – вознаграждение за вычисление блока (в единицах криптовалюты);
  • HR – хэшрейт оборудования (производительность в операциях в секунду);
  • DF – сложность майнинга.

Упрощает расчет предполагаемого дохода применение специального калькулятора, доступного по ссылке.


Примеры из жизни

Риг для майнинга на 6 картах GTX1060 собранный в августе 2021 года показывал расчетную окупаемость к марту 2021 года, и составлял 8 месяцев. По факту риг окупился к декабрю 2021 года за 4 месяца. По ссылке вы можете посмотреть текущие показатели окупаемости для фермы на GTX 1060.

Асик Antminer S9 купленный в декабре 2017 года, на пике курса Биткоина, показывал расчетную окупаемость в 3 месяца, по факту они ещё продолжают окупаться. По ссылке вы можете посмотреть текущие показатели окупаемости для Antminer s9.

Калькулятор расчета прибыльности

Как правило, калькулятор разрабатывается для расчета рентабельности каждого вида криптовалют. Пользоваться им довольно просто, но есть и некоторые тонкости.

Исходные данные для калькуляции доходности:

  • Хэшрейт (производительность оборудования), CH/sec.
  • Потребляемая мощность оборудования, Ватт.
  • Тариф на электроэнергию (денежных единиц за киловатт-час).
  • Комиссия, взимаемая пулом.

Выбирая тип криптовалюты, майнер автоматически задает основные информационные параметры электронной монеты:

  • алгоритм вычисления;
  • сумма вознаграждения за нахождение блока;
  • время подтверждения;
  • сумма эмиссии на актуальный момент (количество уже намайненных монет);
  • сложность;
  • производительность сети;
  • объем торгов;
  • сумма капитализации.

Результатом расчета становится прогнозируемая прибыль за сутки. При майнинге пользоваться калькулятором приходится часто, так как данные постоянно обновляются. Стоимость активов меняется в течение 15–30 минут, сложность – ежедневно.

Закономерен читательский вопрос о том, какова рентабельность майнинга в 2021 году? В этой статье точного ответа в цифрах не будет. Почему? Читайте дальше, и поймете.

майнинг

Возможные причины неожиданных убытков

Котировки криптовалют зависят от спроса на них. От активности майнеров зависит и рентабельность этого бизнеса. На рынке электронных денег также присутствуют другие риски:

  1. Возможность принятия ограничительных и запретительных законодательных актов со стороны государства.
  2. Ценовые дампы (резкие снижения котировок по причине массированной интервенции).
  3. Устаревание имеющейся вычислительной техники и появление нового, более производительного оборудования.
  4. Технические проблемы, связанные с электроснабжением.
  5. Выход из строя технических средств майнинга.

Какой доход от облачных сайтов

Главной проблемой майнинга является постоянный рост параметров сложности добычи (примерно, на 10 % ежемесячно), влекущий потребность в более производительном оборудовании. Стоимость технических средств и особые условия, необходимые для его монтажа и эксплуатации, усложняют обычным гражданам доступ на рынок криптовалют.

Облачный майнинг, предполагающий использование чужих вычислительных мощностей, не предполагает существенных начальных затрат. Но и доходность его снижается. Окупаемость вложений достигается за срок до 9 месяцев. Вхождение происходит после подписания контракта не менее чем на год.

Оценить целесообразность инвестиции можно, воспользовавшись калькулятором, предлагаемым сервисом.

Люди, для которых постоянный просмотр видео превратился в хобби, делают то же самое. Они скупают десятки или сотни телефонов, чтобы позволить себе дополнительные расходы: купить что-то в дом, оплатить счёт, выпить ящик пива. В то время, когда другие таксуют или работают в доставке еды, фермеры просто сидят на диване, а их счёт растёт.

Как всё устроено?

Другие фермеры сказали, что зарабатывают тысячи долларов в месяц на пассивном скроллинге, например, Goat_City получает $700–800 в месяц. Ещё один фермер с ником CallMeDonCheadle зарабатывает $7 в день, это больше $200 в месяц.

Поэтому вы можете не беспокоиться о счетах за интернет.

Если всё правильно сделать, то успех вовсе не зависит от количества телефонов. Так, фермер Аарон признался, что на своих двадцати мобильниках он зарабатывает от $50 до $100 в месяц.

Приложения, дающие наибольшую выгоду, постоянно меняются. Так, разработчики, борющиеся с фермерами, добавляют хитрости в программы. Например, необходимость взаимодействия с пользователем для продолжения работы приложения.

Vice также столкнулся с трудностями при запуске приложений. Некоторые из них глючили и часто вылетали. Часто легче было перезагрузить телефон, чем перезапустить приложение. Одно из устройств просто зависло после очередного уведомления.

Поэтому если вы не держите под тщательным контролем всю вашу ферму, то поддержание устройств и приложений может быть довольно трудоёмким.

Для просмотра редакция использовала трейлеры Netflix. 1000 очков Perk TV эквивалентны $1. До недавнего времени пользователи могли вывести эти очки на кредитную карту Perk. Теперь эта функция недоступна. В результате Vice заработал 50 центов (около 35 рублей).

Чтобы обманывать развивающиеся ad-fraud-приложения, фермеры используют программное обеспечение, создающее иллюзию скроллинга и кликов. Пока приложение думает, что пользователь обращает внимание на рекламу, фермер сладко спит.

Компания DoubleVerify работает с Facebook и определяет подлинный источник трафика. По словам Розенфельда, некоторые работодатели считают стимулированный трафик эффективным способом повысить узнаваемость бренда, в то время как другим не нравится эта идея.

Высокий доход Д’Алесандро не продлился долго. В 2018 году, по его словам, резко упала выручка. Рекламодатели начали подавлять фермеров.

Других это тоже затронуло. Goat_City, у которого было более 100 телефонов, сказал, что теперь он зарабатывает всего $10 в день. CallMeDonCheadle вовсе взял перерыв после того, как прибыль за последние пару лет резко снизилась.







Что пишут в блогах

• Девять золотых правил написания комментариев к коду.

Подписаться

Онлайн-тренинги

Что пишут в блогах (EN)

  • Testing at the Crime Scene, Part 3
  • Five for Friday – January 21, 2022
  • Writing API tests in JavaScript with Pactum
  • Get Early Access to Full Site Editing!
  • Scaling Testing Bubbles
  • Cypress basics: API testing
  • yet again. " target="_blank" rel="nofollow">What About Expected Results?
  • Advice for the New Tester
  • wordle is fun, quick. " target="_blank" rel="nofollow">Five for Friday – January 14, 2022
  • first post in this series, we’ll leverage the forensic techniques we started with and apply those to a code crime. " target="_blank" rel="nofollow">Testing at the Crime Scene, Part 2

Разделы портала

Про инструменты

Вся наша команда распределена по нескольким странам, поэтому мы не понаслышке знакомы с плюсами и минусами удаленной работы. В какой-то момент минусы начали мешать и соответственно отражаться на качестве тестирования, поэтому мы написали свою мобильную ферму. А из это предложения можно подумать, что мы взяли, сели и написали ее в один прекрасный день, но это не так. Дальше расскажу, как мы к этому пришли, что делали, через что прошли и, конечно, что в итоге получилось. Спойлер: в конце будет ссылка на гит, где лежит наша поделка.

Кому вообще стоит напрячь зрение и прочитать эту статью?

Ну, во-первых, тем, кому зрение позволяет это. Во-вторых, всем, кто хочет сэкономить нервы, деньги и время при тестировании IOS. В-третьих, тестировщикам или небольшим компаниям, которые работают на удаленке и пользуются живыми устройствами, ведь постоянная отправка и закупка новых устройств — это больно, долго и дорого. Ну и наконец, тем, кому просто интересно, что такого могут собрать тестировщики, чтобы оно еще и работало.

Disclaimer

Это не антиреклама облачных ферм. В большинстве случаев они хорошо справляются со своими задачами, и с ними не возникает никаких проблем. Более того, это и не реклама нашей разработки. Наша ферма — это open source решение. Мы хотим поделиться этим со всеми неравнодушными, кому это будет полезно в работе, а еще привлечь тех, кому будет интересно улучшить ее и доработать. Сейчас наша ферма в рабочем состоянии, т. е. она не просто шевелится, а полноценно функционирует. Но все равно есть то, что можно улучшить. Не забывайте, мы — не разработчики, мы — тестировщики.

Что заставило тестировщиков кодить

Для начала пройдемся по терминам: облачные фермы (AWS, BrowserStack и т. д.) — это разнообразие различных устройств и браузеров, с помощью которых можно полноценно проводить тестирование, внедрять автоматизацию, логировать состояния устройства и т.д.

Тогда возникает логичный вопрос: а зачем заморачиваться и придумывать что-то новое, если уже есть готовые решения, например, тот же BrowserStack? (Действительно!) Изначально мы, как и многие тестировщики, пользовались народным и простым решением для тестирования IOS — BrowserStack. Однако у него (как и у других похожих инструментов) есть ограничения, которые отражаются на качестве тестирования и количестве нервных клеток тестировщиков.

Проблемы, с которыми мы столкнулись, работая с BrowserStack:

Это не живые устройства, а их эмуляция

Именно поэтому работа продукта в BrowserStack может отражаться одним образом, а на живом устройстве мы увидим совсем другое. Как итог, можем пропустить баг или докопаться, что баг есть, а на живом устройстве его нет и никогда не было.

Медленная скорость работы облачных ферм

Зачастую все сервера облачных ферм находятся за пределами России, поэтому происходит слишком большой лаг. Иногда настолько большой, что можно успеть сгонять за пивом и вернуться. А если без шуток, то иногда просто невозможно ничего сделать и тем более качественно протестировать.

Так как это эмуляция, то не все нативные сервисы возможно использовать, т. е. нельзя использовать номер телефона, вставить свою симку, подключить Apple ID или какие-то другие нативные сервисы.

Далее примеры нашей боли. Просьба: впечатлительным с хорошим зрением отойти от экрана.

Это Gif, поэтому не слышно, как горит тестировщик Видео для тех, кому было недостаточно плохо от первого

Итого, наш путь осознания проблемы выглядел так:

Тестирование IOS в BrowserStack все больше подводило, а нас, в свою очередь, начинало подводить психическое здоровье. Потому что приходили клиенты и жаловались, что мы пропускаем баги. А мы даже и не видели эти баги, в BrowserStack их просто не было.

Команде приходилось занимать очередь, чтобы протестировать IOS. Изначально мы были очень маленькой компанией, а потом стали расти, но из-за ограниченных ресурсов количество аккаунтов в BrowserStack оставалось прежним. Поэтому в дни релиза начинался Ад и Израиль.

Для того, чтобы как-то разгрузить очередь, мы периодически закупали живые устройства и рассылали по ребятам. Это достаточно дорогое удовольствие, и не всегда хватало ресурсов, поэтому кому-то приходилось страдать.

Стало понятно, что так продолжаться не может, и мы решили попробовать сделать что-то свое.

Очередь на ферму в дни релиза

Техническая часть

Начнем с того, из чего состоит ферма:

IOS устройства, подключенные к серверу и имеющие доступ в сеть;

Юзер, который подключается к серверу, и через какой-нибудь простой веб интерфейс видит устройства и выбирает нужное.

Пожалуй, электричество сюда вписывать не буду. А так все.


Теперь пройдемся по железу и затронем техническую часть более подробно.

Управление состоянием телефона

Для того, что реализовать трансляцию действий от юзера к телефону, мы хотели подобрать простой и удобный инструмент, который закрыл бы собой все наши потребности (даже неприличные). Вот, что мы искали:

Инструмент в формате сервера, который будет принимать и обрабатывать действия пользователя в real-time режиме;

Возможность реализации на каких-нибудь популярных языках программирования, чтобы мы случайно не начали писать на Jython;

Разработка не только под Mac OS, линуксоиды меня поймут.

Под наши критерии подходил только Appium. Да, можно было сделать франкенштейна, собрав воедино множество инструментов, чтобы покрыть все наши хотелки. Но давайте честно, мы искали простой и бесплатный вариант. Из того, что могло бы быть, но не случилось: Ranorex, Automator, Selenium и т. д. Что-то из этого не подошло, потому что не open source, что-то было сложно, а что-то нельзя использовать с IOS. Поэтому Appium. Я не буду подробно рассказывать, что это такое. Если вы с ним не знакомы, то сходите по ссылочке и познакомьтесь. Лучше чем Appium про Appium никто не расскажет.

Здесь должен был быть happy end, но зачем. У Appium есть проблема, которую нам до сих пор не удалось решить простым способом. Appium не позволяет сидеть более чем одному человеку на ферме. Мы точно знаем, что это из-за портов в самом Appium, который может работать только с одним соединением одновременно. Одним из очевидных вариантов решения мы рассматривали контейнеризацию множества серверов Appium с разными портами, однако, это другой уровень требований по знаниям и железу, поэтому мы все еще в поисках иного варианта, более простого. Возможно, вы его подскажете. Ну пожалуйста.

Окей, вернемся к действиям пользователя. Итак, какие действия мы можем совершать? На самом деле, все базовые действия пользователя: свайпы, тапы, дабл тапы и т.п. Также мы планируем добавить возможность управления физическими кнопками — громкость, мьют, блокировка экрана.


Процесс управления состоянием телефона выглядит так: действие пользователя (например, клик) мы переводим в скрипт (скрипт написан на Python), подключаются библиотеки Appium, и мы просто передаем эти скрипты на телефон через Appium.


Передача изображения с экрана телефона до юзера

Так как мы остановились на Appium, то пытались настроить передачу изображений на основе его встроенных инструментов. И опять почувствовали себя обманутой первокурсницей. Потому что на момент начала разработки передача изображений через Appium от устройства к пользователю была слишком большой. Поэтому мы пошли поискать другие решения.

Мы прошли нелегкий путь от передачи скриншотов до настройки HLS потока:

Попытка № 1

Первая идея была проста: по тактовой частоте процессора делать скриншот экрана устройства и отправлять его пользователю. Скриншоты делались быстро, выглядели качественно (не стыдно на авку поставить), но из-за того, что это JPG формат — размер файла был слишком большим и в среднем доходил до пользователя с задержкой — 5 -10 сек. Так как проблема была в размере, а размер имеет значение, то мы пошли дальше.

То, что приходилось видеть с передачей изображений в JPG

Попытка № 2

Мы перешли к низкокачественному PNG. Да, потеряли в качестве, но зато увеличили скорость передачи почти в два раза. И даже такой скорости оказалось недостаточно, чтобы адекватно пользоваться телефоном, не говоря уже о тестировании.

Посмотрите, как это было больно:

Попытка № 3

Мы решили попробовать HLS поток. Как вы поняли, нас посещали все более грандиозные идеи. Как выглядит работа HLS потока: происходит сбор картинок в буфер, из буфера собирается видеофайл и бесконечно транслируется пользователю.


План был пушка. Но при первом же запуске он провалился. Задержка между текущим состоянием телефона и трансляцией составляла аж 25 секунд. Это было связано с тем, что видео собиралось покрадово каждую секунду.

Помучавшись, мы вернулись… И к кому? Правильно, Appium. За время наших поисков передача изображений через Appium была доделана разработчиками. Задержка составляла буквально секунду.

Процесс передачи изображений с экрана телефона до юзера выглядит так: Appium, находящийся на сервере, ретранслирует экран пользователю с задержкой в одну секунду.

Если вы не поняли, то выглядит это так :)

Если вы не поняли, то выглядит это так :)

Двустороннее интерактивное соединение

Как выглядит работа фермы в итоге: у нас есть телефон, мы передаем через Appium изображение до юзера. У нас есть юзер, он выполняет действие над этими скриншотами, которые получает до Appium-сервера. Appium через свои инструменты имитирует эти действия на телефоне. Все это защищено подключением WebSockets.

И все. Да, вряд ли мы сможем посмотреть какие-нибудь видосы в 4к, но для тестирования базовых вещей — самое то. Если вы, конечно, не тестируете видеопотоки.

Схема работы фермы

Схема работы фермы

Что из этого всего получилось

А в итоге у нас получилась ферма живых устройств под боком, торможение которой будет явно меньше, чем у облачных ферм, так как она располагается рядом с вами.

Из ее преимуществ:

Привязка к нативным сервисам;

Установка любых приложух;

Поведение тестируемых продуктов реально, так как мы взаимодействуем с живым устройством, а не эмулятором, как было с BrowserStack;

Наличие сервера, что позволяет дополнительно настроить инструменты по анализу сетевого трафика, менять VPN, локацию и т. д.

Из ее не преимуществ:

Возможность использования для одного человека — это до сих пор самый большой минус;

Это не протестировано — мы же тестировщики. Плюс, нам бы хотелось получить мнение со стороны;

Отсутствие трансляции звука. Но это скорее общий минус всех облачных ферм. Пока это нигде не реализовано. А если реализовано — напишите в комментах.

Так сейчас работает наша ферма. Да, она существует:

О главном или что нужно, чтобы запустить ферму

Сервер, где все это будет крутиться. Еще лучше — купить какой-нибудь USB хаб, чтобы можно было заранее подключать телефоны;

Телефоны под управлением IOS.

Базовые знания командной строки будь то Linux или PowerShell, или еще что-нибудь эдакое;

Придется работать с сеткой; нужно уметь открыть порт; поднять Nginx; запрогать что-нибудь в Vim, сохраниться и еще, если повезет, выйти;

Нужно понимать, что действия, которые совершает пользователь для ретрансляции, написаны на Python. Некоторые вещи можно переделать под себя, если что-то по вашему мнению неудобно. Можно дописать, если вы придумаете какие-нибудь фичи;

Ну и никуда без этого: любое программирование — это просто напросто умение гуглить.

А вот и ссылка на на гит, в котором есть гайд (guide, you know?) о том, как развернуть эту ферму у себя. Кстати, мы тут запилили чатик в телеге чисто под обсуждение фермы, если будут вопросы/предложения и что-нибудь еще — не стесняйтесь и пишите.

Читайте также: