WELKOM OP
ROBOCON @ IMMUNE
// Even voorstellen...
Christian Bos
Test automation specialist
• 1,5 jaar bij Immune-it
• > 10 jaar Sogeti
• Trainer
• Agile coach && scrum master
• Test consultant
• Java || Python developer
https://www.linkedin.com/in/christianbos/
// Even voorstellen...
THE START OF THE
OPEN SOURCE
RPA MOVEMENT
// ROBOCON MENU
•Release 3.1 is uitgebracht!
•Nieuwe tools en libraries
•Nieuwe RPA start-up
•Een blik in de toekomst
•Wat kan ik doen?
RELEASE 3.1
// Robot Framework 3.1
•Eerste grote (major) release
sinds 2015
•Support voor Robotic Process
Automation (RPA) toegevoegd
•Mogelijk gemaakt door de Robot
Framework Foundation
// AUTOMATIC ARGUMENT CONVERSION
*** Test Cases ***
Example
Keyword 42 False
def keyword(count:int, case_sensitive:bool):
if not case_sensitive:
#...
// NIEUWE FOR-SYNTAX
*** Test Cases ***
Old loop
:FOR ${year} IN @{YEARS}
 Log RoboCon ${year}
 Another keyword
New loop
FOR ${year} IN @{YEARS}
Log RoboCon ${year}
Another keyword
END
// NIEUWE SYNTAX VARIABLES
•List variables @{list}
•Dictionary variables &{dict}
@{list}[1] -> ${list}[1]
&{dict}[key] -> ${dict}[key]
// ANDERE WIJZIGINGEN IN RF 3.1
•Named-only arguments
•Fix voor corrupte output bij
time-outs
•Nieuwe extensie voor resource
files: *.resource
•80+ ander bugfixes
// UPDATES LIBRARIES & TOOLS
•Jenkins plugin
•Maven plugin
•SSHLIBRARY
•Selenium Library
• Binnenkort update library naar Selenium versie 4
// UPGRADE CHECKLIST
•Upgrade Python 2 naar versie 3
•Upgrade Robot Framework naar
versie 3.1
•Pas syntax FOR-loops en
variabelen aan
•Pas extensie .robot aan voor
resources naar .resource
NIEUWE TOOLS
// JUPYTER NOTEBOOK
•(online) omgeving waarin Python
scripts draaien
•Wordt vaak gebruikt voor
cursussen
•Notebooks opslaan en delen
// JUPYTER NOTEBOOK
“Curated, ready-to-install
environment for Robot Framework &
Jupyter on Windows, MacOS and linux”
// JUPYTER NOTEBOOK
•Omgeving waarin Python, Robot
Framework en Selenium draaien
•Bevat hiernaast ook
• Webdrivers (chrome/gecko)
• AutoIT library
• RESTinstance library
•Werkt alleen onder Python 3
// JUPYTER NOTEBOOK
•Basic syntax highlighting
•Auto aanvullen keywords en
variabelen
•Inline keyword documentatie
•Selector auto complete
https://github.com/robots-from-jupyter/robotkernel
// ROBOT FRAMEWORK METRICS
•Installatie via pip
pip install robotframework-metrics
•Op basis van gegenereerde
output.xml bestand
•Uitvoer via command line
// CUSTOMIZING METRICS
•Custom logo
•Automatisch e-mailbericht
•Negeren keywords uit specifieke
libraries
NIEUWE LIBRARIES
// RESTinstance library
•Library voor REST API testing
•Ondersteunt ook JSON
•Clean en minimale syntax
•Automatische JSON schema
validatie
// RESTinstance library
*** Settings ***
Library REST http://fakerestapi.azurewebsites.net/api/
*** Test Cases ***
Get fake activity
GET Activities/1
Integer response status 200
String $.Title Activity 1
// RESTinstance library
•Per testsuite (bestand) één API URI
•Naamgeving van keywords lijkt soms
ongelukkig gekozen
•Bij assertion keywords ontbreekt
optie voor custom foutmelding
•Library eerder geschikt voor
technisch testen dan voor business
users
// RESTinstance library
•Installatie via pip
pip install RESTinstance
// JavaFX library
•Library voor JavaFX applicaties
•JavaFX is de opvolger van Swing
en AWT
•JavaFX nodes als locators
•Applicatie als .jar bestand
runnen
// White library
•Library voor het automatiseren
van WIN32 applicaties en
WIN FORMS
•Alternatief voor de AutoIt
Library
•Gebruik AutoIt info tool voor
achterhalen id’s 
// Mainframe3270 Library
•Library voor IBM 3270 terminal
emulator
•Wordt vooral
gebruikt bij de
Belastingdienst
// SAPGui
// SAPGui Library
•Ontwikkeld binnen Alliander
•Maakt gebruik van de SAP
scripting engine
•Eerst SAP opstarten mbv AutoIT
lib. of process library
•Daarna connecten naar SAP mbv
keyword ‘connect to session’
// SAPGui Library
•Keywords zoveel als mogelijk
gelijk aan Selenium library
click element // element value should be
get value // input text // select checkbox
send vkey
•Screenshots on error
// SAPGui Library
*** Variables ***
${SAP_GUI} = C:/Program Files (x86)/SAP/.../saplgpad.exe
${SAP_INI} = env:SAPLOGON_INI_FILE=//URL_naar_saplogon.ini
*** Test Cases ***
Open SAP and run transactie
Start Process ${SAP_GUI} ${SAP_INI}
Win Wait Active SAP Logon TimeOut=20
connect to session 1
open connection TST
run transaction SP01
input text wnd[0]/usr/chkF_DYNDEC Demo_tekst
select checkbox wnd[0]/usr/chk[1,3]
select context menu item wnd[0]/usr/shellcont/shell ${SPACE * 10}5 N001
send vkey F6
// SAPGui Library
// SAPGui Library
•Installatie via pip:
pip install robotframework-sapguilibrary
THE START OF THE
OPEN SOURCE
RPA MOVEMENT
RPA
// RPA SUPPORT
*** Tasks ***
Process invoice
Read information from PDF
Validate information
Submit information to ERP system
Validate information is visible
// ROBOTIC PROCESS AUTOMATION
•Een vorm van automatisering
waarbij
• technologie -> automatiseren manuele processen
• bestaande API’s en user interfaces.
•Software robots
•“If you can document it, you can
automate it”
// VOORDELEN VAN RPA
•Kostenreductie
•Vermindering aantal fouten in
proces
•Processen efficiënter
•Meer arbeidsvreugde
// VERSCHIL MET TA
•RPA wordt gemaakt voor(business)
gebruikers, niet voor developers
•‘Testcases’ voor productie:
• Error handling
• Reporting (auditing)
• Analytics
// HUIDIGE RPA MARKT
• UiPath
• Automation
Anywhere
• Blue Prism
// HUIDIGE RPA MARKT
•2019: $2.3 bn
•2022: $4.3 bn
•UiPath: $ 3 bn
•Automation anywhere: $ 250 mln.
// WAT IS ER MIS MET RPA?
•RPA markt lijkt op TA markt in 2009
•Marktdominantie door proprietary
technologieën
•Vendor lock-in
•Excessieve prijzen voor pakketten
•Hype?
DE TOEKOMST...
// RPA MET ROBOT FRAMEWORK
•“Everybody who knows Robot
Framework, knows RPA”
•RPA vervangt geen TA, maar is
een nieuwe use case voor het
tool
•Vraag naar RPA zal alleen maar
toenemen, kansen voor developers
// ROBOCORP TECHNOLOGIES, Inc.
// ROBOCORP TECHNOLOGIES, Inc.
•Start up specifiek voor RPA
•San Francisco en Helsinki
•Belast met RPA eco systeem
optimaliseren
•‘Cloud layer’ bovenop Robot
Framework
•Top 8 deelnemers (van 67) Startup
World Cup Finland
// WAT ONTBREEKT ER NOG?
•Learning resources
(tutorials / voorbeelden / online cursussen)
•Developer tools
(Packaged installers / IDE’s specifiek voor RPA)
•Enterprise stuff
(Scheduling / triggering / Task data storage / ...)
// PYTHON 2.7 SUPPORT
// PYTHON 2.7 SUPPORT
•Support voor Python 2 stopt begin
2020
•Advies: zo snel als mogelijk over
naar Python versie 3
•Robot Framework draait volledig op
Python 3
•Ondersteuning oude syntax (RF)
stopt snel
// NIEUWE PARSER & SYNTAX
*** Tasks ***
Validate invoice
IF not ${INVOICE DOWNLOADED}
Download invoice
Backup invoice
ELSE
Invoice already downloaded
END
Read information from PDF
Validate invoice information
// NIEUWE PARSER & SYNTAX
*** Tasks ***
Validate invoice
TRY
Download invoice
Read information from PDF
Validate invoice information
CATCH
Ignore error and continue
END
// TEST DATA PARSER
• Verantwoordelijk
voor interpretatie
testdata
• Het ‘hart’ van het
framework
• Betreft geen
refactoring maar
compleet opnieuw
coderen
// VERDER IN 2019?
•Tutorials en voorbeelden op de
website (juist ook voor RPA)
•Kant-en-klaar windows installer
voor
• Robot Framework
• Selenium library
• Webdrivers
•Boek?
// MEETUP GROUPS
// DE TOEKOMST VAN RPA
•“The start of the open source RPA
movement”
•RPA is een accelerator van
digitalisering
•(Potentieel) impact op werk voor
miljoenen mensen
•De toekomst van RPA is open source
// WAT KAN IK DOEN?
•Robot Framework gebruiken
•Deelnemen aan ‘onze’ meetups
•Deelnemen aan RoboCon
•Zelf libraries ontwikkelen
•Een member van de RF foundation
worden
// WAT KAN IK DOEN?
robocon@immune.it
Alle RoboCon filmpjes zijn te vinden op Youtube:
https://www.youtube.com/watch?v=wBhY5Z2RoqQ&list=PLSK6YK5OGX1D-QpVap5C7NlfurQ1dsGbt
Making Robot Framework the
best open source (test) automation
tool available on the market
That’s Robot Framework

Robocon @ Immune-it

  • 1.
  • 2.
    // Even voorstellen... ChristianBos Test automation specialist • 1,5 jaar bij Immune-it • > 10 jaar Sogeti • Trainer • Agile coach && scrum master • Test consultant • Java || Python developer https://www.linkedin.com/in/christianbos/
  • 3.
  • 5.
    THE START OFTHE OPEN SOURCE RPA MOVEMENT
  • 6.
    // ROBOCON MENU •Release3.1 is uitgebracht! •Nieuwe tools en libraries •Nieuwe RPA start-up •Een blik in de toekomst •Wat kan ik doen?
  • 7.
  • 8.
    // Robot Framework3.1 •Eerste grote (major) release sinds 2015 •Support voor Robotic Process Automation (RPA) toegevoegd •Mogelijk gemaakt door de Robot Framework Foundation
  • 9.
    // AUTOMATIC ARGUMENTCONVERSION *** Test Cases *** Example Keyword 42 False def keyword(count:int, case_sensitive:bool): if not case_sensitive: #...
  • 10.
    // NIEUWE FOR-SYNTAX ***Test Cases *** Old loop :FOR ${year} IN @{YEARS} Log RoboCon ${year} Another keyword New loop FOR ${year} IN @{YEARS} Log RoboCon ${year} Another keyword END
  • 11.
    // NIEUWE SYNTAXVARIABLES •List variables @{list} •Dictionary variables &{dict} @{list}[1] -> ${list}[1] &{dict}[key] -> ${dict}[key]
  • 12.
    // ANDERE WIJZIGINGENIN RF 3.1 •Named-only arguments •Fix voor corrupte output bij time-outs •Nieuwe extensie voor resource files: *.resource •80+ ander bugfixes
  • 13.
    // UPDATES LIBRARIES& TOOLS •Jenkins plugin •Maven plugin •SSHLIBRARY •Selenium Library • Binnenkort update library naar Selenium versie 4
  • 14.
    // UPGRADE CHECKLIST •UpgradePython 2 naar versie 3 •Upgrade Robot Framework naar versie 3.1 •Pas syntax FOR-loops en variabelen aan •Pas extensie .robot aan voor resources naar .resource
  • 15.
  • 16.
    // JUPYTER NOTEBOOK •(online)omgeving waarin Python scripts draaien •Wordt vaak gebruikt voor cursussen •Notebooks opslaan en delen
  • 17.
    // JUPYTER NOTEBOOK “Curated,ready-to-install environment for Robot Framework & Jupyter on Windows, MacOS and linux”
  • 18.
    // JUPYTER NOTEBOOK •Omgevingwaarin Python, Robot Framework en Selenium draaien •Bevat hiernaast ook • Webdrivers (chrome/gecko) • AutoIT library • RESTinstance library •Werkt alleen onder Python 3
  • 19.
    // JUPYTER NOTEBOOK •Basicsyntax highlighting •Auto aanvullen keywords en variabelen •Inline keyword documentatie •Selector auto complete https://github.com/robots-from-jupyter/robotkernel
  • 20.
    // ROBOT FRAMEWORKMETRICS •Installatie via pip pip install robotframework-metrics •Op basis van gegenereerde output.xml bestand •Uitvoer via command line
  • 21.
    // CUSTOMIZING METRICS •Customlogo •Automatisch e-mailbericht •Negeren keywords uit specifieke libraries
  • 22.
  • 23.
    // RESTinstance library •Libraryvoor REST API testing •Ondersteunt ook JSON •Clean en minimale syntax •Automatische JSON schema validatie
  • 26.
    // RESTinstance library ***Settings *** Library REST http://fakerestapi.azurewebsites.net/api/ *** Test Cases *** Get fake activity GET Activities/1 Integer response status 200 String $.Title Activity 1
  • 27.
    // RESTinstance library •Pertestsuite (bestand) één API URI •Naamgeving van keywords lijkt soms ongelukkig gekozen •Bij assertion keywords ontbreekt optie voor custom foutmelding •Library eerder geschikt voor technisch testen dan voor business users
  • 28.
    // RESTinstance library •Installatievia pip pip install RESTinstance
  • 29.
    // JavaFX library •Libraryvoor JavaFX applicaties •JavaFX is de opvolger van Swing en AWT •JavaFX nodes als locators •Applicatie als .jar bestand runnen
  • 30.
    // White library •Libraryvoor het automatiseren van WIN32 applicaties en WIN FORMS •Alternatief voor de AutoIt Library •Gebruik AutoIt info tool voor achterhalen id’s 
  • 31.
    // Mainframe3270 Library •Libraryvoor IBM 3270 terminal emulator •Wordt vooral gebruikt bij de Belastingdienst
  • 32.
  • 33.
    // SAPGui Library •Ontwikkeldbinnen Alliander •Maakt gebruik van de SAP scripting engine •Eerst SAP opstarten mbv AutoIT lib. of process library •Daarna connecten naar SAP mbv keyword ‘connect to session’
  • 34.
    // SAPGui Library •Keywordszoveel als mogelijk gelijk aan Selenium library click element // element value should be get value // input text // select checkbox send vkey •Screenshots on error
  • 35.
    // SAPGui Library ***Variables *** ${SAP_GUI} = C:/Program Files (x86)/SAP/.../saplgpad.exe ${SAP_INI} = env:SAPLOGON_INI_FILE=//URL_naar_saplogon.ini *** Test Cases *** Open SAP and run transactie Start Process ${SAP_GUI} ${SAP_INI} Win Wait Active SAP Logon TimeOut=20 connect to session 1 open connection TST run transaction SP01 input text wnd[0]/usr/chkF_DYNDEC Demo_tekst select checkbox wnd[0]/usr/chk[1,3] select context menu item wnd[0]/usr/shellcont/shell ${SPACE * 10}5 N001 send vkey F6
  • 36.
  • 37.
    // SAPGui Library •Installatievia pip: pip install robotframework-sapguilibrary
  • 38.
    THE START OFTHE OPEN SOURCE RPA MOVEMENT
  • 39.
  • 40.
    // RPA SUPPORT ***Tasks *** Process invoice Read information from PDF Validate information Submit information to ERP system Validate information is visible
  • 41.
    // ROBOTIC PROCESSAUTOMATION •Een vorm van automatisering waarbij • technologie -> automatiseren manuele processen • bestaande API’s en user interfaces. •Software robots •“If you can document it, you can automate it”
  • 42.
    // VOORDELEN VANRPA •Kostenreductie •Vermindering aantal fouten in proces •Processen efficiënter •Meer arbeidsvreugde
  • 43.
    // VERSCHIL METTA •RPA wordt gemaakt voor(business) gebruikers, niet voor developers •‘Testcases’ voor productie: • Error handling • Reporting (auditing) • Analytics
  • 44.
    // HUIDIGE RPAMARKT • UiPath • Automation Anywhere • Blue Prism
  • 45.
    // HUIDIGE RPAMARKT •2019: $2.3 bn •2022: $4.3 bn •UiPath: $ 3 bn •Automation anywhere: $ 250 mln.
  • 46.
    // WAT ISER MIS MET RPA? •RPA markt lijkt op TA markt in 2009 •Marktdominantie door proprietary technologieën •Vendor lock-in •Excessieve prijzen voor pakketten •Hype?
  • 47.
  • 48.
    // RPA METROBOT FRAMEWORK •“Everybody who knows Robot Framework, knows RPA” •RPA vervangt geen TA, maar is een nieuwe use case voor het tool •Vraag naar RPA zal alleen maar toenemen, kansen voor developers
  • 49.
  • 50.
    // ROBOCORP TECHNOLOGIES,Inc. •Start up specifiek voor RPA •San Francisco en Helsinki •Belast met RPA eco systeem optimaliseren •‘Cloud layer’ bovenop Robot Framework •Top 8 deelnemers (van 67) Startup World Cup Finland
  • 51.
    // WAT ONTBREEKTER NOG? •Learning resources (tutorials / voorbeelden / online cursussen) •Developer tools (Packaged installers / IDE’s specifiek voor RPA) •Enterprise stuff (Scheduling / triggering / Task data storage / ...)
  • 52.
  • 53.
    // PYTHON 2.7SUPPORT •Support voor Python 2 stopt begin 2020 •Advies: zo snel als mogelijk over naar Python versie 3 •Robot Framework draait volledig op Python 3 •Ondersteuning oude syntax (RF) stopt snel
  • 54.
    // NIEUWE PARSER& SYNTAX *** Tasks *** Validate invoice IF not ${INVOICE DOWNLOADED} Download invoice Backup invoice ELSE Invoice already downloaded END Read information from PDF Validate invoice information
  • 55.
    // NIEUWE PARSER& SYNTAX *** Tasks *** Validate invoice TRY Download invoice Read information from PDF Validate invoice information CATCH Ignore error and continue END
  • 56.
    // TEST DATAPARSER • Verantwoordelijk voor interpretatie testdata • Het ‘hart’ van het framework • Betreft geen refactoring maar compleet opnieuw coderen
  • 57.
    // VERDER IN2019? •Tutorials en voorbeelden op de website (juist ook voor RPA) •Kant-en-klaar windows installer voor • Robot Framework • Selenium library • Webdrivers •Boek?
  • 58.
  • 59.
    // DE TOEKOMSTVAN RPA •“The start of the open source RPA movement” •RPA is een accelerator van digitalisering •(Potentieel) impact op werk voor miljoenen mensen •De toekomst van RPA is open source
  • 60.
    // WAT KANIK DOEN? •Robot Framework gebruiken •Deelnemen aan ‘onze’ meetups •Deelnemen aan RoboCon •Zelf libraries ontwikkelen •Een member van de RF foundation worden
  • 61.
    // WAT KANIK DOEN?
  • 62.
  • 63.
    Alle RoboCon filmpjeszijn te vinden op Youtube: https://www.youtube.com/watch?v=wBhY5Z2RoqQ&list=PLSK6YK5OGX1D-QpVap5C7NlfurQ1dsGbt
  • 64.
    Making Robot Frameworkthe best open source (test) automation tool available on the market
  • 65.