Ruta de Network Analyst
En pocas palabras, el solucionador de rutas de Network Analyst se utiliza para encontrar la forma más rápida de ir de un lugar a otro. Este camino recorrido podría involucrar solo una ubicación de inicio y una de fin, pero opcionalmente podría detenerse en varios lugares mientras también se le pide al solucionador que genere indicaciones paso a paso para cada ruta en la solución.
Nota: La funcionalidad de rutas está disponible con una licencia de Network Analyst.
Prueba de carga de un servicio de ruta de Network Analyst
Network Analyst está lleno de muchas capacidades y características para la resolución de rutas. Tales soluciones pueden ejecutarse a través de ArcGIS Pro, pero muchas veces se consumen a través de un servicio de ArcGIS. Dado que proporciona tecnología líder en la industria para soluciones de rutas, es lógico querer realizar una prueba de carga en su servicio solucionador (de ruta) que se ejecuta localmente para ver su potencial de escalabilidad.
Hay varios tipos de análisis proporcionados por la extensión Network Analyst, este Artículo usa rutas ya que son muy fáciles de trabajar... los únicos insumos requeridos son al menos dos puntos válidos de paradas. Esta característica lo convierte en una buena opción para demostrar cómo generar datos y usarlos en una prueba de carga contra un servicio de ruta.
Nota: El recorrido en este Artículo utilizó ArcGIS Pro 2.9 con servicios Network Analyst que se ejecutaron en un despliegue ArcGIS Enterprise 10.9.
Cómo probar un servicio de ruta Network Analyst?
Datos del tutorial Network Analyst ArcGIS Pro
La comprensión de los procesos en este Artículo es más efectiva si los pasos pueden seguirse usando los mismos datos. Para tal tarea, el equipo de Network Analyst ha puesto a disposición un excelente conjunto de datos.
Hay un tutorial encontrado en arcgis.com llamado Datos del tutorial Network Analyst ArcGIS Pro. Comprimido, pesa alrededor de 132MB y consiste en datos Network Analyst para varias ciudades diferentes: San Diego, París y San Francisco. El Sistema de Coordenadas Geográficas es: WGS 1984 (WKID: 4326). Los datos son accesibles públicamente.
Nota: Los ejemplos en este Artículo se centrarán en el conjunto de datos de San Diego.
- Vista de los datos Streets de San Diego desde ArcGIS Pro (con mapa base Topográfico):

- Las capas Streets, Walking_Pathways o Network Dataset (NewSanDiego_ND) no necesitan estar habilitadas para utilizar las capacidades de Network Analyst
- En el ejemplo anterior, están habilitadas para actuar como punto de referencia de las calles de San Diego
- Este Artículo no cubrirá los detalles sobre cómo crear, configurar o publicar un dataset network en ArcGIS Enterprise. Para información sobre tales tareas, consulte:
Nota: Los ejemplos del solucionador route en este Artículo usan un servicio map (con la capacidad network analysis) en lugar de un servicio geoprocessing. El servicio map usa ejecución síncrona.
Generación de datos para prueba
Este esfuerzo de prueba requerirá puntos válidos stop para usar dentro del test JMeter.
Como con otros Artículos JMeter en Community, necesitamos buenos datos test para obtener el máximo valor de los resultados. Y como antes, las Load Testing Tools hacen corto trabajo con esta tarea. Incluso hay una herramienta específica para crear datos route.
La versión 1.3.0 añade algunas mejoras agradables a la herramienta "Generate Data (Solve Route)".
Disponibilizando las herramientas desde ArcGIS Pro
Una vez que el proyecto load-testing-tools ha sido descargado a su máquina, coloque la carpeta descomprimida en un directorio accesible o hecho accesible por ArcGIS Pro. Si tiene una versión previa ya instalada, esta versión actualizada puede colocarse junto a ella (aunque con un nombre diferente de carpeta) o reemplazar completamente la versión anterior.
Por ejemplo:
- Coloque la carpeta load-testing-tools en C:\Users\[username]\Documents\ArcGIS
- Use la conexión Agregar Carpeta desde Catálogo en ArcGIS Pro para listar el contenido de este directorio:

La herramienta "Generate Data (Solve Route)" puede crear datos test desde el servicio (map), una copia local del dato o los datos dentro de una geodatabase enterprise. Para este ejemplo, cualquier dato en WGS 1984 (WKID: 4326) con un área interés centrada alrededor San Diego podría usarse.
Lanzar la herramienta Generate Data (Solve Route)
- Lanzar la herramienta Generate Data (Solve Route) debería presentar una interfaz similar a la siguiente:

- En su forma más simple, solo necesita especificarse la ruta del archivo csv, que contendrá los puntos stop
- Sin embargo, mientras queremos generar puntos aleatorios para usar como paradas, nos gustaría evitar crearlos en bahías, lagos u océano
- Aquí es donde entra el parámetro opcional Polígono Restrictivo
- Este campo input puede usarse para referenciar una capa data y limitar espacialmente dónde se generan los puntos
- En realidad, ajustaremos todos los valores predeterminados
- Vista del polígono (en rosa) que delimita el área interés del dato streets San Diego en ArcGIS Pro:

Nota: Este polígono fue creado manualmente y no está incluido con el conjunto datos San Diego
Nota: Desde el punto vista testing, el polígono no necesita incluir cada segmento capa streets
Entradas herramienta Generate Data (Solve Route)
- Ajuste Número Tests a:
- Ajuste Paradas Por Test a:
- Puntear Polígono Restrictivo a:
- Ajuste Salida a una ubicación ruta archivo donde se escribirán los resultados:
- C:\Users\[username]\Documents\ArcGIS\Projects\NetworkAnalystMap1\sandiegostops1.csv
- Clic Ejecutar para ejecutar la herramienta
</ P >< UL >< LI >Examinando el archivo CSV revelará los datos generados stop data< UL class = "lia-list-style-type-circle " >< LI >< FONT color="#000000">Estos datos se utilizarán directamente en la prueba Apache JMeter como entrada
Ver el archivo en un editor de texto debería mostrar algo similar a lo siguiente:

- Las características del solucionador de rutas son increíblemente amplias y podrían aceptar otros datos espaciales, por ejemplo:
- Barreras, Barreras de Polilínea y Barreras de Polígono son otras entradas que podrían pasarse como parámetro de solicitud
- La generación de estas otras entradas para solicitudes del solucionador de rutas no se cubrirá en este Artículo
Visualizar espacialmente los puntos generados
Los puntos generados que se usan para las paradas en las solicitudes pueden agregarse al proyecto ArcGIS Pro para ver espacialmente su ubicación.
- Desde ArcGIS Pro, use Catálogo para localizar y abrir la geodatabase de archivos dentro del proyecto
- Localice la clase de entidad random_pts
- Agregue la clase de entidad al Mapa Actual:

El Plan de Prueba Route Solver
- Para descargar el Plan de Prueba Apache JMeter usado en este Artículo vea: route_solver1.zip
- Abrir el Plan de Prueba en Apache JMeter debería verse similar a lo siguiente:
- Ajuste las Variables Definidas por el Usuario para adaptarlas a su entorno

Nota: La versión de Apache JMeter usada para este Artículo fue 5.4.3 (esta versión proporciona actualizaciones críticas de seguridad para Apache Log4j2). Se recomienda encarecidamente que todas las implementaciones de Apache JMeter usen la última versión disponible.
Solicitud HTTP
La prueba del solucionador de rutas es simple y bastante directa. Toda la lógica de la prueba se encuentra dentro de un solo objeto Solicitud HTTP de JMeter. Siguiendo el estilo de prueba usado en Artículos anteriores, este elemento de solicitud se coloca dentro de un Controlador de Transacciones.

Los pares clave/valor para la solicitud en esta prueba JMeter se basan en dos factores:
- La funcionalidad disponible en el servicio Network Analyst publicado (y los datos subyacentes)
- Los valores en esta prueba fueron tomados directamente de los predeterminados usados desde el endpoint REST del servicio San Diego publicado, por ejemplo:
- La versión de ArcGIS Enterprise (ArcGIS Server)
- Algunas versiones añaden nuevas capacidades
- Esta prueba se basa en el servicio publicado del conjunto de datos San Diego y ArcGIS Enterprise 10.9
Diferentes conjuntos de datos de red pueden tener diferentes opciones de parámetros de solicitud disponibles o poblados, por defecto. Algunos parámetros si están habilitados (como returnDirections), indicarán al solucionador que devuelva más información. Esto a su vez solicita al servicio hacer más trabajo lo que aumentará el tiempo de respuesta de la solicitud.
Nota: La vista de la Solicitud HTTP desde la Tabla de Contenidos (lado izquierdo del Plan de Prueba) aparecerá como una mezcla de variables JMeter y cadenas. Esto es por diseño. Estos valores se poblarán durante la reproducción (en el objeto Ver Resultados Árbol y archivo crudo de resultados).
Configuración del Grupo de Hilos
El Plan de Prueba JMeter está configurado para una prueba de carga de 20 minutos. Con este ejemplo usando dos paradas para cada solicitud de ruta, el solucionador debería funcionar bien y devolver una buena cantidad de muestras (por ejemplo, respuestas del servidor) para cada paso.
- Diferentes entornos y datos pueden requerir una configuración alternativa para lograr los resultados deseados, ajuste la configuración del hilo según sea necesario

Validando el Plan de Prueba
Como buena práctica, siempre es una buena idea validar los resultados que regresan dentro del GUI JMeter antes de ejecutar la prueba real desde la línea de comandos.
- Use el listener Ver Resultados Árbol para ayudar con la validación
- El Plan de Prueba para este Artículo incluye un Listener Ver Resultados Árbol pero está deshabilitado
- Habilítelo para ver los resultados cuando se ejecute la prueba desde el GUI
- Desde el GUI, inicie la prueba
- Deje correr la prueba por unos 20 segundos aproximadamente
Transacciones
- Seleccione una de las Transacciones "Route"
- La sección Ver Resultados Árbol debería parecerse a lo siguiente:

- En este ejemplo, todas las transacciones se completaron exitosamente
- A veces al detener la reproducción, las últimas Transacciones en Ver Resultados Árbol pueden fallar porque se detuvo "a mitad de solicitud"; esto es seguro ignorarlo
Solicitudes
- Expanda una de las Transacciones "Route"
- Seleccione la solicitud HTTPS dentro de ella
- Los resultados deberían parecerse a lo siguiente:

- En este ejemplo, la solicitud seleccionada se completó exitosamente (como indica la marca verde)
- El éxito del Transaction padre ya indicó este estado
- Desde la pestaña resultado Sampler, eche un vistazo rápido al campo Tamaño en bytes
- En este ejemplo, el Tamaño de Solicitud fue aproximadamente 15KB lo que usualmente significa que se devolvieron buenos datos geométricos; en otras palabras, las respuestas no estaban "vacías" y es más prueba que fue exitoso
- Examine la URL de la solicitud
- Como se mencionó antes, este valor del URL se poblará en tiempo real
- Haga clic en la pestaña Datos respuesta y subpestaña Cuerpo respuesta
- Esto muestra una vista textual de los datos devueltos por la solicitud:

Nota: Las geometrías de ruta devueltos se representan comúnmente en aplicaciones JavaScript basadas en navegadores web. Aunque Apache JMeter es un cliente (de prueba), no representa espacialmente estas respuestas de geometría del servidor de esa manera.<\/STRONG><\/FONT><\/P>Ejecución de la Prueba<\/H1>La prueba de carga debe ejecutarse de la misma manera que un Plan de Pruebas típico de JMeter.<\/P>Consulte el script runMe.bat incluido con el proyecto route_solver1.zip para un ejemplo sobre cómo ejecutar una prueba según lo recomendado por el equipo de Apache JMeter. <\/P>El script runMe.bat contiene una variable jmeterbin<\/EM> <\/SPAN>que deberá configurarse con el valor apropiado para su entorno<\/LI>Si el servicio de rutas Network Analyst se publicó como dedicado, <\/FONT>ajuste las instancias mínimas y máximas en consecuencia antes de ejecutar la prueba de carga<\/FONT>
Para más información, consulte: Configurar ajustes de instancia del servicio<\/A> <\/STRONG><\/FONT><\/LI><\/UL><\/LI>El servicio de rutas publicado utilizado en este Artículo fue dedicado con las instancias máximas establecidas en 4- El componente ArcGIS Server se ejecutaba en un sistema con 4 núcleos CPU<\/LI><\/UL><\/LI><\/UL>
Nota: Se recomienda siempre<\/U><\/EM> coordinar la hora y duración del inicio de la prueba de carga con el personal adecuado de su organización. Esto asegura un impacto mínimo a los usuarios y otros colegas que también puedan necesitar usar su Sitio ArcGIS Enterprise local. Además, esto ayuda a prevenir ruido del sistema<\/EM> de otras actividades y usos que puedan "contaminar" los resultados de la prueba.<\/STRONG><\/FONT><\/P>Nota: Por varias razones, se recomienda encarecidamente nunca realizar pruebas de carga en ArcGIS Online<\/EM><\/U>.<\/STRONG><\/FONT><\/P>
Informe JMeter<\/H1>Curva de Rendimiento (Throughput)<\/H2>El informe generado automáticamente por JMeter puede proporcionar información sobre el rendimiento del servicio de rutas bajo cargaDado que cada Transacción de Ruta contenía una solicitud, ambas métricas (solicitud y transacción) mostraron prácticamente el mismo valor; esto es esperado dado el diseño de la prueba<\/LI><\/UL><\/LI>En este caso, el rendimiento máximo para las soluciones de ruta con dos paradas fue aproximadamente 15 transacciones por segundoDado el entorno probado, esto equivale a alrededor de 54,000 soluciones de ruta por hora <\/LI><\/UL><\/LI><\/UL>
<\/span><\/P>Curvas de Rendimiento<\/H2>El informe generado automáticamente por JMeter también puede proporcionar información sobre el desempeño del servicio de rutas bajo cargaDado que cada Transacción de Ruta contenía una solicitud, ambas métricas (solicitud y transacción) mostraron prácticamente el mismo valor; esto es esperado dado el diseño de la prueba<\/LI><\/UL><\/LI>El desempeño de las solicitudes de ruta fue bueno y estuvo por debajo de 1 segundo durante toda la prueba de cargaDonde el rendimiento alcanzó su pico primero a 15 transacciones por segundo es donde se midió el tiempo de respuestaEn este punto de la prueba, el tiempo promedio de respuesta fue aproximadamente 333 ms o 0.33 segundos<\/LI><\/UL><\/LI><\/UL><\/LI><\/UL>
<\/span><\/P>También puede ser útil ver los tiempos de respuesta graficados respecto a la carga escalonada (hilos configurados)Los gráficos anteriores mostraron valores respecto al tiempo<\/LI><\/UL><\/LI><\/UL>
<\/span><\/P>Reflexiones Finales<\/H1>El Plan de Pruebas Apache JMeter en este Artículo representa un enfoque programático para aplicar carga a un servicio Network Analyst route. Una de las fortalezas de esta prueba es que es fácil configurar y mantener.<\/P>El informe generado automáticamente por JMeter proporciona gráficos y resúmenes que pueden usarse para analizar rápidamente el desempeño y escalabilidad del servicio route.<\/P>Para descargar el Plan de Pruebas Apache JMeter usado en este Artículo, vea: route_solver1.zip<\/<A> <\/<STRONG>