// 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
// ANDERE WIJZIGINGENIN RF 3.1
•Named-only arguments
•Fix voor corrupte output bij
time-outs
•Nieuwe extensie voor resource
files: *.resource
•80+ ander bugfixes
// 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
// 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
// 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
// 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
// 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
// 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?
// 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
// 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
// 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?
// 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