Automatización de Administración con Apache JMeter
Apache JMeter es una gran herramienta para pruebas de carga, ¡pero también es un fantástico framework de automatización! Hay muchos flujos de trabajo administrativos de ArcGIS Enterprise y soluciones de automatización para su portal. Este Artículo se centra en usar JMeter para llamar a la API REST de ArcGIS con el fin de realizar tareas de gestión de usuarios que serían tediosas para un gran número de miembros. Afortunadamente, la GUI de JMeter facilita la configuración de la prueba y la construcción de solicitudes REST.
Los Planes de Prueba de Administración de Usuarios
Este proyecto incluye 6 Planes de Prueba para ArcGIS Enterprise 10.9/10.9.1:
- Agregar un nuevo usuario
- Una prueba simple y básica que solo agrega nuevos miembros
- Agregar un nuevo usuario con algunas opciones
- Una prueba que agrega nuevos miembros pero permite especificar la página de inicio y un Grupo del Portal
- Agregar un nuevo usuario con más opciones
- Una prueba que agrega nuevos miembros (página de inicio y Grupo) pero puede establecer licencias Add-on
- Establecer la pregunta/respuesta de seguridad para nuevos usuarios
- Establece la pregunta y respuesta de seguridad para los miembros recién agregados que no han iniciado sesión
- Deshabilitar un usuario
- Una prueba que deshabilita usuarios
- Habilitar un usuario
- Una prueba que habilita usuarios
La Configuración del Conjunto de Datos CSV de Usuarios
Para conveniencia, todos los Planes de Prueba en el proyecto trabajan con la misma lista de usuarios desde el mismo archivo. En los Planes de Prueba, esto se referencia mediante el elemento Configuración del Conjunto de Datos CSV llamado "Users File".

La Lista en Archivo de Texto de Usuarios
El archivo de texto incluido contiene información del usuario para trabajar con 10 miembros diferentes. Sin embargo, puede ajustarse y/o ampliarse según las necesidades de su organización.
- Hay muchas opciones diferentes para los campos role y userLicenseTypeId
- Estas elecciones también pueden impactar las licencias Add-on ya que algunas incluyen automáticamente derechos específicos

Nota: Se recomienda primero ejecutar los planes de prueba con una lista pequeña de usuarios para ver si todo está configurado correctamente para su Sitio.
Inicio de Sesión del Administrador
Con la excepción de uno, todos los Planes de Prueba incluidos tienen lógica para iniciar sesión como administrador incorporado del Portal for ArcGIS al comienzo del test. Para eficiencia esta acción solo se ejecuta una vez (al inicio) por cada hilo del test.
Nota: Al conectarse al componente Portal for ArcGIS de ArcGIS Enterprise, los Planes de Prueba enviarán solicitudes directamente a la instancia "arcgis" en el puerto 7443.
Agregar un Nuevo Usuario (portal_users_add1)
El Plan de Prueba portal_users_add1 es una forma simple para agregar nuevos miembros a Portal for ArcGIS.
- Las credenciales del administrador se especifican desde la sección Variables Definidas por el Usuario del Plan de Prueba
- A menos que se indique lo contrario, este paso se realiza al inicio de todas las pruebas incluidas

- Una vez que la prueba se autentica como administrador, llama a la función createUser y la repite por cada línea en el archivo que contiene la lista de usuarios
- Dado que esta prueba usa una sola Solicitud HTTP para crear al usuario es la forma más rápida y escalable para agregar nuevos miembros
- Esta prueba solo agrega usuarios, no realiza otras tareas como unir a un miembro a un grupo, establecer la página Inicio o seleccionar licencias add-on
- Para conveniencia, el nombre del usuario se añade a todas las transacciones y solicitudes basadas en usuario
- Esto ayuda a solucionar problemas si una iteración particular del test no pudo agregar un usuario específico
- Todos los tests incluidos siguen este patrón de diseño

Esta prueba es similar al proceso usado en el recurso Ejemplo: Agregar miembros al portal, utilidad línea de comandos y la función Agregar miembros desde un archivo integrada en Portal for ArcGIS.
Agregar un Nuevo Usuario (portal_users_add2)
El Plan de Prueba portal_users_add2 es una forma fácil para agregar nuevos miembros a Portal for ArcGIS pero incluye algunas opciones. Además de crear al usuario, esta prueba permite al administrador establecer propiedades adicionales como la página Inicio (también conocida como página principal) y un Grupo del Portal.
- Esta prueba amplía el proceso creación del usuario con 3 solicitudes adicionales por usuario
- Si crea miles de usuarios, puede notar que esta prueba tarda más en completarse que portal_users_add1
- Esto se debe a que se realiza más trabajo

Nota: Un nuevo miembro puede ser agregado realmente a más de un Grupo del Portal al crearlo. Sin embargo, por simplicidad, portal_users_add2 solo agrega al usuario a un grupo y el mismo grupo se usa para todos los miembros. El grupo usado se define desde la Variable Definida por el Usuario PortalGroupId. Este Id GUID debe buscarse manualmente desde su Sitio Portal for ArcGIS. Si no desea agregar al usuario a un Grupo, simplemente desactive la solicitud setProperties en la prueba.
Agregar un Nuevo Usuario (portal_users_add3)
El Plan de Prueba portal_users_add3 es una forma automatizada para agregar nuevos miembros a Portal for ArcGIS con las opciones más completas para un administrador. Esta prueba permite establecer la página Inicio y Grupo del Portal pero añade la capacidad para especificar licencias Add-on como ArcGIS Pro y Extensiones y ciertas extensiones tipo Usuario.
- Inmediatamente después de la autenticación del administrador, la prueba hace una llamada para recuperar GUIDs para las extensiones ArcGIS Pro y tipo Usuario
- Estos GUIDs serán usados más tarde cuando se asignen las licencias a los usuarios
<\/span><\/P>Las licencias adicionales agregan varias solicitudes más al proceso de creación de usuarios<\/SPAN>Aunque son potentes, estas solicitudes adicionales pueden añadir tiempo a la tarea general ya que se realizan para cada miembro que se crea<\/SPAN><\/LI><\/UL><\/LI>La prueba está configurada para asignar al usuario:<\/SPAN>ArcGIS Pro Advanced y todas las Extensiones disponibles (a partir de 10.9\/10.9.1)<\/SPAN><\/LI>Todas las extensiones de tipo Usuario<\/SPAN><\/LI><\/UL><\/LI><\/UL>
<\/span><\/P>Nota: Hay otras licencias Add-on como Aplicaciones y extensiones ArcGIS Runtime que no fueron incluidas en el Plan de Prueba portal_users_add3. Muchas de estas otras licencias requerirían su propia solicitud HTTP específica. Nuevamente, aunque esto puede ser conveniente y potente, puede añadir tiempo al proceso de agregar cada usuario. También hay algunas licencias como los paquetes de aplicaciones que no se incluyeron en la prueba ya que se incluyen automáticamente con el tipo de licencia de usuario (por ejemplo, Creator).<\/STRONG><\/FONT><\/P>Establecer la Pregunta y Respuesta de Seguridad para Nuevos Usuarios (portal_users_update_profile1)<\/H1>El Plan de Prueba portal_users_update_profile1<\/STRONG> es un poco único. Es la única prueba en el proyecto que no inicia sesión como administrador de Portal for ArcGIS. En cambio, inicia sesión como cada usuario y asume que está realizando el inicio de sesión inicial para cada miembro ya que establecerá su pregunta y respuesta de seguridad.<\/P>Preestablecer la pregunta y respuesta de seguridad es completamente opcional<\/LI>Su organización puede preferir que cada usuario establezca estos valores cuando inicie sesión por primera vez<\/LI><\/UL>
<\/span><\/P>Deshabilitar un Usuario (portal_users_disable1)<\/H1>El Plan de Prueba portal_users_disable1<\/STRONG> es una forma automatizada para tomar una lista de usuarios y deshabilitar su membresía en el portal. Una vez que la cuenta está deshabilitada, el usuario no puede iniciar sesión. Esta es una función menos destructiva que eliminar.<\/P>Deshabilitar usuarios es bastante sencillo y se realiza con una llamada REST a disableUsers<\/LI><\/UL>Nota: Para simplificar, la solicitud disableUsers en el Plan de Prueba portal_users_disable1 solo deshabilita un miembro a la vez. Sin embargo, para cada llamada a la función disableUsers, la solicitud aceptará grupos de usuarios para mejorar la eficiencia. A partir de 10.9\/10.9.1, disableUsers acepta hasta 25 usuarios a la vez.<\/STRONG><\/FONT><\/P>
<\/span><\/P>Nota: La prueba portal_users_disable1 puede ejecutarse sobre los mismos usuarios con éxito. Desde el punto de vista de ArcGIS Enterprise, simplemente está deshabilitando al(los) miembro(s) nuevamente.<\/STRONG><\/FONT><\/P>Habilitar un Usuario (portal_users_enable1)<\/H1>El Plan de Prueba portal_users_enable1<\/STRONG> es una forma automatizada para tomar una lista de usuarios y habilitar su membresía en el portal. Una vez que la cuenta está habilitada, el usuario puede iniciar sesión.<\/P>Habilitar usuarios es bastante sencillo y se realiza con una llamada REST a enableUsers<\/LI><\/UL>Nota: Para simplificar, la solicitud enableUsers en el Plan de Prueba portal_users_enable1 solo habilita un miembro a la vez. Sin embargo, para cada llamada a la función enableUsers, la solicitud aceptará grupos de usuarios para mejorar la eficiencia. A partir de 10.9\/10.9.1, enableUsers acepta hasta 25 usuarios a la vez.<\/FONT><\/STRONG> <\/P>
Nota: La prueba portal_users_enable1 puede ejecutarse sobre los mismos usuarios con éxito. Desde el punto de vista de ArcGIS Enterprise, simplemente está habilitando al(los) miembro(s) nuevamente.
<\/
STRONG>
<\/
FONT>
<\/
STRONG>
<\/
P>
La Configuración del Grupo de Hilos
A diferencia de las pruebas anteriores del Artículo Apache JMeter que dominan el tiempo, los Planes de Prueba en este proyecto están basados en iteraciones. En otras palabras, cuando se crean o deshabilitan usuarios específicos, solo necesitamos trabajar con los usuarios relevantes de la lista una vez.
<\/
SPAN>
<\/
P>
La configuración "step load" del Grupo de Hilos que se incluye por defecto con cada instalación Apache JMeter incluye un ajuste muy conveniente llamado Loop Count para especificar exactamente cuántas iteraciones debe ejecutar el Plan de Prueba
<\/
SPAN>
El ajuste Loop Count debe coincidir con el número de líneas en el "Archivo Usuarios" que contienen miembros para agregar/deshabilitar/habilitar
<\/
SPAN>
<\/
LI>
<\/
UL>
<\/
LI>
<\/
UL>
Nota: Todos los Planes de Prueba en el proyecto están configurados con la misma configuración del Grupo de Hilos. Además, todas las pruebas incluidas se ejecutan con un hilo concurrente.
<\/
STRONG>
<\/
FONT>
<\/
P>

Ejecución de Pruebas
A diferencia de las pruebas anteriores del Artículo Apache JMeter que se ejecutan desde línea de comandos, probablemente puedas ejecutar estos Planes de Prueba administrativos directamente desde la GUI. Por supuesto, esto depende del número de usuarios que planeas crear, deshabilitar o habilitar. Si trabajas con unos pocos cientos, entonces la GUI estaría bien. Sin embargo, si planeas crear miles o decenas de miles (o más), querrás ejecutar los Planes desde línea de comandos para obtener la mejor eficiencia en el uso de recursos del equipo donde se ejecuta la prueba.
Mira el script runMe.bat incluido con el proyecto portal_administration1.zip como ejemplo sobre cómo ejecutar una prueba según lo recomendado por el equipo Apache JMeter. Este script está configurado para ejecutar portal_users_add3 pero puede ajustarse fácilmente para ejecutar cualquiera de las pruebas.
- El script runMe.bat contiene una variable jmeterbin que deberá establecerse al valor apropiado para tu entorno
Nota: Siempre se recomienda coordinar la hora de inicio con el personal adecuado dentro de tu organización. Esto asegura un impacto mínimo a los usuarios y otros colegas que también puedan necesitar usar tu Sitio ArcGIS Enterprise on-premise.
Validación de los Planes de Prueba
Si la prueba se ejecuta desde la GUI, hay varios listeners añadidos a todos los Planes incluidos que ofrecen retroalimentación inmediata sobre el estado.
- El elemento View Results Tree ofrece una forma conveniente para examinar rápidamente el estado de cada transacción (por ejemplo "Create User Account -- portalpublisher2") y sus respectivas solicitudes (por ejemplo "/arcgis/portaladmin/security/users/createUser--portalpublisher2")
- Gracias a las reglas Response Assertion añadidas a cada solicitud, la marca verde es un indicador confiable del éxito en una transacción o solicitud

- The View Results in Table element offers a handy way to see status of each transaction and <\/EM><\/STRONG>su tiempo de respuesta todo desde una sola tabla<\/SPAN><\/LI><\/UL>
<\/span><\/P>Solución de problemas en la ejecución de pruebas desde la línea de comandos<\/H2>Como se mencionó anteriormente, cuando se trabaja con grandes cantidades de usuarios, el enfoque recomendado es ejecutar los Planes de Prueba desde la línea de comandos. Sin embargo, a los administradores les interesará mucho entender qué usuarios, si es que hubo alguno, encontraron errores a través de la automatización. Es aquí donde el Informe de Pruebas de JMeter puede ofrecer una gran perspectiva.<\/P>Desde el gráfico circular Resumen de Solicitudes en la página inicial del Informe de Pruebas, puede ver rápidamente si se encontraron errores<\/LI><\/UL>
<\/span><\/P> Si se encontraron errores durante la ejecución de la prueba, la tabla Estadísticas (parte inferior de la primera página del informe) puede facilitar encontrar las solicitudes de usuario fallidas al ordenar por la columna FAIL<\/LI><\/UL>
<\/span><\/P>Reflexiones finales<\/H1>Existen muchos frameworks, herramientas y utilidades para realizar la automatización de tareas administrativas para ArcGIS Enterprise. Lo más probable es que todos tengan sus propias fortalezas. Apache JMeter es útil ya que proporciona una interfaz gráfica para construir y ajustar las solicitudes REST necesarias para realizar las funciones. Los informes HTML\/JavaScript que pueden crearse automáticamente al final de un informe de prueba son un buen complemento para entender si todo el trabajo fue exitoso o qué partes particulares fallaron.<\/P>Para descargar el Plan de Pruebas Apache JMeter utilizado en este Artículo vea: portal_administration1.zip<\/A> <\/STRONG><\/LI><\/UL>Una breve palabra sobre el uso de múltiples Threads<\/H2>Todas las pruebas incluidas podrían configurarse para usar múltiples Threads concurrentes para una ejecución más rápida. Esto está bien desde un punto de vista técnico, pero todas estas pruebas realizan operaciones de escritura en la base de datos interna para el componente Portal for ArcGIS. Como con cualquier base de datos, tales operaciones pueden ser intensivas en recursos y solo pueden ir tan rápido. Usar demasiados Threads concurrentes puede realmente ralentizar el rendimiento de estas pruebas.<\/P>Una breve palabra sobre eliminar usuarios<\/H2>Las pruebas incluidas con el proyecto no incluían una operación para eliminar usuarios. Eliminar un miembro del portal es permanente (sin copias de seguridad disponibles) y tales herramientas que automatizan esta acción deben usarse con precaución. Además, algunos usuarios pueden haber subido una gran cantidad de contenido al portal. Este contenido necesitaría ser eliminado o transferido a otro usuario antes de eliminar a ese miembro.<\/P> <\/P> <\/P> <\/P>Apache JMeter<\/A> lanzado bajo la <\/SPAN><A href="https:\/\/apache.org\/