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

Usando Faker Para Generar Información de Relleno para Pruebas Automatizadas

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

Spanish (Español) translation by Rafael Chavarría (you can also view the original English article)

Final product image
What You'll Be Creating

Faker es una librería de código abierto creada por Francois Zaninotto que genera información artificial de relleno para tu aplicación y sus necesidades de pruebas.

Faker puede ser usado un una aplicación vainilla PHP, un framework tal como Yii o Laravel, o dentro de una librería de pruebas como mencionamos con Codeception en este tutorial anterior Envato Tuts+.

En el tutorial de hoy, revisaré la instalación y usos básicos de Faker y sus capacidades. Como Zaninotto dice:

"Sea que necesites arrancar tu base de datos, creado documentos XML de buena apariencia, llenar tu persistencia para hacerle prueba de estrés o anonimizar datos tomados de un servicio de producción, Faker es para ti."

Y, sobre todo, entrega un amplio rango de capacidades simples útiles para cualquier régimen de pruebas.

Un pequeño recordatorio antes de que comencemos, participo en la sección de comentarios de abajo. Estoy especialmente interesado si tienes ideas adicionales o quieres sugerir temas para tutoriales futuros. Si tienes una pregunta o sugerencia de tema, por favor publícala abajo. También puedes contactarme en Twitter @reifman directamente.

Comenzando

Instalando Faker

Comencé creando un nuevo árbol de código y luego agregando fzaninotto/faker a composer.json abajo:

Después, actualicé composer:

Faker es instalado en la carpeta de proveedor. Así, después cargué en la parte superior de un archivo index.php:

Después, quise intentar unos cuantos escenarios simples de ejemplo de generar datos.

Ejemplos Simples

Extendí los ejemplos Faker como sigue y los ejecuté desde http://localhost:8888/faker:

Con refrescos rápidos, fui presentado con resultados variantes como:

Y:

Y:

Faker cumple lo que promete.

Proveedores Faker Por Defecto

Todos los métodos de generación de datos en Faker son creados desde la implementación de proveedores. Aquí está el código que registra los proveedores por defecto de Faker---está hecho por ti:

Así que arriba, cuando pedí una address desde Faker, esta buscó todos los proveedores para métodos que empataban, finalmente usando el proveedor Address().

También puedes escribir tus propios proveedores o navegar un número de extensiones para Faker que están disponibles en la web.

Modificadores

Faker también ofrece modificadores especiales para ayudarte a probar, tales como unique(), optional(), o valid(). Por ejemplo, puedes generar números únicos:

Aquí está la salida para valores únicos:

Si usas el método optional(), algunos números serán devueltos como NULL como si el usuario no hubiera ingresado un campo en tu formulario. Nota: Pude hacer funcionar correctamente este método.

Con valid(), puedes registrar funciones que determinen si la información de relleno cumple requerimientos específicos o podrían devolver un error o generar un mensaje de error en un formulario de usuario.

Explorando los Proveedores

Faker ofrece un amplio conjunto de métodos para generar información aleatoria para tu aplicación:

  • Base: métodos simples para letras, números, cadenas procesadas y regex aleatorios
  • Lorem Ipsum Text: texto en Latín aleatorio
  • Person: nombres de personas
  • Address: direcciones de envío
  • Phone Number: números de teléfono
  • Company: nombres de compañías
  • Real Text: texto real escrito por seres humanos vs. cadenas en Latín sin sentido
  • Date and Time: fechas y horarios aleatorios
  • Internet: emails, dominios, etc.
  • User Agent: cadenas de navegador
  • Payment: cadenas y números de tarjetas de crédito y SWIFT
  • Color: colores aleatorios
  • File: extensiones de archivo, tipos de archivo y nombres de archivo
  • Image: URLs de imágenes de relleno de distintos tipos
  • Uuid: IDs únicos
  • Barcode: varios tipos de códigos de barras, ej. ISBN13
  • Miscellaneous: códigos de encriptación, códigos de país, etc.
  • Biased: números aleatorios con parcialidad

Experimentemos con algunos cuántos más de estos métodos.

Información de Pago

El código de abajo genera diez personas, su  información de tarjeta de crédito y códigos de seguridad:

Aquí hay alguna información de salida del código de arriba:

Using Faker Generating Payment or Credit Card details

Imágenes

Using Faker Images

Aquí está un ejemplo simple de generación de imagen:

Pero también puedes generar gatos:

Using Faker Images of Cats

Podría ser la capacidad de generación de gatos la que me convenció. No puedo esperar para que la impresión tridimensional y la activación de alma funcione con cosas como esta.

Información Internacionalizada

Con el código de abajo, creé una tabla con cuatro columnas de nombres de Francia, Rusia, América y China:

Aquí está la salida:

Using Faker International Capability - Tables of names from four countries

Creando Direcciones Falsas de Email

Aquí hay un código de ejemplo para generar 25 direcciones de email desde proveedores gratuitos como Gmail y Yahoo:

Aquí está la salida resultante:

Using Faker - 25 Free Email Addresses

Generando Documentos XML

Faker ofrece un ejemplo útil de generar XML; sin embargo, este requiere que estés trabajando con un framework y tener una arquitectura de vista:

En Conclusión

Espero que esto haya servido como una introducción básica para ti a Faker, una librería PHP de código abierto gratuita e increíblemente útil.

Si quieres leer más, recomiendo Contenido de Relleno: Herramientas, Consejos y un Ejemplo Dinámico (Envato Tuts+) de Jim Nielsen, que proporciona una aproximación de diseñador de aplicación en generar datos. El sugiere que puedes ser más efectivo cuando aplicas datos falsos para crear una experiencia más realista durante tu proceso de diseño.

Si quisieras saber cuando llegue mi siguiente tutorial de Envato Tuts+, sígueme en @reifman en Twitter o revisa mi página de instructor. Actualmente, estoy trabajando en dos series que podrías apreciar:

  1. Serie Programando Con Yii2
  2. Construyendo Tu Startup con PHP sobre Planificador de Reuniones; ve a programar tu primera reunión ahí hoy.

Enlaces Relacionados

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.