Recap van RoboCon 2020 Helsinki.
Hierin wordt ingegaan op de nieuwe 2.3 versie van Robot Framework. Ook wordt bekeken wat de stand van zaken is rondom de open source RPA community.
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