SlideShare une entreprise Scribd logo
1  sur  68
Télécharger pour lire hors ligne
AUTOMATED END-TO-END
TESTING WITH NIGHTWATCH.js
Vladimir Roudakov
29 Sep 2016 Front End bit.ly/dce16-nwatch
Vladimir ROUDAKOV
bit.ly/dce16-nwatch
@VladimirAus
Prologue
WHY TESTING?
SOFTWARE DEVELOPMENT CYCLE
REQUIREMENTS
TESTS
IMPLEMENTATION
1. Requirements
● Search for surname
● Display person’s information
2. Manual test
● Go to search engine
● Type surname into search box
● Check for result in right hand side area
3. Automated test
● A: URL is available and <body> is visible
● B: Search button is visible
● Enter surname and click search
● C: Right hand side area is visible
● D: Right hand side area contains person’s details
module.exports = {
'As a user I want to see name prediction in right hand side block' :
function (browser) {
browser
.url('http://www.google.com')
.waitForElementVisible('body', 1000)
.setValue('input[type=text]', 'buytaert')
.waitForElementVisible('button[name=btnG]', 1000)
.click('button[name=btnG]')
.waitForElementVisible('#rhs_block', 1000)
.assert.containsText('#main', 'Dries Buytaert')
.end();
}
};
4. Running the test
1. Command line test runner
2. Tests are in JavaScript
3. Uses CSS selectors
● input[type=text]
● button[name=btnG]
● #rhs_block
● #main
4. Continuous Integration support
5. Cloud services support
6. Easy to extend
● Custom commands
● Custom assertions
● Custom reporters
REPORTS
STANDARD PROCESS
Developer
F1F1
F2
STANDARD PROCESS
Developer
PM
F3, ...
F1F1
F2
F1
F2
F2 ready?
Sure
STANDARD PROCESS
BA
Developer
PM
F3, ...
F1F1
F2
F1
F2
F2 ready?
Sure
Great!
To production!
STANDARD PROCESS
BA
DeveloperClient
PM
F3, ...
F1F1
F2
F1
F2
F2 ready?
Sure
Great!
To production!
F2 ready!
Great!
STANDARD PROCESS
BA
DeveloperClient
PM
F3, ...
F1F1
F2
F1
F2
F2 ready?
Sure
Great!
To production!
F2 ready!
Great!
F1?
ADDING AUTOMATED TESTING
BA
DeveloperClient
PM
F1F1
F2
ADDING AUTOMATED TESTING
BA
DeveloperClient
PM
F1F1
F2
ADDING AUTOMATED TESTING
BA
DeveloperClient
PM
F1F1
F2
ADDING AUTOMATED TESTING
BA
DeveloperClient
PM
F1F1
F2
Yes, but F1 is
broken...
F2 ready?
Who like reports?
DEVELOPERS
Technical detailed report on
● New features and existing functionality
● Integration on latest test environment and UAT
● Sprint retrospective
Who like reports?
INTERNAL TEAM: Managers, PMs, BAs
Report with less technical details on multiple environments
● Track sprint / release progress
● Measure velocity
● Integrate with internal tools: email, chat
Who like reports?
CLIENTS
Report with no technical details on pre release environment
● Test coverage
● Ability to identify missing / not clarified features
Report output
● Visual
● Command line
● JUnit XML
● Custom reporters, e.g. JSON
TESTS
Nightwatch tests
● Written in JavaScript
● Each test can have multiple assertions
module.exports = {
'As a user I want to see name prediction in right hand side block' :
function (browser) {
browser
.url('http://www.google.com')
.waitForElementVisible('body', 1000)
.setValue('input[type=text]', 'buytaert')
.waitForElementVisible('button[name=btnG]', 1000)
.click('button[name=btnG]')
.waitForElementVisible('#rhs_block', 1000)
.assert.containsText('#main', 'Dries Buytaert')
.end();
}
};
module.exports = {
'As a user I want to see name prediction in right hand side block' :
function (browser) {
browser
.url('http://www.google.com')
.waitForElementVisible('body', 1000)
.setValue('input[type=text]', 'buytaert')
.waitForElementVisible('button[name=btnG]', 1000)
.click('button[name=btnG]')
.waitForElementVisible('#rhs_block', 1000)
.assert.containsText('#main', 'Dries Buytaert')
.end();
}
};
module.exports = {
'As a user I want to see name prediction in right hand side block' :
function (browser) {
browser
.url('http://www.google.com')
.waitForElementVisible('body', 1000)
.setValue('input[type=text]', 'buytaert')
.waitForElementVisible('button[name=btnG]', 1000)
.click('button[name=btnG]')
.waitForElementVisible('#rhs_block', 1000)
.assert.containsText('#main', 'Dries Buytaert')
.end();
}
};
module.exports = {
'As a user I want to see name prediction in right hand side block' :
function (browser) {
browser
.url('http://www.google.com')
.waitForElementVisible('body', 1000)
.setValue('input[type=text]', 'buytaert')
.waitForElementVisible('button[name=btnG]', 1000)
.click('button[name=btnG]')
.waitForElementVisible('#rhs_block', 1000)
.assert.containsText('#main', 'Dries Buytaert')
.end();
}
};
module.exports = {
'As a user I want to see name prediction in right hand side block' :
function (browser) {
browser
.url('http://www.google.com')
.waitForElementVisible('body', 1000)
.setValue('input[type=text]', 'buytaert')
.waitForElementVisible('button[name=btnG]', 1000)
.click('button[name=btnG]')
.waitForElementVisible('#rhs_block', 1000)
.assert.containsText('#main', 'Dries Buytaert')
.end();
}
};
module.exports = {
'As a user I want to see name prediction in right hand side block' :
function (browser) {
browser
.url('http://www.google.com')
.waitForElementVisible('body', 1000)
.setValue('input[type=text]', 'buytaert')
.waitForElementVisible('button[name=btnG]', 1000)
.click('button[name=btnG]')
.waitForElementVisible('#rhs_block', 1000)
.assert.containsText('#main', 'Dries Buytaert')
.end();
}
};
Nightwatch tests
● Each file can have multiple tests
● Each folder can have multiple folders and files
Nightwatch tests
● Group tests according to functionality
● Tag your tests for better granular testing
module.exports = {
'@tags': ['sprint3', 'issue 15674'],
'demo login test': function (browser) {
// test code
}
};
ENVIRONMENT
Local environment - selenium
scripts driver
Selenium
● Selenium is a suite of tools to automate web browsers across
many platforms.
● Supports many operating systems
● Runs as a server on Java
● Writing tests is complicated
...
"selenium" : {
"start_process" : false,
"server_path" : "/usr/local/.../seleniumserver2.jar",
"log_path" : "",
"host" : "127.0.0.1",
"port" : 4444,
"cli_args" : {
"webdriver.chrome.driver" : "./chromedriver",
"webdriver.gecko.driver" : "./geckodriver",
"webdriver.ie.driver" : ""
}
...
Selenium web driver
Allows selenium to use native browser engines
● Firefox - new Gecko driver
● Safari - requeres
● chrome
● IE / edge browser - ability to run IE in linux
● PhantomJS
...
"selenium" : {
"start_process" : false,
"server_path" : "/usr/local/.../seleniumserver2.jar",
"log_path" : "",
"host" : "127.0.0.1",
"port" : 4444,
"cli_args" : {
"webdriver.chrome.driver" : "./chromedriver",
"webdriver.gecko.driver" : "./geckodriver",
"webdriver.ie.driver" : ""
}
...
No desktop environment - Xvfb
scripts driver
Xvfb
● Virtual screen to run browser
● Native functionality
Using cloud services
scripts
"selenium" : {
"start_process" : false,
"host": "ondemand.saucelabs.com",
"port": 80
},
"test_settings" : {
"default" : {
"output": true,
"selenium_host": "ondemand.saucelabs.com",
"selenium_port": 80,
"username": "${SAUCE_USERNAME}",
"access_key": "${SAUCE_ACCESS_KEY}",
"desiredCapabilities": {
"browserName": "chrome",
"platform": "Windows 10",
"version": "48"
"selenium" : {
"start_process" : false,
"host": "ondemand.saucelabs.com",
"port": 80
},
"test_settings" : {
"default" : {
"output": true,
"selenium_host": "ondemand.saucelabs.com",
"selenium_port": 80,
"username": "${SAUCE_USERNAME}",
"access_key": "${SAUCE_ACCESS_KEY}",
"desiredCapabilities": {
"browserName": "chrome",
"platform": "Windows 10",
"version": "48"
"selenium" : {
"start_process" : false,
"host": "ondemand.saucelabs.com",
"port": 80
},
"test_settings" : {
"default" : {
"output": true,
"selenium_host": "ondemand.saucelabs.com",
"selenium_port": 80,
"username": "${SAUCE_USERNAME}",
"access_key": "${SAUCE_ACCESS_KEY}",
"desiredCapabilities": {
"browserName": "chrome",
"platform": "Windows 10",
"version": "48"
Epilogue
WHY NIGHTWATCH.js?
Conclusion
● Command line test runner
● Uses JavaScript
● Uses CSS selectors / XPath
● Continuous Integration support
● Cloud services support
Advantages
● Test ANY website
● Complements unit testing
● Various reports
● Visual artifacts (screenshots, videos)
● CI / Cloud services support
Disadvantages
● Takes time for initial setup
● Basic cording knowledge required
Resources
● http://nightwatchjs.org/
● https://github.com/nightwatchjs/nightwatch
● http://www.seleniumhq.org/
● http://www.saucelabs.com/
More resources
JavaScript Unit Testing
Matthew Grill
https://events.drupal.org/dublin2016/sessions/javascript-unit-testing
Evaluate This Session
THANK YOU!
events.drupal.org/dublin2016/schedule
QUESTIONS?
bit.ly/dce16-nwatch
@VladimirAus

Contenu connexe

Tendances

Creating the interfaces of the future with the APIs of today
Creating the interfaces of the future with the APIs of todayCreating the interfaces of the future with the APIs of today
Creating the interfaces of the future with the APIs of today
gerbille
 
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Jeado Ko
 

Tendances (20)

Vuejs testing
Vuejs testingVuejs testing
Vuejs testing
 
22 j query1
22 j query122 j query1
22 j query1
 
Creating the interfaces of the future with the APIs of today
Creating the interfaces of the future with the APIs of todayCreating the interfaces of the future with the APIs of today
Creating the interfaces of the future with the APIs of today
 
Sane Async Patterns
Sane Async PatternsSane Async Patterns
Sane Async Patterns
 
AngularJS Architecture
AngularJS ArchitectureAngularJS Architecture
AngularJS Architecture
 
Night Watch with QA
Night Watch with QANight Watch with QA
Night Watch with QA
 
Modules and injector
Modules and injectorModules and injector
Modules and injector
 
Code ceptioninstallation
Code ceptioninstallationCode ceptioninstallation
Code ceptioninstallation
 
Test automation & Seleniun by oren rubin
Test automation & Seleniun by oren rubinTest automation & Seleniun by oren rubin
Test automation & Seleniun by oren rubin
 
Backbone.js
Backbone.jsBackbone.js
Backbone.js
 
Protractor Training in Pune by QuickITDotnet
Protractor Training in Pune by QuickITDotnet Protractor Training in Pune by QuickITDotnet
Protractor Training in Pune by QuickITDotnet
 
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
 
Introduction to Selenium and Ruby
Introduction to Selenium and RubyIntroduction to Selenium and Ruby
Introduction to Selenium and Ruby
 
Better Testing With PHP Unit
Better Testing With PHP UnitBetter Testing With PHP Unit
Better Testing With PHP Unit
 
Django + Vue, JavaScript de 3ª generación para modernizar Django
Django + Vue, JavaScript de 3ª generación para modernizar DjangoDjango + Vue, JavaScript de 3ª generación para modernizar Django
Django + Vue, JavaScript de 3ª generación para modernizar Django
 
Selenide Alternative in Practice - Implementation & Lessons learned [Selenium...
Selenide Alternative in Practice - Implementation & Lessons learned [Selenium...Selenide Alternative in Practice - Implementation & Lessons learned [Selenium...
Selenide Alternative in Practice - Implementation & Lessons learned [Selenium...
 
Vue.js + Django - configuración para desarrollo con webpack y HMR
Vue.js + Django - configuración para desarrollo con webpack y HMRVue.js + Django - configuración para desarrollo con webpack y HMR
Vue.js + Django - configuración para desarrollo con webpack y HMR
 
Join the darkside: Selenium testing with Nightwatch.js
Join the darkside: Selenium testing with Nightwatch.jsJoin the darkside: Selenium testing with Nightwatch.js
Join the darkside: Selenium testing with Nightwatch.js
 
Bonnes pratiques de développement avec Node js
Bonnes pratiques de développement avec Node jsBonnes pratiques de développement avec Node js
Bonnes pratiques de développement avec Node js
 
How to Build SPA with Vue Router 2.0
How to Build SPA with Vue Router 2.0How to Build SPA with Vue Router 2.0
How to Build SPA with Vue Router 2.0
 

En vedette

En vedette (10)

DrupalGov 2017: Testing any day: guide to end to end test driven Drupal projects
DrupalGov 2017: Testing any day: guide to end to end test driven Drupal projectsDrupalGov 2017: Testing any day: guide to end to end test driven Drupal projects
DrupalGov 2017: Testing any day: guide to end to end test driven Drupal projects
 
Anointing to excel
Anointing to excelAnointing to excel
Anointing to excel
 
Testing nightwatch, by David Torroija
Testing nightwatch, by David TorroijaTesting nightwatch, by David Torroija
Testing nightwatch, by David Torroija
 
The Javascript Toolkit 2.0
The Javascript Toolkit 2.0The Javascript Toolkit 2.0
The Javascript Toolkit 2.0
 
Evolving legacy to microservices and ddd
Evolving legacy to microservices and dddEvolving legacy to microservices and ddd
Evolving legacy to microservices and ddd
 
Browser Automated Testing Frameworks - Nightwatch.js
Browser Automated Testing Frameworks - Nightwatch.jsBrowser Automated Testing Frameworks - Nightwatch.js
Browser Automated Testing Frameworks - Nightwatch.js
 
Fullstack End-to-end test automation with Node.js, one year later
Fullstack End-to-end test automation with Node.js, one year laterFullstack End-to-end test automation with Node.js, one year later
Fullstack End-to-end test automation with Node.js, one year later
 
Making views - DrupalGov Canberra 2017
Making views - DrupalGov Canberra 2017Making views - DrupalGov Canberra 2017
Making views - DrupalGov Canberra 2017
 
Getting By Without "QA"
Getting By Without "QA"Getting By Without "QA"
Getting By Without "QA"
 
Nightwatch at Tilt
Nightwatch at TiltNightwatch at Tilt
Nightwatch at Tilt
 

Similaire à DrupalCon Dublin 2016 - Automated browser testing with Nightwatch.js

09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
Igor Bronovskyy
 
Top100summit 谷歌-scott-improve your automated web application testing
Top100summit  谷歌-scott-improve your automated web application testingTop100summit  谷歌-scott-improve your automated web application testing
Top100summit 谷歌-scott-improve your automated web application testing
drewz lin
 

Similaire à DrupalCon Dublin 2016 - Automated browser testing with Nightwatch.js (20)

Android UI Testing with Appium
Android UI Testing with AppiumAndroid UI Testing with Appium
Android UI Testing with Appium
 
Testing in JavaScript
Testing in JavaScriptTesting in JavaScript
Testing in JavaScript
 
UA Testing with Selenium and PHPUnit - ZendCon 2013
UA Testing with Selenium and PHPUnit - ZendCon 2013UA Testing with Selenium and PHPUnit - ZendCon 2013
UA Testing with Selenium and PHPUnit - ZendCon 2013
 
Selenium
SeleniumSelenium
Selenium
 
Protractor framework architecture with example
Protractor framework architecture with exampleProtractor framework architecture with example
Protractor framework architecture with example
 
Good practices for debugging Selenium and Appium tests
Good practices for debugging Selenium and Appium testsGood practices for debugging Selenium and Appium tests
Good practices for debugging Selenium and Appium tests
 
Dive into Play Framework
Dive into Play FrameworkDive into Play Framework
Dive into Play Framework
 
Testing in JavaScript - August 2018 - WebElement Bardejov
Testing in JavaScript - August 2018 - WebElement BardejovTesting in JavaScript - August 2018 - WebElement Bardejov
Testing in JavaScript - August 2018 - WebElement Bardejov
 
Webdriver.io
Webdriver.io Webdriver.io
Webdriver.io
 
End-to-end testing with geb
End-to-end testing with gebEnd-to-end testing with geb
End-to-end testing with geb
 
soft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.js
 
Detecting headless browsers
Detecting headless browsersDetecting headless browsers
Detecting headless browsers
 
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
 
Browser testing with nightwatch.js - Drupal Europe
Browser testing with nightwatch.js - Drupal EuropeBrowser testing with nightwatch.js - Drupal Europe
Browser testing with nightwatch.js - Drupal Europe
 
Good karma: UX Patterns and Unit Testing in Angular with Karma
Good karma: UX Patterns and Unit Testing in Angular with KarmaGood karma: UX Patterns and Unit Testing in Angular with Karma
Good karma: UX Patterns and Unit Testing in Angular with Karma
 
Laravel5 Introduction and essentials
Laravel5 Introduction and essentialsLaravel5 Introduction and essentials
Laravel5 Introduction and essentials
 
Top100summit 谷歌-scott-improve your automated web application testing
Top100summit  谷歌-scott-improve your automated web application testingTop100summit  谷歌-scott-improve your automated web application testing
Top100summit 谷歌-scott-improve your automated web application testing
 
Testing web application with Python
Testing web application with PythonTesting web application with Python
Testing web application with Python
 
Nicolas Embleton, Advanced Angular JS
Nicolas Embleton, Advanced Angular JSNicolas Embleton, Advanced Angular JS
Nicolas Embleton, Advanced Angular JS
 
Introduction to angular js
Introduction to angular jsIntroduction to angular js
Introduction to angular js
 

Plus de Vladimir Roudakov

Plus de Vladimir Roudakov (20)

What's new in Drupal 8.7 (Brisbane Drupal Meetup Brisbane)
What's new in Drupal 8.7 (Brisbane Drupal Meetup Brisbane)What's new in Drupal 8.7 (Brisbane Drupal Meetup Brisbane)
What's new in Drupal 8.7 (Brisbane Drupal Meetup Brisbane)
 
Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)
Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)
Gitlab for JS developers (BrisJs meetup, 2019-Apr-01)
 
Gitlab for PHP developers (Brisbane PHP meetup, 2019-Jan-29)
Gitlab for PHP developers (Brisbane PHP meetup, 2019-Jan-29)Gitlab for PHP developers (Brisbane PHP meetup, 2019-Jan-29)
Gitlab for PHP developers (Brisbane PHP meetup, 2019-Jan-29)
 
Bootstrap 4: what's new, using in Drupal, Bootstrap and php, Bootstrap tools
Bootstrap 4: what's new, using in Drupal, Bootstrap and php, Bootstrap toolsBootstrap 4: what's new, using in Drupal, Bootstrap and php, Bootstrap tools
Bootstrap 4: what's new, using in Drupal, Bootstrap and php, Bootstrap tools
 
Drupal Brisbane Meetup :: Drupal in late 2017-2018
Drupal Brisbane Meetup :: Drupal in late 2017-2018Drupal Brisbane Meetup :: Drupal in late 2017-2018
Drupal Brisbane Meetup :: Drupal in late 2017-2018
 
10 tips for continuous integration
10 tips for continuous integration10 tips for continuous integration
10 tips for continuous integration
 
Testing any day: guide to end to end test driven WordPress projects
Testing any day: guide to end to end test driven WordPress projectsTesting any day: guide to end to end test driven WordPress projects
Testing any day: guide to end to end test driven WordPress projects
 
Brisbane Drupal meetup 2016 Apr - whats new in Drupal 8.1
Brisbane Drupal meetup   2016 Apr - whats new in Drupal 8.1Brisbane Drupal meetup   2016 Apr - whats new in Drupal 8.1
Brisbane Drupal meetup 2016 Apr - whats new in Drupal 8.1
 
Brisbane Drupal meetup - 2016 Mar - Build module in Drupal 8
Brisbane Drupal meetup - 2016 Mar - Build module in Drupal 8Brisbane Drupal meetup - 2016 Mar - Build module in Drupal 8
Brisbane Drupal meetup - 2016 Mar - Build module in Drupal 8
 
Brisbane Drupal meetup - 2016 Jan - Drupal hostings
Brisbane Drupal meetup - 2016 Jan - Drupal hostingsBrisbane Drupal meetup - 2016 Jan - Drupal hostings
Brisbane Drupal meetup - 2016 Jan - Drupal hostings
 
Bootstrap. December 2015 [Brisbane Drupal meetup]
Bootstrap. December 2015 [Brisbane Drupal meetup] Bootstrap. December 2015 [Brisbane Drupal meetup]
Bootstrap. December 2015 [Brisbane Drupal meetup]
 
DrupalCamp Melbourne 2015. Bootstrap: framework and theme.
DrupalCamp Melbourne 2015. Bootstrap: framework and theme.DrupalCamp Melbourne 2015. Bootstrap: framework and theme.
DrupalCamp Melbourne 2015. Bootstrap: framework and theme.
 
Drupal 8 update. November 2015 [Brisbane Drupal meetup]
Drupal 8 update. November 2015 [Brisbane Drupal meetup]Drupal 8 update. November 2015 [Brisbane Drupal meetup]
Drupal 8 update. November 2015 [Brisbane Drupal meetup]
 
Drupal 8 update. June 2015 [Brisbane Drupal meetup]
Drupal 8 update. June 2015 [Brisbane Drupal meetup]Drupal 8 update. June 2015 [Brisbane Drupal meetup]
Drupal 8 update. June 2015 [Brisbane Drupal meetup]
 
Drupal 8 update. May 2015 [Brisbane Drupal meetup]
Drupal 8 update. May 2015 [Brisbane Drupal meetup]Drupal 8 update. May 2015 [Brisbane Drupal meetup]
Drupal 8 update. May 2015 [Brisbane Drupal meetup]
 
Drupal 8 update. March 2015 [Brisbane Drupal meetup]
Drupal 8 update. March 2015 [Brisbane Drupal meetup]Drupal 8 update. March 2015 [Brisbane Drupal meetup]
Drupal 8 update. March 2015 [Brisbane Drupal meetup]
 
Drupal 8 update. November 2015 [Brisbane Drupal meetup]
Drupal 8 update. November 2015 [Brisbane Drupal meetup]Drupal 8 update. November 2015 [Brisbane Drupal meetup]
Drupal 8 update. November 2015 [Brisbane Drupal meetup]
 
Drupal LMS. February 2015 [Brisbane Drupal meetup]
Drupal LMS. February 2015 [Brisbane Drupal meetup]Drupal LMS. February 2015 [Brisbane Drupal meetup]
Drupal LMS. February 2015 [Brisbane Drupal meetup]
 
Drupal 8 update. February 2015 [Brisbane Drupal meetup]
Drupal 8 update. February 2015 [Brisbane Drupal meetup]Drupal 8 update. February 2015 [Brisbane Drupal meetup]
Drupal 8 update. February 2015 [Brisbane Drupal meetup]
 
Drupal 8 update & drush: October 2014
Drupal 8 update & drush: October 2014Drupal 8 update & drush: October 2014
Drupal 8 update & drush: October 2014
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

DrupalCon Dublin 2016 - Automated browser testing with Nightwatch.js