Pruebas de WordPress para empresas de hosting

Última actualización: 25 de noviembre de 2020

Las empresas de hosting pueden tener alojados centenares de sitos web con WordPress, y por eso es importante que su configuración sea lo más compatible posible con el software.

Para verificar esta compatibilidad, el equipo de la Comunidad Hosting de WordPress pone a disposición una serie de pruebas PHPUnit con las que poder comprobar el funcionamiento de WordPress en cualquier entorno.

Requerimientos

Para hacer las pruebas hace falta poca cosa. Lo primero es tener una infraestructura con la configuración habitual de tu sistema. Por otro lado, una base de datos en la que se puedan hacer pruebas (ya que se creará y destruirá).

Instalando el phpunit-test-runner

El phpunit-test-runner es una pequeña pieza de pruebas de PHPUnit específicamente pensado para empresas de hosting. Existe toda una documentación sobre esta herramienta. Además, si lo quieres, puedes hacer aparecer los resultados de tus pruebas en la página de Host Test Results de WordPress.

La herramienta se puede ejecutar de forma manual o a través de un sistema automatizado con Travis. Para ver el funcionamiento y el objetivo de este documento haremos las pruebas de forma manual.

Instalación del Runner

Lo primero que haremos será descargar y sincronizar la herramienta.

cd /home/
git clone https://github.com/WordPress/phpunit-test-runner.git
cd phpunit-test-runner/

El siguiente paso será el de configurar el entorno. Para ello primero haremos una copia del fichero de ejemplo y posteriormente lo configuraremos.

cp .env.default .env
vim .env

El contenido (de forma resumida) puede ser algo así:

export WPT_PREPARE_DIR=/home/wordpress
export WPT_TEST_DIR=/home/wordpress
export WPT_REPORT_API_KEY=
export WPT_REPORT_URL=
export WPT_DB_NAME=wordpress
export WPT_DB_USER=wordpress
export WPT_DB_PASSWORD=__PASSWORD__
export WPT_DB_HOST=localhost
export WPT_TABLE_PREFIX=${WPT_TABLE_PREFIX-wptests_}
export WPT_PHP_EXECUTABLE=${WPT_PHP_EXECUTABLE-php}
WPT_PHPUNIT_CMD=
WPT_RM_TEST_DIR_CMD=
export WPT_SSH_CONNECT=
export WPT_SSH_OPTIONS=
export WPT_SSH_PRIVATE_KEY_BASE64=
export WPT_DEBUG=

Configuraremos la carpeta donde se harán las pruebas de descarga del software de WordPress y los accesos de la base de datos para poder preparar las pruebas.

Probando el test

Antes de hacer las pruebas actualizaremos todo lo necesario a la última versión y activaremos la configuración del entorno.

cd /home/phpunit-test-runner/
git pull
npm update
source .env

A partir de aquí, sólo hemos de ejecutar los 4 ficheros que hacen el conjunto de las pruebas.

El primero de ellos es el sistema que verifica que el entorno está listo para funcionar.

php prepare.php

El segundo de ellos es el que realiza las pruebas en sí.

php test.php

Una vez acaben las pruebas, se puede generar el report. SI has configurado un usuario y contraseña se enviará a WordPress.org.

php report.php

Este sistema genera dos ficheros en los que está la información de lo que se mandará como respuesta a las pruebas que se están analizando. Puedes ver el contenido de los ficheros fácilmente.

cat /home/wordpress/env.json
cat /home/wordpress/junit.xml

Y, para acabar, una vez tienes el sistema terminado, sólo hemos de limpiar los ficheros y la base de datos para poder realizar una siguiente prueba en otro momento.

php cleanup.php

Creando tu bot para WordPress.org

SI quieres que los resultados de las pruebas aparezcan en la página de WordPress.org puedes crear un usuario para ello.

Lo primero será crear un usuario en WordPress.org. Si tu empresa se llama, por ejemplo, Somos Hosting, S.L., puedes llamar a tu usuarios algo como somoshostingbot. Ten en cuenta que la cuenta de correo asociada debe verificarse con frecuencia, ya que llegarán correos respecto al posible funcionamiento de las pruebas.

Crea una issue en la página del test pidiendo la inclusión del bot en la página de resultados como «Test Reporter», indicando la cuenta de correo que has usado con ese usuario.

Cuando se haya creado el usuario en el sistema se te dará acceso a una contraseña de forma que puedas configurar que el sistema mande la información de forma automática. Tendrás que entrar en Users -> Your Profile y allí generar la contraseña de aplicación. Posteriormente podrás modificar la constante del entorno con algo similar a export WPT_REPORT_API_KEY='somoshostingbot:ABCD 1234 abcd 4567 EFGH efgh'.

Pruebas completas

Si quieres hacer una prueba completa en una configuración desde cero, tienes algunas opciones:

Mejorando la configuración

No hay que olvidar que el objetivo de esta herramientas es la verificación de que nuestro entorno e infraestructura es la oóptima para que WordPress funcione, por lo que, siguiendo el ejemplo de antes, podríamos hacer varias mejoras como la instalación de la extensión de bcmath, gd, libsodium, mcrypt, mod_xml y imagick o utilidades como ghostscript y imagemagick.

¿El objetivo? Que no haya errores y tener luz verde para la configuración perfecta.

Equipo de Hosting en la Comunidad WordPress

SI eres una empresa que de alguna manera está en el día a día de ofrecer servicios relacionados con WordPress te recomiendo que sigas atento a las publicaciones del equipo Hosting de la Comunidad WordPress, además de seguir atentamente las conversaciones del canal de Slack #hosting-community (ver los horarios de reuniones del equipo), donde podrás estar en contacto con los responsables de otras empresas de hosting.


Sobre este documento

Este documento está regulado por la licencia EUPL v1.2, publicado en WP SysAdmin y creado por Javier Casares. Por favor, si utilizas este contenido en tu sitio web, tu presentación o cualquier material que distribuyas, recuerda hacer una mención a este sitio o a su autor, y teniendo que poner el material que crees bajo licencia EUPL.

Servicios de Administración de Sistemas WordPress

¿Tienes un sitio web con WordPress de alto tráfico? ¿Eres una Agencia con servidores con cPanel, Plesk u otro panel en los que mantienes WordPress para tus clientes?

Si es así y te interesa un servicio profesional de mantenimiento de infraestructura WordPress y de mejora del rendimiento de tus sitios web o los de tus clientes, contacta conmigo.