October 22, 2019

111 строк кода и "AirTest IDE"

- Почему 111?
Да потому что один из "учеников" с курса по автоматизации и программированию прямо задавал серию вопросов за разъяснение которых я решил незамедлительно взяться (и да отступы там были до того как я решился).

Все мы отдыхаем по разному, например мне нравиться писать и изучать то о чем пойдет речь дальше а именно....

"Airtest IDE" кстати скачать можно тут: http://airtest.netease.com/changelog.html

Пишу "Для своих"(ради кого пишу остальные боком, я про скрин ниже)

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

Итак вы скачали и распаковали архив в принципе если вы загляните в документацию проекта (http://airtest.netease.com/docs/en/index.html) для себя вы найдете там достаточно много решений автоматизации процессов не прибегая к "программированию" на более сложных ЯП (далее языках программирования).

Но Я "пропагандирую" исключительно Python по ряду причин но для начала будет достаточно нескольких:
1) На Python уже все запрограммировано достаточно уметь искать
2) Он прост и сообщество поддержки его огромное как и общий "фидбэк"
3) Вам понравиться

Приступим к установке Python:
1) Качаем https://www.python.org/downloads/
2) Выбираем версию 3.8 (Крайняя стабильная)
3) Ставим как обычную программу, что бы проверить установлен ли Python вам достаточно открыть консоль и ввести в нее "Python" это запустит его в консольном режиме ( появятся кавычки ">>>" )

Python нам нужен для построения "логики" скриптов да и вообще качать мозг в ту сторону где будет все много проще...

Но начнем мы с самого простого, а точнее рассмотрим пример "автоматизации" приложения "TikTok" на примере разбора ознакомительного скрипта.

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

Кусок кода с "самого дна"

Начнем с простого а далее вы привыкните что сначала идут скриншоты а далее пояснения...

Итак разбор кода:
1) print("любой текст") - Этот участок кода будет распознан Python как команда для печати в консоль любого текста что записан между "кавычек" но к примеру в случае с переменными кавычки могут не потребоваться, дальше вы поймете о чем пойдет речь упоминая "переменные", главное что бы вы поняли в данном примере нам это нужно что бы уведомить юзера о необходимости ввести желаемое количество "циклов"(Python очень простой, особенно для нас).

2) cycle(float(input())) - Кажется все намного сложнее, но это не так продолжаем:
2.1) input() - Ввод пользовательских данных, тут все просто этой командой мы прерываем выполнение программы пока со стороны пользователя не будет введены данные, но эта функция принимает любые данные преобразуя их в строку а нам нужно в числа по этому перейдем к следующему пункту.
2.2) float() - То что нам нужно! Преобразуем введенные данные пользователем в числа, да не просто числа а числа с "плавающей запятой" а почему плавающей? А потому что я постоянно оставляю "маркеры" осознанно либо сам допускаю ошибки но важно только одно, я озвучу ее либо мои "последователи" в первом случае никакой ценности нет а вот во втором случае я скажу вам мы получим "специалиста" да к тому же внимательного и смелого/не ленивого, готового мне написать об этом, да не суть просто напишу о том что на самом деле нам нам нужно преобразовать "пользовательский ввод" в целые числа а для этого нужно int() в общем об этих и других ВАЖНЫХ мелочах что мы обсуждали выше лучше прочитать тут: https://pynative.com/python-input-function-get-user-input/
2.3) cycle() - Ухх а в этом конкретном случае это просто моя "отсебятина" с английского на русский "цикл" короче говоря так я обозначил Функцию новое для нас определение "функции это подпрограммы внутри программ" проще говоря лучше не вникать пока весь код не будет "как на ладони" но вкратце одним куском кода:
cycle(float(input())) я принимаю от пользователя вводимые данные и преобразуя их в "целочисленные" вызываю функцию с ними, по итогу я запускаю "подпрограмму" с заданным пользователем количеством повторений...

Уфф! Новый скриншот а значит новый разбор участка кода!

В предыдущем разборе я говорил что мы вызываем "функцию", да но что бы ее вызвать нам нужно ее "задать" как это сделано мы разберем более подробнее:
(Теперь может показаться чуть сложнее)

Все функции в Python для вас пока задаются через def
По этому в ту сторону и продолжим:

1) def cycle(x): - Так мы задали функцию где вместо cycle мы можем задавать любое понравившееся нам "слово" все остальное здесь необходимо для правильного понимания нашего кода Python в том числе и в круглых скобках (x) В нашем случае это называется "Аргумент" их бывает несколько, соответственно "Аргументы" передаются при вызове функции как мы это делали в предыдущем разборе вызывая функцию командой cycle(float(input())) Проще говоря:
При вызове функции мы передаем "в нее" целое число введенное пользователем это и есть "переданный" аргумент внутрь функции для дополнительного ее "функционала" о котором мы и поговорим чуть ниже при разборе следующих строк...

2) p = 1 - Тут все просто мы задаем переменную "p" значением "1"
Все потому что нам будет необходимо при подсчете количества проходов от чего либо отталкиваться, в данном случае мы будем сравнивать несколько переменных: Одна из них будет задана внутри функции а другую мы будем предавать извне при вызове функции через "пользовательский ввод" как то так.

3) while p <= x: - Кажется сложно, но нихера тут сложного и сейчас покажу почему, while это "программный цикл" по умолчанию внутри Python он позволяет "зациклить" утверждения верности уравнения p <= x

Где мы сравниваем желаемое количество циклов пользователем с реально выполненными, в общем мы производим предварительную проверку...


А теперь я оставлю просто кусок кода что "объяснит" тем кто действительно вникал при прочтении всю "суть бытия" этой функции

like_post() # Вызываем функцию "Лайк" add_comment() # Вызываем функцию "Добавить комментарий" swipe_post() # Вызываем функцию "Свайп пост" #lake_comments() <- Это нереализованная пока функция по этому за # p += 1 # Прибавляем к переменной p + 1 это нужно для подсчета заданных циклов print("Закончен цикл № " + str(p - 1)) # Уведомление после окончания каждого цикла continue; # Окончание ответвления "Сценария"

Если вы внимательно читали текст выше то вам и ясна суть кода выше

Повторяя "Кусок кода" я попробую описать что происходит:

Мы вызываем функцию "Подсчета проходов" запрашивая у пользователя "целочисленное" значение и передаем его в виде "аргумента" в вызванную функцию где тупо вызываем функции "Лайк", "Добавления комментария" и "Свайп" при этом подсчитывая количество проходов предварительно сравнивая не "Привешен ли лимит" ...

Ребятки, на подобные посты и генерацию речевых оборотов "Для крестьян на крестьянском" необходимы силы и время а главное настроение, все это подходит к концу, за сим прошу просмотреть готовый результат по этой ссылке https://youtu.be/QqdsspONPNs (Если нет времени мотните на 7:30 )

Я постараюсь в стиле "Как бы мне было понятно с 0" дописать статью, но на первом месте у меня есть серия задач даже решив которые у меня будут следующие, это наконец впустить в группу по обучению программистов что бы могли достаточно профессионально преподавать на должном уровне...

По этому что бы ускорить выход новой пишем сюда https://t.me/CCCRu

Для того что бы делать крутые штуки как с этого видео и иметь какой никакой "хелп" от меня пишите сюда https://t.me/CCCRu у меня есть "что покурить" веселее но ценность данной статьи вижу именно с целью:

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

А тем кто осилил пост скажу: - Вот так я и отдыхаю.. - По началу сложно но потом понимаешь преимущества подобного "самовнушения" ...