SlideShare a Scribd company logo
LET'S
TALK
ROBOT
Meetup dinsdag 25
februari
Guido Demmmenie &
Christian Bos
ROBOT
FRAME
WORK/
>>RPA
Robotic process automation
• Robotgestuurde procesautomatisering
• automatiseren van (handmatige) bedrijfsprocessen
• software robots (geen fysieke robots)
• nabootsen handmatig proces
• RPA wordt gemaakt voor (business) gebruikers,
niet voor developers
• “If you can document it, you can automate it”
Robotic process automation
• Voordelen vooral op gebied van efficiëntie
• kostenreductie
• vermindering aantal fouten (in productie)
• meer arbeidsvreugde
• Aandachtspunten
• business case (waarom wil je RPA?)
• procesverbetering
• niet alles is geschikt voor RPA
Verschil met test automation
• Op taakniveau automatiseren van applicaties
• technisch hetzelfde als TA
• gebruik maken van ‘software robots’
• Verschillen tussen RPA en TA
• paradigma anders – focus op transacties
• business critical applicaties
• meer business logica en error handling
• monitoring en reporting (auditing)
Waarom open source RPA?
• Lage drempel om op te starten
• relatief lage kosten – iedereen kan experimenteren
• Geen risico op closed source format applicatie
• niet gebonden aan één leverancier
• actief community betrekken bij uitdagingen
• RPA is fundamenteel het domain van developers
• business gebruikers omarmen RPA tools (nog) niet
Waarom RF voor RPA?
• RF is een apart tool op een goede manier
• RF probeert niet andere RPA tools te kopiëren
• De RF syntax is makkelijker op te pakken dan
puur Python code
• Er is een groot aanbod aan libraries
• De RF foundation wordt niet gedomineerd door
een of een aantal grote bedrijven
RPA is belangrijk voor RF!
• Wie kan RF gebruiken voor test automation?
• elk project dat groot genoeg is (business case)
• Wie kan RF gebruiken om routinematig werk te
automatiseren?
• praktisch elke organisatie
Een jaar open source RPA
• Robocorp – opgericht in 2019
• “start of the open source RPA movement”
• Grote bedrijven adapteren open source RPA
• RPA brengt nieuwe gebruikers naar RF
• Nieuwe uses cases worden gecreëerd in de
community
Wat willen developers?
• Ondersteuning voor developer workflows en
versiebeheer
• Een open community om kennis en code te delen
• Expressieve tools die gemakkelijk uitbreidbaar
zijn
• Een ‘fatsoenlijke’ ontwikkeltaal
Een nieuwe rol?
• De vraag naar automation neemt steeds meer toe
• Daarmee is een nieuwe categorie developers
opkomend:
Software robot developer
Rol:
• ontwikkelen en gebruiken van software robots
Eisen:
• ervaring met Robot Framework en Python
• bekend met UI locator strategies, API’s en
DevOps best practices
• domeinkennis en het vermogen requirements te
vertalen naar software robots
Waarom een nieuwe rol?
• “Giving an identity to the movement”
• Het RF ecosysteem is meer dan alleen TA en RPA
• gaat eigenlijk over de mensen – de developers
• Verwachting voor de komende jaren
• duizenden (?) robot developers ingehuurd
Robocorp
• Leermaterialen en resources ontwikkelen voor
robot developers
• Open source developers tools rondom RF
verbeteren en ontwikkelen
• Een orchestratie platform (cloud) specifiek
voor RPA ontwikkelen
Global takeover?
• RF kan de leidende technologie zijn voor robot
developers
• …maar is slechts een onderdeel van een groter
plaatje
Wat ontbreekt er nog?
• Use-case specifieke tooling
• Documentatie video’s, tutorials, voorbeelden,
blogs…
• iedereen kan bijdragen 
Nieuwe Libraries
SeleniumLibrary 4
• Nieuwe versie met nieuwe features
• plugins
• EventFiringWebDriver (event listener)
• Ondersteunt nu alleen RF versie 3.0 en 3.1
• ondersteuning voor RF versie 2.9 is vervallen
• Nieuwe keywords vs. deprecated keywords
Plugins
• Nieuwe (andere) manier van de Selenium lib.
uitbreiden
• nieuwe keywords toevoegen
• standaard functionaliteit overriden
• Direct toegang tot Selenium API’s en methoden
EventFiringWebDriver
• Vergelijkbaar met RF listener API
• Voor of na aanroepen Selenium keyword
• polling op beschikbaarheid element
• automatische screen grabs
• Roept direct de Selenium API aan
SeleniumLibrary 4
• ‘Gewoon’ beschikbaar via pip en pypi
• Let op: intellibot plugin (PyCharm) ondersteunt
deze versie nog niet!
• Zorgt er voor dat geen enkel RF keyword meer wordt
herkend
• Advies: gebruik versie 3.3.1, tenzij…
SeleniumTestability library
• Nieuwe library, ontwikkeld als plugin
• maakt gebruik van de EventFiringWebDriver
• detectie van asynchrone events (JavaScript)
• Testcase kan automatisch wachten tot
achtergrond events gereed zijn
• Te installeren vanaf pypi met commando
pip install robotframework-seleniumtestability
DataDriver library
• Data-driven testing wordt momenteel ondersteund
• alle testcases hebben dezelfde flow
• alle testcases hebben verschillende testdata
• Huidige syntax voor data-driven testing
• geen statistieken -> alle testcases in één
• geen mogelijkheden voor continue on failure
• for-loop in testcase (lelijk!) of
• veel data in Robot file (geen goed format)
DataDriver library
• Nieuwe libray, ondersteunt XLS(X), CSV en PICT
• maakt gebruik van de RF listner API
• runtime worden testcases toegevoegd
• maakt gebruik van custom DataReaders (uitbreidbaar)
Te installeren vanaf pypi met commando
pip install robotframework-datadriver
Demo files:
https://github.com/cmbos/robotframework_demos/bl
ob/master/demo%20DataDriverLib.zip
Crypto library
• Library voor encrypten credentials
• Versleutelen wachtwoorden
• Maskeren wachtwoorden in logs
• Symetrische en Asymetrische encryptie
• RPA heeft productie users nodig met rechten
pip install robotframework-crypto
Image library
• Library voor image recognition
• Zoeken op deel van het scherm
• Processing van images
• Resizing
• Kleuring
• OCR (gebruikmakend van Tesseract)
• Wachten op animaties
pip install robotframework-imagelibrary
Jupyter Notebook & Robotlab
• Snelle manier van prototyping
• Interactive Computing Environment (ICE)
• Live code
• Inline opgemaakte documentatie
• Inline plaatjes
• Geïsoleerde omgeving voor doen van PoC
https://robots-from-jupyter.github.io
RF Swarm
• Performance testen met Robotframework
• Controller – Agent – SUT
• Reporting
• Nog in ontwikkelende fase
https://github.com/damies13/rfswarm
Test archiver & prioritizer
• Zoekbaar opslaan testresultaten meerdere runs
• Voorspellen op basis van historische gegevens
• VCS gegevens
• testresultaten
• Snellere feedback van testen
• eerst runnen van testen die (waarschijnlijk) geraakt zijn
https://github.com/salabs/TestArchiver
https://github.com/salabs/ChangeEngine
https://github.com/salabs/Epimetheus
Robotflow
• Keywords visueel koppelen in workflow en
uitvoeren
• Automatiseren door workflow uit te tekenen
• Nog experimenteel
• Robot Framework 3.2 alpha 1 or later
• Afhankelijk van eventlisteners uit RF 3.2
https://github.com/qentinelqi/robotflow
ROBOT
FRAME
WORK/
RF versie 3.2
• Release in maart 2020 (verwacht)
• Nieuwe parser
• Basis voor toevoegen nieuwe syntax
• Betere API’s voor externe tools
• syntax highlighting
• Linters
• code formatters
RF versie 3.2
• Inline Python support
• Library decorator
• Vooral voor grotere libraries interessant
• Listeners: tests kunnen toevoegen in runtime
• RobotFlow
• (DatadriverLibrary)
RF versie 3.2
• Syntax pre 3.1 is deprecated
• for-loops
• list/dictionary items+
What’s next
• Language server protocol (LSP)
• voor ondersteuning syntax highlighting in
editors/IDE’s
• Python 2 end-of-life (per april 2020)
• RF 3.2 laatste versie die Python 2 ondersteunt
• vooral probleem voor Jython en IronPython
• RF versie 3.3
Vooruitblik naar RF versie 3.3
• Verwacht in Q3 2020 (ten vroegste)
• Ondersteunt alleen Python versie 3!
• IF/ELSE, TRY CATCH en nested control structures
• Mogelijk gemaakt door nieuwe parser in 3.2
• Vooral nodig voor RPA
Torilla Tavataan
• ‘Let’s meet at the Market Square’
• Een centrale plek op github
• alle libraries op één plek
• zicht op wat al ontwikkeld is
• jouw library overdragen aan de community
https://github.com/MarketSquare
Rf meetup 25feb2020 robo_con
Making Robot Framework the
best open source (test) automation
tool available on the market
IMMUNE-IT
Wat biedt Immune-it aan?
• Expertise, aantal RF specialisten in dienst
• Ca. 50 collega’s opgeleid
• 40 op foundation niveau
• 15 op advanced niveau
• Meetups
Cursusaanbod
• 3-tal cursussen rondom core functionaliteit RF
• foundation – advanced – expert cursus
• maken gebruik van SeleniumLibrary
• Database en REST API testing cursus
• database library
• RESTInstance library
• Python cursus
• zelf libraries schrijven en gebruiken
Toekomstige meetups…
• Eerstvolgende meetup in mei
• Input vanuit de community (jullie) gevraagd
• Meer focus op hands-on sessies met laptops?
That’s Robot Framework

More Related Content

PDF
Rf meetup 20210412 robo_con
PDF
Introductie robot framework
PDF
Robocon @ Immune-it
PDF
Robot framework en Browser Library
PPTX
Introductie robot framework
PDF
TYPO3 Congres 2011 - ROQUIN - PhpStorm
PDF
Cypress meetup v2
PPTX
QNH pizza sessie
Rf meetup 20210412 robo_con
Introductie robot framework
Robocon @ Immune-it
Robot framework en Browser Library
Introductie robot framework
TYPO3 Congres 2011 - ROQUIN - PhpStorm
Cypress meetup v2
QNH pizza sessie

Similar to Rf meetup 25feb2020 robo_con (20)

ODT
Odfnews Nl 20110721
PDF
TYPO3 Congres 2012 - Aan de slag met TYPO3 Extbase en Fluid
PDF
SAP Fiori / UI5 expert forum 24-1-2017
PPT
Een reis door de wereld van open source
PPT
Gastles Linux BAC ROC Kop van Noord-Holland 19-03-2009
PPTX
Api kooien les 1
ODP
General Drupal presentation in Dutch
PDF
TYPO3 Congres 2012 - TYPO3 als centraal documentatiesysteem
PPTX
SPSNL17 - Integratie van Microsoft Teams met het Bot Framework - Michael Homp...
PDF
Python Pocket Reference Python In Your Pocket Mark Lutz
PDF
Booosting 24sept13 bim dutch revit standards mark wieringa cepezed
PDF
IBM ND9 & Connections 4 - Admin Deep Dive
ODT
Odfnews Nl 20110307
ODP
2014 Sogeti Netherlands - LibreOffice Community
PPTX
Ontwikkelingen bij Copernica
PPT
DRK: Drupal: een open platform
PDF
Toegang tot digitale objecten - viewers en Resolver
PPTX
Plone 5: Nederlandse Plone Gebruikersdag 2014
PDF
Robot framework en ci v2
PPTX
Sitecore - Onder de motorkop van ParTechIT.nl
Odfnews Nl 20110721
TYPO3 Congres 2012 - Aan de slag met TYPO3 Extbase en Fluid
SAP Fiori / UI5 expert forum 24-1-2017
Een reis door de wereld van open source
Gastles Linux BAC ROC Kop van Noord-Holland 19-03-2009
Api kooien les 1
General Drupal presentation in Dutch
TYPO3 Congres 2012 - TYPO3 als centraal documentatiesysteem
SPSNL17 - Integratie van Microsoft Teams met het Bot Framework - Michael Homp...
Python Pocket Reference Python In Your Pocket Mark Lutz
Booosting 24sept13 bim dutch revit standards mark wieringa cepezed
IBM ND9 & Connections 4 - Admin Deep Dive
Odfnews Nl 20110307
2014 Sogeti Netherlands - LibreOffice Community
Ontwikkelingen bij Copernica
DRK: Drupal: een open platform
Toegang tot digitale objecten - viewers en Resolver
Plone 5: Nederlandse Plone Gebruikersdag 2014
Robot framework en ci v2
Sitecore - Onder de motorkop van ParTechIT.nl
Ad

Rf meetup 25feb2020 robo_con

  • 3. Robotic process automation • Robotgestuurde procesautomatisering • automatiseren van (handmatige) bedrijfsprocessen • software robots (geen fysieke robots) • nabootsen handmatig proces • RPA wordt gemaakt voor (business) gebruikers, niet voor developers • “If you can document it, you can automate it”
  • 4. Robotic process automation • Voordelen vooral op gebied van efficiëntie • kostenreductie • vermindering aantal fouten (in productie) • meer arbeidsvreugde • Aandachtspunten • business case (waarom wil je RPA?) • procesverbetering • niet alles is geschikt voor RPA
  • 5. Verschil met test automation • Op taakniveau automatiseren van applicaties • technisch hetzelfde als TA • gebruik maken van ‘software robots’ • Verschillen tussen RPA en TA • paradigma anders – focus op transacties • business critical applicaties • meer business logica en error handling • monitoring en reporting (auditing)
  • 6. Waarom open source RPA? • Lage drempel om op te starten • relatief lage kosten – iedereen kan experimenteren • Geen risico op closed source format applicatie • niet gebonden aan één leverancier • actief community betrekken bij uitdagingen • RPA is fundamenteel het domain van developers • business gebruikers omarmen RPA tools (nog) niet
  • 7. Waarom RF voor RPA? • RF is een apart tool op een goede manier • RF probeert niet andere RPA tools te kopiëren • De RF syntax is makkelijker op te pakken dan puur Python code • Er is een groot aanbod aan libraries • De RF foundation wordt niet gedomineerd door een of een aantal grote bedrijven
  • 8. RPA is belangrijk voor RF! • Wie kan RF gebruiken voor test automation? • elk project dat groot genoeg is (business case) • Wie kan RF gebruiken om routinematig werk te automatiseren? • praktisch elke organisatie
  • 9. Een jaar open source RPA • Robocorp – opgericht in 2019 • “start of the open source RPA movement” • Grote bedrijven adapteren open source RPA • RPA brengt nieuwe gebruikers naar RF • Nieuwe uses cases worden gecreëerd in de community
  • 10. Wat willen developers? • Ondersteuning voor developer workflows en versiebeheer • Een open community om kennis en code te delen • Expressieve tools die gemakkelijk uitbreidbaar zijn • Een ‘fatsoenlijke’ ontwikkeltaal
  • 11. Een nieuwe rol? • De vraag naar automation neemt steeds meer toe • Daarmee is een nieuwe categorie developers opkomend:
  • 12. Software robot developer Rol: • ontwikkelen en gebruiken van software robots Eisen: • ervaring met Robot Framework en Python • bekend met UI locator strategies, API’s en DevOps best practices • domeinkennis en het vermogen requirements te vertalen naar software robots
  • 13. Waarom een nieuwe rol? • “Giving an identity to the movement” • Het RF ecosysteem is meer dan alleen TA en RPA • gaat eigenlijk over de mensen – de developers • Verwachting voor de komende jaren • duizenden (?) robot developers ingehuurd
  • 14. Robocorp • Leermaterialen en resources ontwikkelen voor robot developers • Open source developers tools rondom RF verbeteren en ontwikkelen • Een orchestratie platform (cloud) specifiek voor RPA ontwikkelen
  • 15. Global takeover? • RF kan de leidende technologie zijn voor robot developers • …maar is slechts een onderdeel van een groter plaatje
  • 16. Wat ontbreekt er nog? • Use-case specifieke tooling • Documentatie video’s, tutorials, voorbeelden, blogs… • iedereen kan bijdragen 
  • 18. SeleniumLibrary 4 • Nieuwe versie met nieuwe features • plugins • EventFiringWebDriver (event listener) • Ondersteunt nu alleen RF versie 3.0 en 3.1 • ondersteuning voor RF versie 2.9 is vervallen • Nieuwe keywords vs. deprecated keywords
  • 19. Plugins • Nieuwe (andere) manier van de Selenium lib. uitbreiden • nieuwe keywords toevoegen • standaard functionaliteit overriden • Direct toegang tot Selenium API’s en methoden
  • 20. EventFiringWebDriver • Vergelijkbaar met RF listener API • Voor of na aanroepen Selenium keyword • polling op beschikbaarheid element • automatische screen grabs • Roept direct de Selenium API aan
  • 21. SeleniumLibrary 4 • ‘Gewoon’ beschikbaar via pip en pypi • Let op: intellibot plugin (PyCharm) ondersteunt deze versie nog niet! • Zorgt er voor dat geen enkel RF keyword meer wordt herkend • Advies: gebruik versie 3.3.1, tenzij…
  • 22. SeleniumTestability library • Nieuwe library, ontwikkeld als plugin • maakt gebruik van de EventFiringWebDriver • detectie van asynchrone events (JavaScript) • Testcase kan automatisch wachten tot achtergrond events gereed zijn • Te installeren vanaf pypi met commando pip install robotframework-seleniumtestability
  • 23. DataDriver library • Data-driven testing wordt momenteel ondersteund • alle testcases hebben dezelfde flow • alle testcases hebben verschillende testdata • Huidige syntax voor data-driven testing • geen statistieken -> alle testcases in één • geen mogelijkheden voor continue on failure • for-loop in testcase (lelijk!) of • veel data in Robot file (geen goed format)
  • 24. DataDriver library • Nieuwe libray, ondersteunt XLS(X), CSV en PICT • maakt gebruik van de RF listner API • runtime worden testcases toegevoegd • maakt gebruik van custom DataReaders (uitbreidbaar) Te installeren vanaf pypi met commando pip install robotframework-datadriver Demo files: https://github.com/cmbos/robotframework_demos/bl ob/master/demo%20DataDriverLib.zip
  • 25. Crypto library • Library voor encrypten credentials • Versleutelen wachtwoorden • Maskeren wachtwoorden in logs • Symetrische en Asymetrische encryptie • RPA heeft productie users nodig met rechten pip install robotframework-crypto
  • 26. Image library • Library voor image recognition • Zoeken op deel van het scherm • Processing van images • Resizing • Kleuring • OCR (gebruikmakend van Tesseract) • Wachten op animaties pip install robotframework-imagelibrary
  • 27. Jupyter Notebook & Robotlab • Snelle manier van prototyping • Interactive Computing Environment (ICE) • Live code • Inline opgemaakte documentatie • Inline plaatjes • Geïsoleerde omgeving voor doen van PoC https://robots-from-jupyter.github.io
  • 28. RF Swarm • Performance testen met Robotframework • Controller – Agent – SUT • Reporting • Nog in ontwikkelende fase https://github.com/damies13/rfswarm
  • 29. Test archiver & prioritizer • Zoekbaar opslaan testresultaten meerdere runs • Voorspellen op basis van historische gegevens • VCS gegevens • testresultaten • Snellere feedback van testen • eerst runnen van testen die (waarschijnlijk) geraakt zijn https://github.com/salabs/TestArchiver https://github.com/salabs/ChangeEngine https://github.com/salabs/Epimetheus
  • 30. Robotflow • Keywords visueel koppelen in workflow en uitvoeren • Automatiseren door workflow uit te tekenen • Nog experimenteel • Robot Framework 3.2 alpha 1 or later • Afhankelijk van eventlisteners uit RF 3.2 https://github.com/qentinelqi/robotflow
  • 32. RF versie 3.2 • Release in maart 2020 (verwacht) • Nieuwe parser • Basis voor toevoegen nieuwe syntax • Betere API’s voor externe tools • syntax highlighting • Linters • code formatters
  • 33. RF versie 3.2 • Inline Python support • Library decorator • Vooral voor grotere libraries interessant • Listeners: tests kunnen toevoegen in runtime • RobotFlow • (DatadriverLibrary)
  • 34. RF versie 3.2 • Syntax pre 3.1 is deprecated • for-loops • list/dictionary items+
  • 35. What’s next • Language server protocol (LSP) • voor ondersteuning syntax highlighting in editors/IDE’s • Python 2 end-of-life (per april 2020) • RF 3.2 laatste versie die Python 2 ondersteunt • vooral probleem voor Jython en IronPython • RF versie 3.3
  • 36. Vooruitblik naar RF versie 3.3 • Verwacht in Q3 2020 (ten vroegste) • Ondersteunt alleen Python versie 3! • IF/ELSE, TRY CATCH en nested control structures • Mogelijk gemaakt door nieuwe parser in 3.2 • Vooral nodig voor RPA
  • 37. Torilla Tavataan • ‘Let’s meet at the Market Square’ • Een centrale plek op github • alle libraries op één plek • zicht op wat al ontwikkeld is • jouw library overdragen aan de community https://github.com/MarketSquare
  • 39. Making Robot Framework the best open source (test) automation tool available on the market
  • 41. Wat biedt Immune-it aan? • Expertise, aantal RF specialisten in dienst • Ca. 50 collega’s opgeleid • 40 op foundation niveau • 15 op advanced niveau • Meetups
  • 42. Cursusaanbod • 3-tal cursussen rondom core functionaliteit RF • foundation – advanced – expert cursus • maken gebruik van SeleniumLibrary • Database en REST API testing cursus • database library • RESTInstance library • Python cursus • zelf libraries schrijven en gebruiken
  • 43. Toekomstige meetups… • Eerstvolgende meetup in mei • Input vanuit de community (jullie) gevraagd • Meer focus op hands-on sessies met laptops?