RobotFramework-Zoomba é uma coleção de bibliotecas que abrangem a GUI, API REST e a API SOAP API usando a estrutura de robôs. Essas bibliotecas são extensões de bibliotecas existentes seleniumlibrary, solicitações e sudslibrary.
O Zoomba adiciona uma quantidade significativa de suporte à validação de dados para a API REST e SOAP e estende a funcionalidade para a automação típica da GUI da Web.
Como equipe, iniciando a jornada de automação com a Robot Framework - descobrimos que havia algum tempo gasto aumentando nossas bibliotecas e o RobotFramework -Zoomba pretende facilitar esse processo para novos projetos.
Consulte a documentação da palavra -chave para a biblioteca API, SOAP ou GUI para obter informações mais específicas sobre a funcionalidade.
Os testes de exemplo podem ser encontrados no diretório de amostras.
Ao trabalhar com páginas da web de tempos de carregamento variados, você provavelmente se vê executando muitas ligações como assim:
Wait Until Page Contains Element locator
Click Element locator
Para facilitar o uso, combinamos muitos deles em palavras -chave simples de uma linha:
Wait For And Click Element locator
Wait For And Click Text text
Wait For And Select From List list_locator target_locator
Outra palavra -chave que é particularmente útil é quando você está esperando o JavaScript concluir em uma página antes de prosseguir:
Wait For And Click Element locator that leads to a new page with javascript
Wait Until Javascript Is Complete
Wait For And Click Element locator
Esta biblioteca envolve a biblioteca de solicitações, então criamos um conjunto de palavras -chave para permitir facilmente aos usuários fazer solicitações em uma única palavra -chave:
Call Get Request ${ headers_dictionary } endpoint query_string
Call Post Request ${ headers_dictionary } endpoint query_string ${ data_payload }
Depois de receber seus dados, tornamos incrivelmente fácil validá -los. A resposta Validate contém a resposta esperada, pega sua solicitação recebida e a compara aos dados esperados. Se houver algum erro, ele relatará linha por linha o que são.
Validate Response Contains Expected Response ${ json_actual_response } ${ json_expected_response }
Se houver algum dados incompatíveis, ele ficará mais parecido com o seguinte:
Key(s) Did Not Match:
------------------
Key: pear
Expected: fish
Actual: bird
------------------
Full List Breakdown:
Expected: [{'apple': 'cat', 'banana': 'dog', 'pear': 'fish'}, {'apple': 'cat', 'banana': 'mice', 'pear': 'bird'}, {'apple': 'dog', 'banana': 'mice', 'pear': 'cat'}]
Actual: [{'apple': 'cat', 'banana': 'dog', 'pear': 'bird'}]
Please see differing value(s)
Se você quisesse ignorar uma chave como a 'atualização_date', simplesmente definiria a variável 'ignorada_keys' para essa chave ou uma lista de chaves:
Validate Response Contains Expected Response ${ json_actual_response } ${ json_expected_response } ignored_keys=update_date
Validate Response Contains Expected Response ${ json_actual_response } ${ json_expected_response } ignored_keys= ${ list_of_keys }
A biblioteca Zoomba é facilmente instalada usando o arquivo setup.py
no diretório inicial. Basta executar o seguinte comando para instalar o Zoomba e suas dependências:
pip install robotframework - zoomba
Se você decidir puxar o repositório localmente para fazer contribuições ou apenas quiser brincar com o código, você pode instalar o Zoomba executando o seguinte no diretório raiz :
pip install .
ou se você pretende executar testes de unidade:
pip install .[ testing ]
Para acessar as palavras -chave na biblioteca, basta adicionar o seguinte às configurações de arquivo de robô (dependendo do que você precisa):
** * Settings ** *
Library Zoomba . APILibrary
Library Zoomba . GUILibrary
Library Zoomba . SOAPLibrary
Os testes de exemplo podem ser encontrados no diretório de amostras.
O diretório de teste também pode conter testes, mas esteja ciente de que eles são usados para testes de liberações e podem não ser tão diretos para usar quanto os do diretório de amostras.
Para fazer contribuições, consulte as diretrizes contribuintes.
Consulte o diretório .GitHooks para scripts para ajudar no desenvolvimento.
As questões gerais de estrutura de robôs devem ser direcionadas ao fórum da comunidade.
Para perguntas e questões específicas para Zoomba, crie um problema aqui no Github.