Внутри директории events создай файлы для ошибок с номерами 400 и 500
В этом большом гайде мы разберем тестирование API с помощью Postman. Он покроет большинство сценариев использования этой программы в вашей повседневной работе.
Давным-давно Postman стартовал как расширение для Google Chrome. Сейчас это полноценное нативное приложение, доступное на Windows, Linux и MacOS.
Что такое API?
Что такое Postman?
Зачем использовать Postman?
Установка Postman
Установка подробно описана в отдельном гайде. Найти его можно здесь (! на английском)
После того, как Postman установлен, можно переходить к тестированию API.
Postman отличный инструмент для тестирования API для тех, кто не хочет или не может писать тесты вручную (в IDE на языке программирования, используемом для разработки приложения).
Особенности Postman
Ниже мы перечислим только некоторые из особенностей Postman:
- Простой в использовании API клиент
- Функциональный и приятный UI.
- Может использоваться как для ручного, так и для автоматизированного тестирования API.
- Поддерживает интеграции с другими инструментами (например, поддерживает Swagger и RAML)
- Может быть запущен в Windows, Linux, MacOS.
- Не требует знания языков программирования.
- Предоставляет возможность легко экспортировать коллекции запросов, наборы тестов. Можно легко обмениваться этими данными с коллегами.
- Интегрируется с CI/CD инструментами (например, с Jenkins, TeamCity и т.п.)
- API Posman-a подробно документирован.
- Позволяет выполнять API автотесты.
Цена: Бесплатно или 21 доллар за пользователя в месяц.
Как пользоваться Postman
Для начала, давайте подробно рассмотрим интерфейс. Мы сознательно будем рассматривать английскую версию (и рекомендуем использовать именно ее):
Основные сущности Postman: запросы, коллекции и окружения
Перед тем, как приступить непосредственно к тестированию, давайте рассмотрим основные сущности, которыми оперирует Postman:
1. Запросы (Requests)
Запрос представляет собой комбинацию URL, хедеров и Body (тела запроса). Postman позволяет сохранять запросы и использовать их в будущем там, где вам нужно.
Как мы писали выше, Postman позволяет делать запросы к API. С помощью API-запроса можно получать и отправлять данные какому-либо бэкенд-сервису.
- GET: GET-запросы используются для получения данных от API.
- POST: POST-запросы используются для отправки новых данных API.
- PUT: PUT-запросы используются для обновления уже существующих данных.
- PATCH: PATCH-запросы (как и PUT) используются для обновления уже существующих данных. Разница в том, что с помощью PATCH запросов можно обновить несколько записей за раз.
- DELTE: DELETE-запросы используются для удаления существующих данных.
Далее в статье мы рассмотрим, как создавать и отправлять запросы разных типов с помощью Postman.
2. Коллекции (Collections)
Коллекции представляют собой группы запросов. Вы можете думать о коллекциях как о папках, в которых лежат запросы.
Как создать коллекцию в Postman:
Введите имя (Name) и описание (Description) коллекции, после этого нажмите кнопку Create:
Коллекция может содержать любое число запросов. Запустить выполнение коллекции можно двумя способами:
- с помощью Collection Runner
- c помощью Newman
Далее мы рассмотрим оба этих способа.
3. Окружение (Environments)
Мы рассмотрим работу с окружениями далее в статье.
Тестирование GET-запросов
Повторимся, GET-запросы используются для получения данных с сервера. GET-запросы не меняют состояние данных на сервере (не добавляют, не удаляют и не изменяют данные).
Давайте отправим GET-запрос с помощью Postman:
Мы рекомендуем завести аккаунт и использовать его для входа (чтобы сохранять запросы, коллекции и окружения для использования в будущем).
Шаг 2: Создаем GET-запрос:
После выполнения запроса вы должны будете увидеть данные от сервера во вкладке Body.
На скриншоте ниже вы видите код ответа сервера (Status: 200 OK), время выполнения запроса (Time: 1700ms) и размер ответа (Size: 1.62 KB)
По наведению на Time и Size появляется всплывающее окно с подробной информацией.
Время ответа сервера (Response Time)
Размер ответа (Response Size)
Куки (Cookies): Здесь можно увидеть информацию о куках, возвращаемых сервером
Хедеры ответа от сервера (Response headers)
Тестирование POST-запросов
POST-запросы используются для отправки новых данных на сервер. Давайте попробуем с помощью POST-запроса добавить нового пользователя. Для этого мы отправим информацию о новом пользователе в теле POST-запроса.
После этого наживаем кнопку SEND и отправляем POST-запрос.
Примечание: для проверки корректности вашего json можно использовать Jsonformatter
Точно так же, как и POST, отправляются PUT, PATCH и DELETE запросы.
Примечание: во время тестирования, для каждого запроса проверяйте возвращаемый результат, код ответа сервера и время ответа сервера. И не забывайте про негативные тесты!
Параметризация запросов
Часто необходимо выполнить один и тот же запрос на разных наборах данных. С помощью параметризации, можно использовать переменные при выполнении запросов.
В Postman, параметры создаются с помощью двойных скобок: >.
Шаг 2: Меняем URL на параметр >. После этого URL запроса должен быть таким: >/users
Шаг 3: Теперь нам нужно создать переменную окружения, чтобы использовать ее в качестве параметра. Для этого нажимаем на кнопку с глазом и кликаем на Edit (редактировать), чтобы создать глобальную переменную и затем использовать ее в коллекциях.
Если все сделано правильно, значение переменной, которую мы создали, будет подставлено вместо ее имени и запрос выполнится успешно.
Создание тестов в Postman
Тесты в Postman позволяют убедиться, что API работает так, как этого от него ожидают.
Давайте начнем с написания простого теста.
Код теста будет выглядеть следующим образом:
Запуск коллекций с помощью Collection Runner
Давайте запустим коллекцию с помощью Collection Runner.
Шаг 2: Должна будет открыться следующая страница:
Разберем основные элементы:
Шаг 3: В этом окне добавим коллекцию для запуска. Выбираем нашу коллекцию тестов, устанавливаем параметр Iterations в 2, delay в 2500ms и нажимаем кнопку запуска.
Запуск коллекций с помощью Newman
Для того, чтобы запустить коллекции с помощью Newman, делаем следующее:
Шаг 1: Устанавливаем node.js. Сделать это можно по ссылке
Шаг 2: Открываем командную строку и выполняем команду npm install -g newman
Шаг 3: После установки newman заходим в Postman. В списке коллекции находим нашу коллекцию, нажимаем на три точки и выбираем Export (Экспортировать)
Шаг 5: Выбираем папку, в которую экспортировать коллекцию и нажимаем Save. Рекомендуем создать отдельную папку для Postman-тестов. После нажатия на Save, коллекция будет экспортирована в выбранную папку.
Шаг 6: Для корректного запуска нам понадобится экспортировать и окружение. Для этого нажимаем на кнопку с глазом и выбираем опцию Download as JSON. Выбираем папку, в которую экспортировать окружение и нажимаем Save. Рекомендуем экспортировать окружение в ту же папку, в которую была экспортирована коллекция.
Шаг 7: Теперь, когда мы экспортировали коллекцию и окружения в папку, возвращаемся в командную строку и меняем директорию на ту, где находятся коллекция и окружение.
Шаг 8: Запускаем коллекцию с помощью команды:
newman run PostmanTestCollection.postman_collection.json -e Testing.postman_globals.json
После выполнения коллекции, появятся результаты выполнения тестов.
Заключение
В этом гайде по Postman мы постарались разобрать базовые темы. Мы надеемся, вы научились создавать и отправлять просты запросы, проверять ответы сервера, создавать простые тесты. Узнали, как выполнять коллекций с помощью Collection Runner и Newman. В следующих статьях мы разберем продвинутые возможности Postman.
На стороне сервера или на стороне клиента?
Начните с тщательного резервного копирования приложения
Важно сделать полный бэкап вашего приложения, базы данных и т.п. прежде , чем вносить какие-либо правки или изменения в систему. Ещё лучше, если есть возможность создать полную копию приложения на дополнительном промежуточном сервере, который недоступен публично.
Диагностика ошибки 400 Bad Request
Ошибка 400 Bad Request означает, что сервер ( удалённый компьютер ) не может обработать запрос, отправленный клиентом ( браузером ), вследствие проблемы, которая трактуется сервером как проблема на стороне клиента.
Существует множество сценариев, в которых ошибка 400 Bad Request может появляться в приложении. Ниже представлены некоторые наиболее вероятные случаи:
Исправление проблем на стороне клиента
Устранение ошибки 400 Bad Request ( попробуйте позже ) лучше начать с исправления на стороне клиента. Вот несколько советов, что следует попробовать в браузере или на устройстве, которые выдают ошибку.
Проверьте запрошенный URL
Важно проверять URL на неподходящие специальные символы, которых в нем не должно быть. Если сервер получает некорректный URL , он выдаст ответ в виде ошибки 400 Bad Request .
Очистите соответствующие куки
Но куки, хранящие информацию сессии о вашем аккаунте или устройстве, могут конфликтовать с другим токеном сессии от другого пользователя, выдавая кому-то из вас ( или вам обоим ) ошибку 400 Bad Request .
В большинстве случаев достаточно рассматривать только ваше приложение в отношении файлов куки, которые относятся к сайту или веб-приложению, выдающему ошибку 400 Bad Request .
Куки хранятся по принципу доменного имени веб-приложения, поэтому можно удалить только те куки, которые соответствуют домену сайта, сохранив остальные куки не тронутыми. Но если вы не знакомы с ручным удалением определённых файлов куки, гораздо проще и безопаснее очистить сразу все файлы куки.
Это можно сделать разными способами в зависимости от браузера, который вы используете:
- Google Chrome;
- Internet Explorer;
- Microsoft Edge;
- Mozilla Firefox;
- Safari.
Загрузка файла меньшего размера
Если вы получаете ошибку 400 Bad Request при загрузке какого-либо файла, попробуйте корректность работы на меньшем по размеру файле, Это включает в себя и «загрузки» файлов, которые не загружаются с вашего локального компьютера. Даже файлы, отправленные с других компьютеров, считаются «загрузками» с точки зрения веб-сервера, на котором работает ваше приложение.
Выйдите и войдите
Попробуйте выйти из системы и войти обратно. Если вы недавно очистили файлы куки в браузере, это приводит к автоматическому выходу из системы при следующей загрузке страницы. Попробуйте просто войти обратно, чтобы посмотреть, заработала ли система корректно.
Также приложение может столкнуться с проблемой, связанной с вашей предыдущей сессией, являющейся лишь строкой, которую сервер посылает клиенту, чтобы идентифицировать клиента при будущих запросах. Как и в случае с другими данными, токен сессии ( или строка сессии ) хранится локально на вашем устройстве в файлах куки и передаётся клиентом на сервер при каждом запросе. Если сервер решает, что токен сессии некорректен или скомпрометирован, вы можете получить ошибку 400 Bad Request .
В большинстве веб-приложений выход повторный вход приводит к перегенерации локального токена сессии.
Отладка на распространённых платформах
Если вы используете на сервере распространённые пакеты программ, которые выдают ошибку 400 Bad Request , изучите стабильность и функциональность этих платформ. Наиболее распространённые системы управления контентом, такие как WordPress , Joomla! и Drupal , хорошо протестированы в своих базовых версиях. Но как только вы начинаете изменять используемые ими расширения PHP , очень легко спровоцировать непредвиденные проблемы, которые выльются в ошибку 400 Bad Request .
Откатите последние изменения
Если вы обновили систему управления контентом непосредственно перед появлением ошибки 400 Bad Request , рассмотрите возможность отката к предыдущей версии, которая была установлена, как самый быстрый и простой способ убрать ошибку 400 bad request .
Аналогично, любые расширения или модули, которые были обновлены, могут вызывать ошибки на стороне сервера, поэтому откат к предыдущим версиям этих расширений также может помочь.
Но в некоторых случаях CMS не предоставляют возможности отката к предыдущим версиям. Так обычно происходит с популярными платформами, поэтому не бойтесь, если вы не можете найти простой способ вернуться к использованию старой версии той или иной программной платформы.
Удалите новые расширения, модули или плагины
В зависимости от конкретной CMS , которую использует приложение, имена этих компонентов будут различаться. Но во всех системах они служат одной и той же цели: улучшение возможностей платформы относительно её стандартной функциональности.
При этом имейте в виду, что расширения могут так или иначе получать полный контроль над системой, вносить изменения в код PHP , HTML , CSS , JavaScript или базу данных. Поэтому мудрым решением может быть удаление любых новых расширений, которые были недавно добавлены.
Проверьте непреднамеренные изменения в базе данных
Даже если удалили расширение через панель управления CMS , это не гарантирует, что внесенные им изменения были полностью отменены. Это касается многих расширений WordPress , которым предоставляется полный доступ к базе данных.
Расширение может изменить записи в базе данных, которые «не принадлежат» ему, а созданы и управляются другими расширениями ( или даже самой CMS ). В подобных случаях модуль может не знать, как откатить назад изменения, внесенные в записи базы данных.
Я лично сталкивался с такими случаями несколько раз. Поэтому лучшим путём будет открыть базу данных и вручную просмотреть таблицы и записи, которые могли быть изменены расширением.
Поиск проблем на стороне сервера
Если вы уверены, что ошибка 400 Bad Request не связана с CMS , вот некоторые дополнительные советы, которые могут помочь найти проблему на стороне сервера.
Просмотрите логи
Почти любое веб-приложение будет вести логи на стороне сервера. Они представляют собой историю того, что делало приложение. Например, какие страницы были запрошены, к каким серверам оно обращалось, какие результаты предоставлялись из базы данных и т.п.
Логи сервера относятся к оборудованию, на котором выполняется приложение, и зачастую представляют собой детали о статусе подключённых сервисов или даже о самом сервере. Поищите в интернете “ логи [ИМЯ_ПЛАТФОРМЫ] ”, если вы используете CMS , или “ логи [ЯЗЫК_ПРОГРАММИРОВАНИЯ] ” и “ логи [ОПЕРАЦИОННАЯ_СИСТЕМА] ”, если у вас собственное приложение, чтобы получить подробную информацию по поиску логов.
Отладьте код приложения или скриптов
Если это не помогло, проблема может быть в исходном коде, который выполняется внутри приложения. Попытайтесь диагностировать, откуда может исходить проблема, отлаживая приложение вручную и параллельно просматривая логи приложения и сервера.
Создайте копию всего приложения на локальном устройстве для разработки и пошагово повторите тот сценарий, который приводил к возникновению ошибки 400 Bad Request . А затем просмотрите код приложения в тот момент, когда что-то пойдёт не так.
Пожалуйста, оставляйте свои отзывы по текущей теме статьи. Мы крайне благодарны вам за ваши комментарии, отклики, дизлайки, подписки, лайки!
Пожалуйста, опубликуйте ваши комментарии по текущей теме статьи. Мы крайне благодарны вам за ваши комментарии, подписки, отклики, дизлайки, лайки!
CarWebGuru Launcher
версия: 3.2.5D
Последнее обновление программы в шапке: 09.09.2021
Краткое описание:
CarWebGuru Launcher - умный лаунчер для автомобиля с поддержкой тем, виджетов, фоновых картинок, рабочие столы и управлением системными плеерами.
Многофункциональный центр для автомагнитолы: автомобильный лаунчер с поддержкой виджетов, GPS логгер и календарь поездок, набор стильных больших спидометров, музыкальный плеер с поиском, выбор лого и фоновой картинки и многое другое. Выберите стиль и цвет под ваш авто! Настройте виджеты именно так, как вам нужно! Получайте удовольствие от вождения!
В программе можно создать несколько рабочих столов и каждому задать свой собственный скин. Все кнопки в скинах являются настраиваемыми виджетами, при желании вы можете их удалить или поменять. После установки вам доступны несколько популярных скинов, клик по кнопке лого открывает окно TOOLS где можно добавить виджет или поменять скин. Программа предназначена для работы в автомагнитоле с системой андроид, но при желании ее можно установить на смартфон или планшет.
1) Как изменить тему (скин)?
Клик по кнопке с лого (окно TOOLS). Если нет кнопки с лого, то свайп снизу вверх. Далее "Задать Тему".
2) Как поставить лого вашего авто?
Зайти в настройки, выбрать производителя. Логотипы есть не для всех. Начиная с версии 2.54 можно добавлять свои собственные логотипы в виде PNG файлов. При выборе лого - программа пишет полное название папки для PNG лого. Копируйте ваши лого в данную папку и они там появятся. Поддерживаются квадратные PNG с прозрачностью, оптимальное разрешение 250х250 или 350х350 .
3) Как убрать круг под лого?
В настройках есть пункт - отключить круг под лого. В новых версиях интерфейс изменен, данная функция больше не используется.
4) Как выбрать другой музыкальный плеер?
Долгий клик по кнопке Play - открывает диаллог с выбором плеера. Там появляются только те плееры, которые зарегистрировались в системе по стандартам для плееров. Не все плееры поддерживают функции управления и передачи данных (время, названия, перемотка). Наиболее популярные плееры: Poweamp, Jetaudio, AIMP
5) Какие функции для долгих кликов?
Долгие клики запускают "похожие" функции. Вот небольшой список:
> Настройки - системные настройки
> Виджет спутники - настройки GPS
> виджет WiFi - настройки WIFI
> Виджет Bluetooth - настройки Bluetooth
> Часы - системные часы;
> Календарь - системный календарь
> Виджет Режим яркости - настройки экрана
> Кнопка Play - выбор плеера
> Logo кнопка - Скриншот экрана
> На ярлыке программы - Удаление ярлыка (в главном окне)
> На ярлыке программы - Удаление программы (в окне всех приложений)
6) Как изменить действие на кнопке?
Все кнопки программы - это мини виджеты. Вам нужно зайти в окно TOOLS и нажать кнопку "Добавить виджет", затем выбрать кнопку какую необходимо заменить. Далее выбрать необходимое действие или ярлык на программу.
7) Не работает управление громкости на магнитоле?
Зайдите в "Настройки / программа", активируйте пункт "Автоматические определение МЦУ магнитолы". Если после этого громкость не регулируется, значит ваша магнитола не еще поддерживается. В программе есть встроенное API, приглашаю разработчиков для сотрудничества и добавления других магнитол.
8) Как попасть в окно TOOLS?
Есть несколько способов:
* Клик по кнопке с ЛОГО
* Свайп экрана снизу вверх
9) Почему не все кнопки можно переименовать или поменять иконку?
В программе есть много динамических виджетов, такие как: адрес, часы, скорость, пробег. Они меняют данные в фоне их переименовывать не имеет смысла. Аналогично с иконками - есть виджеты с несколькими состояниями (Play\Pause, WiFi, таймеры. ) которые динамически меняют иконки от своего состояния из-за чего смена иконки им заблокирована.
10) У меня не регулируется яркость экрана кнопками программы
Зайдите в настройки/Программа и активируйте пункт "Альтернативный способ изменения яркости". Попробуйте изменить яркость. Если после этого яркость не регулируется, значит ваш девайс еще не поддерживается.
11) Часто не работает виджет адреса, из-за лимита обращений!
Вы можете добавить ваш собственный ключ от API Google Maps. Таким образом вы избежите отключений из-за превышения количества запросов бесплатного API встроенного в программу.
12) Как получить свой ключ для карт гугл?
Ключ можно бесплатно получить на сайте гугл. Для этого нужно иметь Google аккаунт. Введите в поиске гугла фразу "как получить ключ для гугл карт" - и следуйте инструкциям. Ключ выглядит как набор символов, примерно так: AIzqewBghkmfD5t6w3NwcsC4ZrfvT0kLWyhnxFQ (это не ключ , а просто символы :)
Как проверить ключ на компьютере читайте тут. Аналогично для погоды, как получить ключ описано тут.
13) Как добавить свой ключ для Google Maps API в программу CWG?
Необходимо создать текстовый файл, поместить в него ваш ключ от API карт и сохранить в специальную папку. Имя файла должно быть такое: googlemap.txt Скопируйте и поместите ваш ключ в это файл, а затем файл поместите в папку которая находится в корне вашего устройства. В результате полное имя файла должно быть такое: /CarWebGuru/keys/googlemap.txt
Перезапустите программу и в дальнейшем будет использоваться ваш ключ. Обращаю внимание, что папки /CarWebGuru/keys/ создавать не нужно, их нужно найти, они уже есть на вашем устройстве. Обычно в корне встроенной флэш карты.
14) В настройках есть синтез речи но программа не разговаривает.
Для произношения фраз используется система событий. Подробное описание как добавлять фразы и события тут. Хорошее видео по настройке и озвучке событий тут.
15) Почему видны не все программы из прошивки магнитолы?
Некоторые программы не являются отдельными программами. Например, это может быть ярлык или ссылка на определенную часть в другого APK или ссылка на системную библиотеку. Из-за этого они не видны. Для примера - большинство программ в магнитоле сделаны таким образом и не видны (камера, регистратор, встроенный плеер, проводник, блютуз и т.д.). Есть несколько вариантов решения.
Способ-1. Зайти в CWG приложения, и найти приложение от магнитолы и нажать на нем долгим кликом. Там появится меню с пунктом "Explore\Исследовать" нажимаем и видим список что можно запустить внутри данного APK. Если не помогло, то ваши "приложения" могли быть скрытыми или системными. Тогда поможет только создание отдельных APK-запускалок для каждого скрытого приложения. Такие мини APK нужно искать в ветке вашей магнитолы, там могут такое обсуждать.
16) Магнитола вертикальной ориентации, тема пишет что ориентация не поддерживается
Обратите внимание - у некоторых тем есть мини значки ("H" - Horizontal, "V" - Vertical, "SW" - Super wide), которые говорят о том какая ориентация поддерживается темой. Вам нужны темы с вертикальной ориентацией и маркером "V", ищите , например темы: Mediabox, Vinyl, Road, Curve, Big Widget. Со временем, количество вертикальных тем увеличивается. Если маркеров нет, то тема поддерживает только горизонтальную ориентацию "H".
17) Как найти и прислать системный лог ошибок?
Системный лог ошибок и вылетов всех программ находится тут: /data/system/dropbox/ Чтобы не мешать с другими логами, нужно удалить логи, затем запустить CWG, вызвать ошибку, затем посмотреть лог или прислать мне. Лог это текстовый файл, со списком последних выполненных функций перед сбоем.
18) Как использовать виджет навигация?
Данная технология работает на Андроид 5 и выше. Поддерживаются навигаторы: Яндекс Навигатор, Яндекс карты, Google Maps. Для использования достаточно перейти в навигатор, построить активный маршрут и вернуться обратно в CWG. У вас должны быть включены системные уведомления в панели статуса.
19) Не работают кнопки руля
Часто производители магнитол не делают "правильную" работу кнопок руля и они работают только в родных приложениях магнитолы. Для решения данной проблемы можно установить ретранслятор МЦУ кнопок именно для вашей модели магнитолы (нужно искать в ветке вашей магнитоле на форумах). После чего МЦУ кнопки будут ретранслироваться в медиа кнопки андроид и пониматься другими программами. В качестве исследования, моно установить CWG виджет на экран KeyCode, нажимать кнопки и посмотреть посылают они коды или нет.
20) Как отобразить информацию о радио?
Радио обычно работает через МЦУ магнитолы и информация о нем недоступна другим программам. В CWG встроено APi и я приглашаю заинтересованных людей со знанием программирования Java для подключения других магнитол.
21) При включении ГУ открывается меню расширенных настроек системы
CarWebGuru Launcher
R (R Core Team 2021) — это язык для статистического анализа и визуализации данных. Он возник как ответвление языка S/Splus, разработанного еще в 70-х годах в Bell Laboratories.
Росс Ихака (Ross Ihaka) и Роберт Джентльмен (Robert Gentleman), молодые ученые из университета Окленда, Новая Зеландия разработали R в 1993 году (Ihaka 1998) .
Сейчас Росс Ихака занимается статистикой в университете Окленда (Associate Professor). В 2010 году Ихака начал работать над новым языком с целью усовершенствовать R и улучшить его быстродействие (Ihaka 2010) .
Роберт Джентльмен работал как ученый и эксперт в нескольких компаниях биотехнологического и генетического профиля, и недавно стал вицепрезидентом компании 23andMe как эксперт в биоинформатике. Еще в 2001 году Роберт Джентльмен начал работать над проектом Bioconductor.
Создатели RStudio
RStudio (RStudio Team 2019) — это свободно распространяемая среда для разработки (integrated development environment) на языке R.
RStudio была основана в 2009 году американским программистом и интернет-предпринимателем Джозефом Аллером (Joseph J. Allaire). Среду RStudio можно устанавливать на компьютеры с разными операционными системами (Windows, OS X, and Linux).
Сейчас RStudio, пожалуй, самый удобный вариант среды для разработки на R. Мне кажется, что бум использования R в начале 10-х годов отчасти объясняется тем, что писать программы стало гораздо удобнее благодаря появлению среды RStudio.
К слову, вторая причина роста популярности R — это появление графического пакета ggplot2 (Wickham 2016) , написанного Хедли Викхемом (Hadley Wickham). Этот пакет во много раз облегчил построение сложных и красивых графиков. С тех пор Хедли Викхем написал еще много полезных пакетов и сейчас работает Chief Scientist в RStudio и Adjunct Professor в университете Окленда.
Для работы над этим курсом вам понадобится установить
Устройство RStudio
Окно редактора RStudio разделено на 4 области:
- код (зеленый прямоугольник на схеме) - это обычный текстовый редактор, в котором открывают и редактирут файлы с программами.
- консоль/RMarkdown (оранжевый прямоугольник на схеме). На вкладке консоль можно в живом режиме выполнять команды R, если вы не хотите их сохранять в виде программы.
- файлы/графики/пакеты/помощь/просмотр (желтый прямоугольник на схеме). На вкладке помощь можно просматривать файлы справки. На вкладке графики будут появляться графики. На вкладке файлы расположен файловый менеджер, который позволяет перемещаться по директориям вашего проекта и компьютера.
- среда/история (и еще может быть /Git, если ваш проект под контролем версий) (синий прямоугольник на схеме). На вкладке история есть список всех выполненных команд R. На вкладке среда расположен список объектов, находящихся в памяти.
Организация рабочего пространства
- Создайте папку (например, Proteomics ), где будут храниться ВСЕ материалы курса. Например: Мы будем ее называть рабочей директорией. В эту папку помещайте ВСЕ файлы с кодом (с расширением .R).
- Внутри папки Proteomics создайте папку data , где будут храниться все файлы с данными для анализа.
В итоге у вас должно получиться примерно это:
Настройка
Все настройки RStudio находятся меню Tools -> Global Options
- Восстановление рабочено пространства из прошлого сеанса — это лучше отменить, т.к. обычно переменные-призраки очень мешают. На вкладке General убираем галочку Restore .RData into workspace at startup , и меняем Save workspace to .RData on exit - Never .
- Перенос длинных строк в окне кода — это удобно. На вкладке Code ставим галочку рядом с опцией Soft-wrap R source files .
Клавиатурные сокращения
- Ctrl + Shift + C - закомментировать/раскомментировать выделенный фрагмент кода.
- Ctrl + Enter - отправляет строку из текстового редактора в консоль, а если выделить несколько строк, то будет выполнен этот фрагмент кода.
- Tab или Ctrl + Space - нажмите после того как начали набирать название функции или переменной, и появится список автоподстановки. Это помогает печатать код быстро и с меньшим количеством ошибок.
Автоподстановка названий функций начинает работать как только вы ввели несколько первых букв названия функции. Вы можете вызвать ее раньше, если нажмете Tab или Ctrl + Space .
Как только вы полностью ввели название функции и скобки, RStudio автоматически ставит закрывающую скобку и показывает раздел справки Usage для этой функции.
Если вы нажмете Tab или Ctrl + Space , когда курсор находится внутри скобок, то вам покажут список аргументов этой функции с расшифровками их значений из раздела справки Arguments для этой функции.
R — модульная система, он состоит из пакетов. Некоторые пакеты уже установлены, другие придется устанавливать из внешнего репозитория.
Из центрального репозитория R CRAN пакеты можно установить при помощи функции install.packages() , указав имя пакета. Запустите RStudio (с правами администратора, если вы в Windows) и, для начала, установите пакеты ggplot2 и readxl — они нам сегодня понадобятся.
Остальные пакеты мы будем устанавливать по мере необходимости.
Пакеты единожды устанавливаются в локальную библиотеку, затем их нужно активировать для работы один раз за сеанс.
Читайте также: