Advertisement
  1. Code
  2. PHP

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

by
Read Time:7 minsLanguages:
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 imageFinal product imageFinal 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 detailsUsing Faker Generating Payment or Credit Card detailsUsing Faker Generating Payment or Credit Card details

Картинки

Using Faker ImagesUsing Faker ImagesUsing Faker Images

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

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

Using Faker Images of CatsUsing Faker Images of CatsUsing Faker Images of Cats

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

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

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

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

Using Faker International Capability - Tables of names from four countriesUsing Faker International Capability - Tables of names from four countriesUsing Faker International Capability - Tables of names from four countries

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

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

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

Using Faker - 25 Free Email AddressesUsing Faker - 25 Free Email AddressesUsing 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
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.