Automação de Administração com Apache JMeter
Apache JMeter é uma ótima ferramenta de teste de carga, mas também é uma estrutura fantástica de automação! Existem muitos fluxos de trabalho administrativos do ArcGIS Enterprise e soluções de automação para seu portal. Este Artigo foca no uso do JMeter para chamar a API REST do ArcGIS para realizar tarefas de gerenciamento de usuários que seriam tediosas para um grande número de membros. Felizmente, a GUI do JMeter facilita a configuração do teste e a construção das requisições REST.
Os Planos de Teste de Administração de Usuários
Este projeto inclui 6 Planos de Teste para ArcGIS Enterprise 10.9/10.9.1:
- Adicionar um novo usuário
- Um teste simples e básico que apenas adiciona novos membros
- Adicionar um novo usuário com algumas opções
- Um teste que adiciona novos membros mas permite especificar a página inicial e um Grupo do Portal
- Adicionar um novo usuário com mais opções
- Um teste que adiciona novos membros (página inicial e Grupo) mas pode definir licenças Add-on
- Definir a pergunta/resposta de segurança para novos usuários
- Define a pergunta e resposta de segurança para membros recém-adicionados que ainda não fizeram login
- Desabilitar um usuário
- Um teste que desabilita usuários
- Habilitar um usuário
- Um teste que habilita usuários
A Configuração CSV Data Set dos Usuários
Para conveniência, todos os Planos de Teste no projeto utilizam a mesma lista de usuários do mesmo arquivo. Nos Planos de Teste, isso é referenciado pelo elemento CSV Data Set Config chamado "Users File".

A Lista em Arquivo Texto dos Usuários
O arquivo texto incluído contém informações dos usuários para trabalhar com 10 membros diferentes. No entanto, ele pode ser ajustado e/ou expandido para atender às necessidades da sua organização.
- Existem muitas opções diferentes para os campos role e userLicenseTypeId
- Essas escolhas também podem impactar as licenças Add-on, pois algumas incluem automaticamente direitos específicos

Nota: Recomenda-se executar primeiro os planos de teste com uma pequena lista de usuários para verificar se tudo está configurado corretamente para seu Site.
Login do Administrador
Com exceção de um, todos os Planos de Teste incluídos possuem lógica para fazer login como administrador embutido do Portal for ArcGIS no início do teste. Para eficiência, esta ação é executada apenas uma vez (no início) por cada thread do teste.
Nota: Ao conectar-se ao componente Portal for ArcGIS do ArcGIS Enterprise, os Planos de Teste enviarão requisições diretamente para a instância "arcgis" na porta 7443.
Adicionar um Novo Usuário (portal_users_add1)
O Plano de Teste portal_users_add1 é uma maneira simples de adicionar novos membros ao Portal for ArcGIS.
- As credenciais do administrador são especificadas na seção Variáveis Definidas pelo Usuário do Plano de Teste
- Exceto onde indicado, esta etapa é realizada no início de todos os testes incluídos

- Uma vez que o teste autentica como administrador, ele chama a função createUser e repete para cada linha no arquivo contendo a lista de usuários
- Como este teste usa uma única Requisição HTTP para criar o usuário, é a forma mais rápida e escalável para adicionar novos membros
- Este teste apenas adiciona usuários, não realiza outras tarefas como juntar um membro a um grupo, definir a página inicial ou selecionar licenças add-on
- Para conveniência, o nome do usuário é anexado a todas as transações e requisições baseadas em usuário
- Isto ajuda na solução de problemas se uma iteração específica do teste não conseguir adicionar um usuário específico
- Todos os testes incluídos seguem este padrão de design

Este teste é similar ao processo usado no recurso Exemplo: Adicionar membros ao portal, utilitário linha de comando e recurso Adicionar membros a partir de um arquivo incorporado no Portal for ArcGIS.
Adicionar um Novo Usuário (portal_users_add2)
O Plano de Teste portal_users_add2 é uma maneira fácil de adicionar novos membros ao Portal for ArcGIS mas inclui algumas opções. Além da criação do usuário, este teste permite ao administrador definir propriedades adicionais como a página inicial (também conhecida como página inicial) e um Grupo do Portal.
- Este teste expande o processo de criação do usuário por 3 requisições adicionais por usuário
- Se estiver criando milhares de usuários, você pode notar que este teste leva mais tempo para completar que o portal_users_add1
- Isto se deve ao fato que mais trabalho está sendo realizado

Nota: Um novo membro pode realmente ser adicionado a mais de um Grupo do Portal na criação. No entanto, por simplicidade, portal_users_add2 apenas adiciona o usuário a um grupo e o mesmo grupo é usado para todos os membros. O grupo usado é definido pela Variável Definida pelo Usuário PortalGroupId. Este Id GUID precisa ser consultado manualmente no seu Site Portal for ArcGIS. Se você não deseja adicionar o usuário a um Grupo, simplesmente desative a requisição setProperties no teste.
Adicionar um Novo Usuário (portal_users_add3)
O Plano de Teste portal_users_add3 é uma forma automatizada para adicionar novos membros ao Portal for ArcGIS com mais opções para um administrador. Este teste permite definir a página inicial e Grupo do Portal mas adiciona a capacidade de especificar licenças Add-on como ArcGIS Pro e Extensões e certas extensões do tipo Usuário.
- Imediatamente após a autenticação do administrador, o teste faz uma chamada para recuperar GUIDs das extensões ArcGIS Pro e tipo Usuário
- Estes GUIDs serão usados posteriormente ao atribuir as licenças aos usuários
<\/span><\/P>As licenças adicionais adicionam várias solicitações ao processo de criação de usuário<\/SPAN>Embora poderosas, essas solicitações adicionais podem aumentar o tempo da tarefa geral, pois são realizadas para cada membro criado<\/SPAN><\/LI><\/UL><\/LI>O teste está configurado para atribuir ao usuário:<\/SPAN>ArcGIS Pro Advanced e todas as Extensões disponíveis (a partir da versão 10.9\/10.9.1)<\/SPAN><\/LI>Todas as extensões do tipo User<\/SPAN><\/LI><\/UL><\/LI><\/UL>
<\/span><\/P>Nota: Existem outras licenças Add-on, como Aplicativos e extensões ArcGIS Runtime, que não foram incluídas no Plano de Teste portal_users_add3. Muitas dessas outras licenças exigiriam suas próprias solicitações HTTP específicas. Novamente, embora isso possa ser conveniente e poderoso, pode aumentar o tempo do processo de adicionar cada usuário. Também existem algumas licenças como App bundles que não foram incluídas no teste, pois são automaticamente incluídas com o tipo de licença do usuário (por exemplo, Creator).<\/STRONG><\/FONT><\/P>Definir a Pergunta e Resposta de Segurança para Novos Usuários (portal_users_update_profile1)<\/H1>O Plano de Teste portal_users_update_profile1<\/STRONG> é um pouco único. É o único teste no projeto que não faz login como administrador do Portal for ArcGIS. Em vez disso, ele faz login como cada usuário e assume que está realizando o login inicial para cada membro, pois definirá sua pergunta e resposta de segurança.<\/P>Pré-definir a pergunta e resposta de segurança é completamente opcional<\/LI>Sua organização pode preferir que cada usuário defina esses valores quando fizer o primeiro login<\/LI><\/UL>
<\/span><\/P>Desabilitar um Usuário (portal_users_disable1)<\/H1>O Plano de Teste portal_users_disable1<\/STRONG> é uma forma automatizada de pegar uma lista de usuários e desabilitar sua associação ao portal. Uma vez que a conta é desabilitada, o usuário não pode fazer login. Esta é uma função menos destrutiva do que excluir.<\/P>Desabilitar usuários é bastante simples e realizado com uma chamada REST para disableUsers<\/LI><\/UL>Nota: Para simplificar, a solicitação disableUsers no Plano de Teste portal_users_disable1 está desabilitando apenas um membro por vez. No entanto, para cada chamada à função disableUsers, a solicitação aceitará grupos de usuários para maior eficiência. A partir da versão 10.9\/10.9.1, disableUsers aceita até 25 usuários por vez.<\/STRONG><\/FONT><\/P>
<\/span><\/P>Nota: O teste portal_users_disable1 pode ser executado repetidamente sobre os mesmos usuários com sucesso. Do ponto de vista do ArcGIS Enterprise, ele está apenas desabilitando o(s) membro(s) novamente.<\/STRONG><\/FONT><\/P>Habilitar um Usuário (portal_users_enable1)<\/H1>O Plano de Teste portal_users_enable1<\/STRONG> é uma forma automatizada de pegar uma lista de usuários e habilitar sua associação ao portal. Uma vez que a conta é habilitada, o usuário pode fazer login.<\/P>Habilitar usuários é bastante simples e realizado com uma chamada REST para enableUsers<\/LI><\/UL>Nota: Para simplificar, a solicitação enableUsers no Plano de Teste portal_users_enable1 está habilitando apenas um membro por vez. No entanto, para cada chamada à função enableUsers, a solicitação aceitará grupos de usuários para maior eficiência. A partir da versão 10.9\/10.9.1, enableUsers aceita até 25 usuários por vez.<\/FONT><\/STRONG> <\/P>
Nota: O teste portal_users_enable1 pode ser executado repetidamente sobre os mesmos usuários com sucesso. Do ponto de vista do ArcGIS Enterprise, ele está apenas habilitando o(s) membro(s) novamente.
<\/
STRONG>
<\/
FONT>
<\/
STRONG>
<\/
P>
A Configuração do Thread Group
Diferente dos testes anteriores do artigo Apache JMeter que são dominados pelo tempo, os Planos de Teste neste projeto são baseados em iterações. Em outras palavras, ao criar ou desabilitar usuários específicos, precisamos trabalhar apenas uma vez nos usuários relevantes da lista.
<\/
SPAN>
<\/
P>
A configuração "step load" do Thread Group incluída por padrão em toda instalação do Apache JMeter inclui uma configuração muito conveniente chamada Loop Count para especificar exatamente quantas iterações o Plano de Teste deve executar
<\/
SPAN>
A configuração Loop Count deve corresponder ao número de linhas no "Arquivo de Usuários" que contêm membros a serem adicionados/desabilitados/habilitados
<\/
SPAN>
<\/
LI>
<\/
UL>
<\/
LI>
<\/
UL>
Nota: Todos os Planos de Teste no projeto estão configurados com a mesma configuração do Thread Group. Além disso, todos os testes incluídos são executados com um único thread concorrente.
<\/
STRONG>
<\/
FONT>
<\/
P>

Execução do Teste
Além disso, diferente dos testes anteriores do artigo Apache JMeter que são executados via linha de comando, você provavelmente pode executar esses Planos de Teste administrativos diretamente pela GUI. Claro que isso depende da quantidade de usuários que você planeja criar, desabilitar ou habilitar. Se estiver trabalhando com algumas centenas, a GUI será suficiente. Porém, se planeja criar milhares ou dezenas de milhares de usuários (ou mais), será melhor executar os Planos de Teste via linha de comando para melhor eficiência no uso dos recursos da estação de trabalho.
Veja o script runMe.bat incluído no projeto portal_administration1.zip como exemplo sobre como executar um teste conforme recomendado pela equipe Apache JMeter. Este script está configurado para rodar portal_users_add3, mas pode ser facilmente ajustado para executar qualquer um dos testes.
O script runMe.bat contém uma variável jmeterbin que precisará ser configurada com o valor apropriado para seu ambiente
Nota: É sempre recomendado coordenar o horário de início com as pessoas apropriadas da sua organização. Isso garante impacto mínimo aos usuários e outros colegas que também possam precisar usar seu Site ArcGIS Enterprise on-premise.
Validando os Planos de Teste
Se o teste estiver sendo executado pela GUI, vários listeners foram adicionados a todos os Planos de Teste incluídos para oferecer feedback imediato sobre o status.
- O elemento View Results Tree oferece uma maneira conveniente para examinar rapidamente o status de cada transação (ex.: "Create User Account -- portalpublisher2") e sua respectiva solicitação (ex.: "/arcgis/portaladmin/security/users/createUser--portalpublisher2")
- Graças aos elementos Response Assertion adicionados a cada solicitação, a marca verde é um indicador confiável de transação ou solicitação bem-sucedida

<\/EM><\/STRONG>seu tempo de resposta tudo de uma única tabela<\/SPAN><\/LI><\/UL>
<\/span><\/P>Solução de Problemas na Execução de Teste via Linha de Comando<\/H2>Como mencionado anteriormente, ao trabalhar com grandes quantidades de usuários, a abordagem recomendada é executar os Planos de Teste pela linha de comando. No entanto, os administradores estarão muito interessados em entender quais usuários, se houver, encontraram erros durante a automação. É aqui que o Relatório de Teste do JMeter pode oferecer grande insight.<\/P>A partir do gráfico de pizza Resumo da Solicitação na página inicial do Relatório de Teste, você pode ver rapidamente se algum erro foi encontrado<\/LI><\/UL>
<\/span><\/P> Se erros foram encontrados durante a execução do teste, a tabela Estatísticas (na parte inferior da primeira página do relatório) pode facilitar encontrar as solicitações de usuário que falharam ao ordenar pela coluna FAIL<\/LI><\/UL>
<\/span><\/P>Considerações Finais<\/H1>Existem muitos frameworks, ferramentas e utilitários disponíveis para realizar automação de tarefas administrativas para ArcGIS Enterprise. Muito provavelmente, todos eles têm seus próprios pontos fortes. O Apache JMeter é útil pois fornece uma interface gráfica para construir e ajustar as requisições REST necessárias para executar as funções. Os relatórios HTML\/JavaScript que podem ser criados automaticamente ao final de um relatório de teste são um bônus agradável para entender se todo o trabalho foi bem-sucedido ou quais partes específicas falharam.<\/P>Para baixar o Plano de Teste Apache JMeter usado neste Artigo veja: portal_administration1.zip<\/A> <\/STRONG><\/LI><\/UL>
Uma Breve Palavra Sobre o Uso de Múltiplas Threads<\/H2>Todos os testes incluídos poderiam ser configurados para usar múltiplas threads concorrentes para uma execução mais rápida. Isso é aceitável do ponto de vista técnico, mas todos esses testes realizam operações de escrita no banco de dados interno do componente Portal for ArcGIS. Como em qualquer banco de dados, tais operações podem ser intensivas em recursos e só podem ir até certo ponto rapidamente. Usar muitas threads concorrentes pode realmente diminuir o desempenho desses testes.<\/P>Uma Breve Palavra Sobre a Exclusão de Usuários<\/H2>Os testes incluídos no projeto não contemplaram uma operação para excluir usuário. Excluir um membro do portal é permanente (sem backups disponíveis) e ferramentas que automatizam essa ação devem ter cautela. Além disso, alguns usuários podem ter carregado uma grande quantidade de conteúdo no portal. Esse conteúdo precisaria ser excluído ou transferido para outro usuário antes da remoção desse membro.<\/P> <\/P> <\/P> <\/P>Apache JMeter<\/A> lançado sob a <\/SPAN>Apache<\/A> <\/SPAN>Licença 2.0.<\/A> Apache, Apache JMeter, JMeter, a pena Apache e o logotipo Apache JMeter são marcas registradas da Apache Software Foundation.<\/SPAN><\/P> <\/P>