Season Libraries - Ep. 08: Library Process - Verificação de conteúdo de arquivo PDF
Olááá Robotizadores!!! Hoje eu vou mostrar um exemplo de como realizar a conferência dos dados de um arquivo PDF, através da execução de um código Python externo via Library Process. Let's bora?
#FICADICA: Lembrando que é necessário que você já tenha uma noção sobre o Robot Framework!!! Se ainda não tem, dá uma olhadinha nos primeiros posts do blog ou no curso da Udemy!!!
01 - Instalando o código para extração dos dados
pip install pdfminer.six
As Libraries OperatingSystem e Process utilizadas no exemplo não requerem instalação, elas já vem embutidas na instalação do Robot.
02 - Escreva seu código no Robot Framework
Segue abaixo um exemplo de um código usando o PDF Miner, esse
exemplo foi feito com base no cenário que funcionou no meu ambiente,
talvez seja necessários ajustes para funcionar no seu ambiente.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
*** Settings *** | |
Documentation PDF para Texto | |
... Link do Projeto de Mineração de PDF: https://github.com/avedensky/pdfminer.six/blob/master/tools/pdf2txt.py | |
... Link para a Documentação da Library Process: https://robotframework.org/robotframework/latest/libraries/Process.html | |
Library OperatingSystem | |
Library Process | |
*** Test Cases *** | |
PDF para Texto | |
O usuario confere os dados do PDF | |
*** Keywords *** | |
O usuario confere os dados do PDF | |
#Montando o caminho completo do arquivo PDF | |
${home_dir}= normalize path ~ | |
${download_dir}= Join Path ${home_dir} Downloads | |
@{items}= OperatingSystem.List Directory ${download_dir} CTFL_foundation_page.pdf | |
${file}= Join Path ${download_dir} ${items[0]} | |
#Extração dos Dados do PDF | |
${PDF_EXTRACT_TEXT}= Process.Run Process pdf2txt.py ${file} shell=yes alias=myproc | |
${stdout} ${stderr}= Get Process Result myproc stdout=yes stderr=yes | |
#Armazenando Saída no Log | |
Log To Console ${SPACE} | |
Log To Console ${SPACE} | |
Log To Console ${stdout} | |
Log To Console ${SPACE} | |
Log ${stdout} | |
#Conferência dos Dados Exportados | |
${Texto} Should Contain ${stdout} CTFL Foundation | |
03 - Detalhamento do Exemplo
Passo 1 - Como o caminho do usuário local, muda de máquina para máquina, foi utilizada a Keyword "Normalize Path" para normalizá-lo, esse processo faz especificamente as seguintes coisas:
- Recolhe separadores redundantes e referências de nível superior.
- Converte / para \ no Windows.
- Substitui ~ ou ~user pelo diretório inicial do usuário.
O caminho obtido foi colocado dentro da variável ${home_dir}
Passo 2 - Foi utilizado a Keyword "Join Path" para realizar a concatenação do caminho obtido na variável ${home_dir} com o diretório onde encontra-se o arquivo.
Passo 5 - Agora será utilizada a Keyword "Run Process" para rodar o código Python que foi instalado para extrair o conteúdo do arquivo PDF.
Passo 6 - Por fim será utilizada a Keyword "Get Process Result" para capturar a saída do processo.
Passos 7 e 8 - A utilização das Keywords "Log" e "Log To Console" são opcionais, contudo em caso de erro, elas serão de grande auxílio.
Passo 9 - Para finalizar o teste, foi utilizada a keyword "Should Contain" para verificar se o texto extraído do PDF, contém o conteúdo esperado.
Muito top.
ResponderExcluirno meu passou
ResponderExcluir