Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

Использование Faker для генерации данных для автоматического тестирования

by
Difficulty:IntermediateLength:MediumLanguages:
This post is part of a series called Building Your Startup With PHP.
Building Your Startup: Approaching Major Feature Enhancements
How to Build a User Tour With Shepherd in JavaScript

Russian (Pусский) translation by Sergey Zhuk (you can also view the original English article)

Final product image
What You'll Be Creating

Faker - это библиотека с открытым исходным кодом, созданная Франсуа Занинотто, которая генерирует данные искусственного наполнителя для вашего приложения и его потребностей в тестировании.

Faker можно использовать как в простом PHP-приложении, так и в фреймворке, таком как Yii или Laravel, или в тестовом фреймворке, как например Codeception, который мы ранее уже расстраивали в уроке Envato Tuts +

В сегодняшнем уроке я рассмотрю базовую установку и использование Faker и его возможностей. Как говорит Занинотто:

«Нужно ли вам загружать вашу базу данных, создавать красивые XML-документы, заполнять ваши персистентные данные для стресс-теста или анонимизировать данные, взятые из производственной службы, Faker для вас».

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

Немного напоминаем, прежде чем мы приступим к работе, я участвую в обсуждениях, приведенных ниже. Мне особенно интересно, если у вас есть дополнительные мысли или вы хотите предложить темы для будущих уроков. Если у вас есть вопрос или предложение, отправьте сообщение ниже. Вы также можете связаться со мной прямо на Twitter @reifman.

Приступая к работе

Установка Faker

Я начал с создания нового дерева кода и добавил fzaninotto/faker к composer.json:

Затем я обновил composer:

Faker устанавливается в каталог vendor. Итак, я загрузил в начало файла index.php:

Далее я хотел бы попробовать несколько простых примеров сценариев генерации данных.

Простые примеры

Я привел примеры Faker и выполнил их из http://localhost:8888/faker:

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

И:

И:

Faker выполняет свои обещания.

Поставщики Faker по умолчанию

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

Итак, выше, когда я запросил address у Faker, он искал все провайдеры для методов, которые соответствовали, в конечном счете, используя провайдер Address().

Вы также можете написать собственных поставщиков или просмотреть ряд расширений для Faker, доступных в Интернете.

Модификаторы

Faker также предлагает специальные модификаторы для помощи в тестировании, такие как unique(), optional() или valid(). Например, вы можете генерировать уникальные номера:

Вот вывод уникальных значений:

Если вы используете метод optional(), некоторые числа будут возвращаться как NULL, как если бы пользователь не ввел поле в вашу форму. Примечание. Я не смог заставить этот метод работать правильно.

С valid() вы можете зарегистрировать функции, которые определяют, соответствуют ли данные наполнителя конкретным требованиям или возвращают ошибку или генерируют сообщение об ошибке в форме пользователя.

Изучение поставщиков

Faker предлагает широкий набор методов для генерации случайных данных для вашего приложения:

  • Base: простые методы для случайных букв, чисел, обработанных строк и регулярных выражений
  • Lorem Ipsum Text: случайный текст на латыни
  • Person: имена людей
  • Address: почтовые адреса
  • Phone Number: номера телефонов
  • Company: имена компаний
  • Real Text: фактический текст, написанный людьми вместо бессмысленных латинских строк
  • Date and Time: случайные даты и время
  • Internet: электронная почта, домены и т.д.
  • User Agent: строки браузера
  • Payment: строки и номера кредитных карт и SWIFT
  • Color: случайные цвета
  • File: расширения файлов, типы файлов и имена файлов
  • Image: URL-адреса изображений-заполнителей разных видов
  • Uuid: уникальные IDs
  • Barcode: различные типы штрих-кодов, например. ISBN13
  • Miscellaneous: коды шифрования, коды стран и т.д.
  • Biased: случайные числа с уклоном

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

Платежная информация

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

Вот несколько выводов из приведенного выше кода:

Using Faker Generating Payment or Credit Card details

Картинки

Using Faker Images

Вот простой пример создания изображения:

 вы также можете создавать кошек:

Using Faker Images of Cats

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

Интернационализированные данные

С помощью приведенного ниже кода я создал таблицу с четырьмя столбцами имен из Франции, России, Америки и Китая:

Вот результат:

Using Faker International Capability - Tables of names from four countries

Создание поддельных адресов электронной почты

Вот пример кода для генерации 25 поддельных адресов электронной почты от бесплатных провайдеров, таких как Gmail и Yahoo:

Вот результат:

Using Faker - 25 Free Email Addresses

Создание XML-документов

Faker предлагает полезный пример генерации XML; Однако для этого требуется, чтобы вы работали с инфраструктурой и имели архитектуру представления:

В заключение

Надеюсь, что это послужило хорошим введением для вас в библиотеку Faker - невероятно полезную бесплатную PHP-библиотеку с открытым исходным кодом.

Если вы хотите еще что-нибудь почитать, то я рекомендую Jim Nielsen's Filler Content: Tools, Tips и Dynamic Example (Envato Tuts +), который предоставляет разработчику приложения возможность создавать данные. Он предполагает, что вы можете быть более эффективными, когда применяете поддельные данные, чтобы создать более реалистичный опыт в процессе разработки.

Если вы хотите знать, когда выйдет мой следующий учебник Envato Tuts +, следуйте за мной @reifman в Twitter или проверьте мою страницу инструктора. В настоящее время я работаю над двумя сериями, которые вы можете оценить:

  1. Программирование с помощью Yii2
  2. Создание своего стартапа на PHP о планировщике встреч; Создай расписание своей первой встречи сегодня.

Ссылки по теме

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.