SlideShare a Scribd company logo
1 of 54
1
The Magic of Headless Browser + Puppeteer:
Using DevTools Without opening DevTools
&
GitKraken as a legendary Git GUI Client
hello!
We are the interns..
2
3
The Magic of Headless Browser
+
Puppeteer:
Using DevTools Without opening
DevTools
4
What is
Headless browser?
➔ running a script or test against a browser
but without the browser, UI starting up.
➔ controlled programmatically
➔ executed via a command-line interface or
using network communication.
5
Use Cases of headless browser
➔ Test automation in modern web applications.
➔ Taking screenshots of web pages.
➔ Running automated tests for JavaScript libraries.
➔ Scraping websites for data.
➔ Automating interaction of web pages.
6
Examples of Headless Browsers
PhantomJS
Chrome
Firefox
CasperJS
7
Headless chrome
(chrome without chrome)
A way to run chrome browser in a headless environment
8
Headless chrome
(chrome without chrome)
➔ Brings all the web platform features
provide by chromium and blink in
rendering engine to command line.
➔ Available in chrome59 version.
Headless Chrome and it’s popularity
➔ support for major desktop, server, and mobile operating systems.
➔ has convenient development tools.
➔ any additional useful features for Devs.
➔ Puppeteer.
9
10
two ways to use Headless Chromium:
➔ via the DevTools remote debugging protocol
<using command line>
➔ from Node.js
<using noje libraries>
11
<Command line features>
12
programmatically(Node) <using puppeteer>
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
// Navigates to the project README file
await page.goto('https://github.com/GoogleChrome/puppeteer/blob/master/README.md');
// Generates a PDF from the page content
await page.pdf({ path: 'overview.pdf' });
await browser.close();
})();
Why Testing Is A scary thing for the developers?
➔ Test is slow and complicated.
➔ Maintaining test can require more time than actually writing your
website
13
Why Webtests Slow
Launching new browser in every single test.
14
But,it makes your tests
slow
IS There Any Solution??
15
With Puppeteer tests are fast
16
How?
Browser Context, a high level API
which isolates your page from one another.
100 * faster
17
Puppeteer
➔ Browser Automation Library
➔ Puppeteer=Node.js+Chrome
➔ Open pages navigate to website,evaluate javascript
18
➔ Same thing as any NPM library
➔ Any test runner:jest,ava,mocha……..
Runs Everywhere
● Desktop: Mac,Windows, Linux
● CI: Travis-CI,AppVeyor
● Cloud: GCP,AWS,Azure
● Docker Containers
19
Use Cases of Puppeteer
➔ Stealing Scraping content from websites and web applications;
➔ Automate tasks on web pages : form submission, keyboard and
mouse emulation;
➔ Web and UI testing : automated tests, browser features tests,
compatibility with Chrome versions;
➔ Taking screenshots and exporting web pages as PDF;
20
Simple Setup
21
npm install puppeteer
➔ Downloads the browser.
➔ No need to configure,link, otherwise to manage browser installation
➔ Just do npm install and ready to code
Initialize Puppeeteer
All code will go
in between these parenthesis.
//Screenshot
//Pdf
//Fake geolocation
22
const puppeteer = require('puppeteer');
puppeteer.launch().then(async browser => {
});
Examples
23
Visit a website
const puppeteer = require('puppeteer');
puppeteer.launch().then(async browser => {
const page = await browser.newPage();
await page.setViewport({ width: 1280, height: 800 })
await page.goto('https://pptr.dev/');
await browser.close();
});
24
➔ Launch puppeteer
➔ set a newpage
➔ Set viewport on that
page
➔ Open the address on
that page
➔ Close the browser
25
26
nothing happens and that’s normal !
Demo
27
remember it is headless Chrome so no UI.
To see what’s happening you could add this launch option to
disable the headless mode in line 2. {headless:false}
Demo
Visit a website (headful mode)
28
puppeteer.launch({headless: false}).then(async browser => {
Using devtools without opening devtools
29
Most thing we do manually in browser
can be done using puppeteer. We can use chrome dev-tools
Without opening devtools
We can use the features of
devtools in puppeteer
DevTools protocol
Puppeteer control headless Chrome or Chromium
over the DevTools Protocol
30
The Chrome DevTools Protocol allows for tools to
instrument,inspect, debug.
Code Coverage
31
Extract code coverage using puppeteer
32
code:
Extract code coverage using puppeteer
33
output:
● Navigating by URL
● Emulating Devices
● Handling Events
● Operating Mouse
● Code Coverage
We can do More...
34
● Operating Keyboard
● Taking Screenshots
● Generating PDF
● Faking Geolocation
● Accessibility
35
➔ If you need to visually observe your test on the browser
➔ It does not give you exact feedback of what your customers will
actually experience on your website(Page loading speeds ...etc)
➔ If you need to do lots of debugging, headless debugging can be
difficult.
➔ Headless Browsers sometimes may throw errors that is not observed
on real browsers
When should we not use headless Browsers?
GitKraken is a Git GUI client for Windows, Mac and Linux.
It helps developers become more productive and efficient with Git.
Developed by -
Features of GitKraken
● Built-in merge tool
● Single-click undo-redo functions
● Keyboard shortcuts
● Support for Git Hooks, Gitflow, Submodules
● Built in SSH authentication
● Interactive Rebase
● Commit signing, etc
Along with some common git actions like -
Features of GitKraken
■ Undo
■ Redo
■ Pull
■ Push
■ Branch
■ Stash
■ Pop Stash
■ Squash
■ Drop, etc.
Features of GitKraken
Integrations with -
GitHub.com
Azure DevOps
(VSTS)
GitLab
GitLab.com Bitbucket.org
Pros & Cons
Why GitKraken?
★ Cross-platform
○ Windows
○ Linux
○ Mac
★ Intuitive UI/UX
○ Visual commit history
○ Drag & Drop
○ Fuzzy finder
○ 1-click undo-redo
★ Speed and responsiveness
★ Merge conflict editor
★ Built-in code editor
○ Diff split view
○ Syntax highlighting
○ Search within files
○ File minimap
★ Issue tracking
○ Glo board
○ GitKraken timelines
★ Offers a simple way of undoing
mistakes
Glo Boards
GitKraken
Timeline
73 companies reportedly use GitKraken in their tech stacks,
including Statista, Goodwings, and Tradecore
1.7 Million+ Devs Rely on GitKraken
The GitKraken is constantly updated
Cons of GitKraken
- Setting up auth with Git providers can be a pain
- No option to push tags with commits (have to push them separately and individually)
- Pricey
- Cannot access multiple repositories in the same session.
Merge Conflicts
● Tool resolve
● Deleted files
● Drag & Drop branch to merge
Merge vs Rebase
Merge vs Rebase
Some GitKraken Tips
1. If you want to see just the commits for a specific branch, use the
soloing function.
2. Use GitKraken’s fuzzy finder to quickly open a repo, view file history,
and more.
3. Pull any branch, even if it isn’t checked out. Just select “Pull” in the
branch actions context menu (you can also push the branch the same
way).
4. Resize the commit graph to optimize space for repos with many
branches, even down to a single column.
5. Scale the UI to your liking with ⌘ | Ctrl + +/-, the zoom selector, or the
fuzzy finder.
6. Forgot something in your previous commit’s message? Amend it by clicking
the message in
the right panel.
7. Drag-and-drop one remote onto another to quickly create a PR without
leaving GitKraken.
8. Select multiple commits in the graph and easily squash them with 1-click.
Use undo to reset
if necessary.
9. Use the fuzzy finder (⌘ | Ctrl + P) to quickly switch repos without leaving
the keyboard.
10. Keyboard shortcuts list: ( ⌘+/ ) for Mac, ( Ctrl+/ ) for Windows.
THANK YOU

More Related Content

What's hot

Vagrant and puppet: Deployment made easy
Vagrant and puppet: Deployment made easyVagrant and puppet: Deployment made easy
Vagrant and puppet: Deployment made easyGeronimo Orozco
 
Volunteering at YouSee on Technology Support
Volunteering at YouSee on Technology SupportVolunteering at YouSee on Technology Support
Volunteering at YouSee on Technology SupportYouSee
 
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...Igalia
 
Kiosk-mode browser using Chromium Embedded Framework (CEF)
Kiosk-mode browser using Chromium Embedded Framework (CEF)Kiosk-mode browser using Chromium Embedded Framework (CEF)
Kiosk-mode browser using Chromium Embedded Framework (CEF)Igalia
 
LCU14 208- Chromium-Blink Migration for RDK
LCU14 208- Chromium-Blink Migration for RDKLCU14 208- Chromium-Blink Migration for RDK
LCU14 208- Chromium-Blink Migration for RDKLinaro
 
The Internal Architecture of Chrome Developer Tools
The Internal Architecture of Chrome Developer ToolsThe Internal Architecture of Chrome Developer Tools
The Internal Architecture of Chrome Developer ToolsMiroslav Bajtoš
 
Fixing Gaps. Strengthening the Chromium platform for content blocking
Fixing Gaps. Strengthening the Chromium platform for content blockingFixing Gaps. Strengthening the Chromium platform for content blocking
Fixing Gaps. Strengthening the Chromium platform for content blockingIgalia
 
Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...Igalia
 
Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)
Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)
Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)Igalia
 
Gerrit JavaScript Plugins
Gerrit JavaScript PluginsGerrit JavaScript Plugins
Gerrit JavaScript PluginsDariusz Łuksza
 
Turducken - Divide and Conquer large GWT apps with multiple teams
Turducken - Divide and Conquer large GWT apps with multiple teamsTurducken - Divide and Conquer large GWT apps with multiple teams
Turducken - Divide and Conquer large GWT apps with multiple teamsRobert Keane
 
Life of a Chromium Developer
Life of a Chromium DeveloperLife of a Chromium Developer
Life of a Chromium Developermpaproductions
 
All Work Responsibilities in my whole Life-Testing Profession
All Work Responsibilities in my whole  Life-Testing  ProfessionAll Work Responsibilities in my whole  Life-Testing  Profession
All Work Responsibilities in my whole Life-Testing ProfessionGopi Raghavendra
 
Embedding Chromium into AGL demo platform with WAM
Embedding Chromium into AGL demo platform with WAMEmbedding Chromium into AGL demo platform with WAM
Embedding Chromium into AGL demo platform with WAMIgalia
 
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 RevolutionWebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutionjuanjosanchezpenas
 

What's hot (20)

Vagrant and puppet: Deployment made easy
Vagrant and puppet: Deployment made easyVagrant and puppet: Deployment made easy
Vagrant and puppet: Deployment made easy
 
Volunteering at YouSee on Technology Support
Volunteering at YouSee on Technology SupportVolunteering at YouSee on Technology Support
Volunteering at YouSee on Technology Support
 
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
 
Kiosk-mode browser using Chromium Embedded Framework (CEF)
Kiosk-mode browser using Chromium Embedded Framework (CEF)Kiosk-mode browser using Chromium Embedded Framework (CEF)
Kiosk-mode browser using Chromium Embedded Framework (CEF)
 
LCU14 208- Chromium-Blink Migration for RDK
LCU14 208- Chromium-Blink Migration for RDKLCU14 208- Chromium-Blink Migration for RDK
LCU14 208- Chromium-Blink Migration for RDK
 
The Internal Architecture of Chrome Developer Tools
The Internal Architecture of Chrome Developer ToolsThe Internal Architecture of Chrome Developer Tools
The Internal Architecture of Chrome Developer Tools
 
Chromium wayland
Chromium waylandChromium wayland
Chromium wayland
 
GWT Contributor Workshop
GWT Contributor WorkshopGWT Contributor Workshop
GWT Contributor Workshop
 
Fixing Gaps. Strengthening the Chromium platform for content blocking
Fixing Gaps. Strengthening the Chromium platform for content blockingFixing Gaps. Strengthening the Chromium platform for content blocking
Fixing Gaps. Strengthening the Chromium platform for content blocking
 
Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...Driving and virtualizing control systems: the Open Source approach used in Wh...
Driving and virtualizing control systems: the Open Source approach used in Wh...
 
GWT and PWA
GWT and PWAGWT and PWA
GWT and PWA
 
Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)
Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)
Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)
 
Gerrit JavaScript Plugins
Gerrit JavaScript PluginsGerrit JavaScript Plugins
Gerrit JavaScript Plugins
 
Turducken - Divide and Conquer large GWT apps with multiple teams
Turducken - Divide and Conquer large GWT apps with multiple teamsTurducken - Divide and Conquer large GWT apps with multiple teams
Turducken - Divide and Conquer large GWT apps with multiple teams
 
Life of a Chromium Developer
Life of a Chromium DeveloperLife of a Chromium Developer
Life of a Chromium Developer
 
All Work Responsibilities in my whole Life-Testing Profession
All Work Responsibilities in my whole  Life-Testing  ProfessionAll Work Responsibilities in my whole  Life-Testing  Profession
All Work Responsibilities in my whole Life-Testing Profession
 
React Native
React NativeReact Native
React Native
 
Embedding Chromium into AGL demo platform with WAM
Embedding Chromium into AGL demo platform with WAMEmbedding Chromium into AGL demo platform with WAM
Embedding Chromium into AGL demo platform with WAM
 
The WebKit project
The WebKit projectThe WebKit project
The WebKit project
 
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 RevolutionWebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolution
 

Similar to Headless browser: puppeteer and git client : GitKraken

MockServer-driven testing
MockServer-driven testingMockServer-driven testing
MockServer-driven testingTestableapple
 
2013-03-07 indie developer toolkit
2013-03-07 indie developer toolkit2013-03-07 indie developer toolkit
2013-03-07 indie developer toolkitCocoaHeads Tricity
 
iOS Indie Developer Toolkit - CocoaHeads 3city
iOS Indie Developer Toolkit - CocoaHeads 3cityiOS Indie Developer Toolkit - CocoaHeads 3city
iOS Indie Developer Toolkit - CocoaHeads 3cityMichał Zygar
 
Headless browser a stepping stone towards developing smarter web applicatio...
Headless browser   a stepping stone towards developing smarter web applicatio...Headless browser   a stepping stone towards developing smarter web applicatio...
Headless browser a stepping stone towards developing smarter web applicatio...Bala Murugan
 
More Dev. Less Drama.pdf
More Dev. Less Drama.pdfMore Dev. Less Drama.pdf
More Dev. Less Drama.pdfWP Engine
 
Intro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdfIntro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdfWeaveworks
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Weaveworks
 
GT-Mconf - Transfer of Technology Course
GT-Mconf - Transfer of Technology CourseGT-Mconf - Transfer of Technology Course
GT-Mconf - Transfer of Technology Coursemconf
 
vodQA Pune (2019) - Browser automation using dev tools
vodQA Pune (2019) - Browser automation using dev toolsvodQA Pune (2019) - Browser automation using dev tools
vodQA Pune (2019) - Browser automation using dev toolsvodQA
 
Electron JS | Build cross-platform desktop applications with web technologies
Electron JS | Build cross-platform desktop applications with web technologiesElectron JS | Build cross-platform desktop applications with web technologies
Electron JS | Build cross-platform desktop applications with web technologiesBethmi Gunasekara
 
Griffon for the Enterprise
Griffon for the EnterpriseGriffon for the Enterprise
Griffon for the EnterpriseJames Williams
 
Puppeteer - Headless Chrome Node API
Puppeteer - Headless Chrome Node APIPuppeteer - Headless Chrome Node API
Puppeteer - Headless Chrome Node APIubunturk
 
Panther loves Symfony apps
Panther loves Symfony appsPanther loves Symfony apps
Panther loves Symfony appsSimone D'Amico
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps WorkshopWeaveworks
 
Technical Tips: Visual Regression Testing and Environment Comparison with Bac...
Technical Tips: Visual Regression Testing and Environment Comparison with Bac...Technical Tips: Visual Regression Testing and Environment Comparison with Bac...
Technical Tips: Visual Regression Testing and Environment Comparison with Bac...Building Blocks
 
CIP Developing Curator Tool Wizards
CIP Developing Curator Tool WizardsCIP Developing Curator Tool Wizards
CIP Developing Curator Tool WizardsEdwin Rojas
 
JS digest. November 2017
JS digest. November 2017JS digest. November 2017
JS digest. November 2017ElifTech
 
Programming for non tech entrepreneurs
Programming for non tech entrepreneursProgramming for non tech entrepreneurs
Programming for non tech entrepreneursRodrigo Gil
 
Head first android apps dev tools
Head first android apps dev toolsHead first android apps dev tools
Head first android apps dev toolsShaka Huang
 

Similar to Headless browser: puppeteer and git client : GitKraken (20)

MockServer-driven testing
MockServer-driven testingMockServer-driven testing
MockServer-driven testing
 
2013-03-07 indie developer toolkit
2013-03-07 indie developer toolkit2013-03-07 indie developer toolkit
2013-03-07 indie developer toolkit
 
iOS Indie Developer Toolkit - CocoaHeads 3city
iOS Indie Developer Toolkit - CocoaHeads 3cityiOS Indie Developer Toolkit - CocoaHeads 3city
iOS Indie Developer Toolkit - CocoaHeads 3city
 
Headless browser a stepping stone towards developing smarter web applicatio...
Headless browser   a stepping stone towards developing smarter web applicatio...Headless browser   a stepping stone towards developing smarter web applicatio...
Headless browser a stepping stone towards developing smarter web applicatio...
 
More Dev. Less Drama.pdf
More Dev. Less Drama.pdfMore Dev. Less Drama.pdf
More Dev. Less Drama.pdf
 
Intro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdfIntro to GitOps & Flux.pdf
Intro to GitOps & Flux.pdf
 
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)Free GitOps Workshop (with Intro to Kubernetes & GitOps)
Free GitOps Workshop (with Intro to Kubernetes & GitOps)
 
GT-Mconf - Transfer of Technology Course
GT-Mconf - Transfer of Technology CourseGT-Mconf - Transfer of Technology Course
GT-Mconf - Transfer of Technology Course
 
vodQA Pune (2019) - Browser automation using dev tools
vodQA Pune (2019) - Browser automation using dev toolsvodQA Pune (2019) - Browser automation using dev tools
vodQA Pune (2019) - Browser automation using dev tools
 
Electron JS | Build cross-platform desktop applications with web technologies
Electron JS | Build cross-platform desktop applications with web technologiesElectron JS | Build cross-platform desktop applications with web technologies
Electron JS | Build cross-platform desktop applications with web technologies
 
Griffon for the Enterprise
Griffon for the EnterpriseGriffon for the Enterprise
Griffon for the Enterprise
 
DevOps & SRE at Google Scale
DevOps & SRE at Google ScaleDevOps & SRE at Google Scale
DevOps & SRE at Google Scale
 
Puppeteer - Headless Chrome Node API
Puppeteer - Headless Chrome Node APIPuppeteer - Headless Chrome Node API
Puppeteer - Headless Chrome Node API
 
Panther loves Symfony apps
Panther loves Symfony appsPanther loves Symfony apps
Panther loves Symfony apps
 
Free GitOps Workshop
Free GitOps WorkshopFree GitOps Workshop
Free GitOps Workshop
 
Technical Tips: Visual Regression Testing and Environment Comparison with Bac...
Technical Tips: Visual Regression Testing and Environment Comparison with Bac...Technical Tips: Visual Regression Testing and Environment Comparison with Bac...
Technical Tips: Visual Regression Testing and Environment Comparison with Bac...
 
CIP Developing Curator Tool Wizards
CIP Developing Curator Tool WizardsCIP Developing Curator Tool Wizards
CIP Developing Curator Tool Wizards
 
JS digest. November 2017
JS digest. November 2017JS digest. November 2017
JS digest. November 2017
 
Programming for non tech entrepreneurs
Programming for non tech entrepreneursProgramming for non tech entrepreneurs
Programming for non tech entrepreneurs
 
Head first android apps dev tools
Head first android apps dev toolsHead first android apps dev tools
Head first android apps dev tools
 

Recently uploaded

Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startQuintin Balsdon
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdfKamal Acharya
 
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptxrouholahahmadi9876
 
Introduction to Data Visualization,Matplotlib.pdf
Introduction to Data Visualization,Matplotlib.pdfIntroduction to Data Visualization,Matplotlib.pdf
Introduction to Data Visualization,Matplotlib.pdfsumitt6_25730773
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptxJIT KUMAR GUPTA
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdfAldoGarca30
 
Learn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic MarksLearn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic MarksMagic Marks
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARKOUSTAV SARKAR
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXssuser89054b
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.Kamal Acharya
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...Amil baba
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationBhangaleSonal
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdfKamal Acharya
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptDineshKumar4165
 
Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilVinayVitekari
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaOmar Fathy
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityMorshed Ahmed Rahath
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsvanyagupta248
 

Recently uploaded (20)

Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx
457503602-5-Gas-Well-Testing-and-Analysis-pptx.pptx
 
Introduction to Data Visualization,Matplotlib.pdf
Introduction to Data Visualization,Matplotlib.pdfIntroduction to Data Visualization,Matplotlib.pdf
Introduction to Data Visualization,Matplotlib.pdf
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
 
Learn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic MarksLearn the concepts of Thermodynamics on Magic Marks
Learn the concepts of Thermodynamics on Magic Marks
 
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKARHAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
HAND TOOLS USED AT ELECTRONICS WORK PRESENTED BY KOUSTAV SARKAR
 
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
NO1 Top No1 Amil Baba In Azad Kashmir, Kashmir Black Magic Specialist Expert ...
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech Civil
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 
Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 

Headless browser: puppeteer and git client : GitKraken

  • 1. 1 The Magic of Headless Browser + Puppeteer: Using DevTools Without opening DevTools & GitKraken as a legendary Git GUI Client
  • 2. hello! We are the interns.. 2
  • 3. 3 The Magic of Headless Browser + Puppeteer: Using DevTools Without opening DevTools
  • 4. 4 What is Headless browser? ➔ running a script or test against a browser but without the browser, UI starting up. ➔ controlled programmatically ➔ executed via a command-line interface or using network communication.
  • 5. 5 Use Cases of headless browser ➔ Test automation in modern web applications. ➔ Taking screenshots of web pages. ➔ Running automated tests for JavaScript libraries. ➔ Scraping websites for data. ➔ Automating interaction of web pages.
  • 6. 6 Examples of Headless Browsers PhantomJS Chrome Firefox CasperJS
  • 7. 7 Headless chrome (chrome without chrome) A way to run chrome browser in a headless environment
  • 8. 8 Headless chrome (chrome without chrome) ➔ Brings all the web platform features provide by chromium and blink in rendering engine to command line. ➔ Available in chrome59 version.
  • 9. Headless Chrome and it’s popularity ➔ support for major desktop, server, and mobile operating systems. ➔ has convenient development tools. ➔ any additional useful features for Devs. ➔ Puppeteer. 9
  • 10. 10 two ways to use Headless Chromium: ➔ via the DevTools remote debugging protocol <using command line> ➔ from Node.js <using noje libraries>
  • 12. 12 programmatically(Node) <using puppeteer> const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch(); const page = await browser.newPage(); // Navigates to the project README file await page.goto('https://github.com/GoogleChrome/puppeteer/blob/master/README.md'); // Generates a PDF from the page content await page.pdf({ path: 'overview.pdf' }); await browser.close(); })();
  • 13. Why Testing Is A scary thing for the developers? ➔ Test is slow and complicated. ➔ Maintaining test can require more time than actually writing your website 13
  • 14. Why Webtests Slow Launching new browser in every single test. 14 But,it makes your tests slow
  • 15. IS There Any Solution?? 15
  • 16. With Puppeteer tests are fast 16 How? Browser Context, a high level API which isolates your page from one another.
  • 18. Puppeteer ➔ Browser Automation Library ➔ Puppeteer=Node.js+Chrome ➔ Open pages navigate to website,evaluate javascript 18 ➔ Same thing as any NPM library ➔ Any test runner:jest,ava,mocha……..
  • 19. Runs Everywhere ● Desktop: Mac,Windows, Linux ● CI: Travis-CI,AppVeyor ● Cloud: GCP,AWS,Azure ● Docker Containers 19
  • 20. Use Cases of Puppeteer ➔ Stealing Scraping content from websites and web applications; ➔ Automate tasks on web pages : form submission, keyboard and mouse emulation; ➔ Web and UI testing : automated tests, browser features tests, compatibility with Chrome versions; ➔ Taking screenshots and exporting web pages as PDF; 20
  • 21. Simple Setup 21 npm install puppeteer ➔ Downloads the browser. ➔ No need to configure,link, otherwise to manage browser installation ➔ Just do npm install and ready to code
  • 22. Initialize Puppeeteer All code will go in between these parenthesis. //Screenshot //Pdf //Fake geolocation 22 const puppeteer = require('puppeteer'); puppeteer.launch().then(async browser => { });
  • 24. Visit a website const puppeteer = require('puppeteer'); puppeteer.launch().then(async browser => { const page = await browser.newPage(); await page.setViewport({ width: 1280, height: 800 }) await page.goto('https://pptr.dev/'); await browser.close(); }); 24 ➔ Launch puppeteer ➔ set a newpage ➔ Set viewport on that page ➔ Open the address on that page ➔ Close the browser
  • 25. 25
  • 26. 26 nothing happens and that’s normal ! Demo
  • 27. 27 remember it is headless Chrome so no UI. To see what’s happening you could add this launch option to disable the headless mode in line 2. {headless:false} Demo
  • 28. Visit a website (headful mode) 28 puppeteer.launch({headless: false}).then(async browser => {
  • 29. Using devtools without opening devtools 29 Most thing we do manually in browser can be done using puppeteer. We can use chrome dev-tools Without opening devtools We can use the features of devtools in puppeteer
  • 30. DevTools protocol Puppeteer control headless Chrome or Chromium over the DevTools Protocol 30 The Chrome DevTools Protocol allows for tools to instrument,inspect, debug.
  • 32. Extract code coverage using puppeteer 32 code:
  • 33. Extract code coverage using puppeteer 33 output:
  • 34. ● Navigating by URL ● Emulating Devices ● Handling Events ● Operating Mouse ● Code Coverage We can do More... 34 ● Operating Keyboard ● Taking Screenshots ● Generating PDF ● Faking Geolocation ● Accessibility
  • 35. 35 ➔ If you need to visually observe your test on the browser ➔ It does not give you exact feedback of what your customers will actually experience on your website(Page loading speeds ...etc) ➔ If you need to do lots of debugging, headless debugging can be difficult. ➔ Headless Browsers sometimes may throw errors that is not observed on real browsers When should we not use headless Browsers?
  • 36.
  • 37. GitKraken is a Git GUI client for Windows, Mac and Linux. It helps developers become more productive and efficient with Git. Developed by -
  • 38. Features of GitKraken ● Built-in merge tool ● Single-click undo-redo functions ● Keyboard shortcuts ● Support for Git Hooks, Gitflow, Submodules ● Built in SSH authentication ● Interactive Rebase ● Commit signing, etc Along with some common git actions like -
  • 39. Features of GitKraken ■ Undo ■ Redo ■ Pull ■ Push ■ Branch ■ Stash ■ Pop Stash ■ Squash ■ Drop, etc.
  • 40. Features of GitKraken Integrations with - GitHub.com Azure DevOps (VSTS) GitLab GitLab.com Bitbucket.org
  • 43. ★ Cross-platform ○ Windows ○ Linux ○ Mac ★ Intuitive UI/UX ○ Visual commit history ○ Drag & Drop ○ Fuzzy finder ○ 1-click undo-redo ★ Speed and responsiveness ★ Merge conflict editor ★ Built-in code editor ○ Diff split view ○ Syntax highlighting ○ Search within files ○ File minimap ★ Issue tracking ○ Glo board ○ GitKraken timelines ★ Offers a simple way of undoing mistakes
  • 46. 73 companies reportedly use GitKraken in their tech stacks, including Statista, Goodwings, and Tradecore 1.7 Million+ Devs Rely on GitKraken The GitKraken is constantly updated
  • 47. Cons of GitKraken - Setting up auth with Git providers can be a pain - No option to push tags with commits (have to push them separately and individually) - Pricey - Cannot access multiple repositories in the same session.
  • 48. Merge Conflicts ● Tool resolve ● Deleted files ● Drag & Drop branch to merge
  • 52. 1. If you want to see just the commits for a specific branch, use the soloing function. 2. Use GitKraken’s fuzzy finder to quickly open a repo, view file history, and more. 3. Pull any branch, even if it isn’t checked out. Just select “Pull” in the branch actions context menu (you can also push the branch the same way). 4. Resize the commit graph to optimize space for repos with many branches, even down to a single column. 5. Scale the UI to your liking with ⌘ | Ctrl + +/-, the zoom selector, or the fuzzy finder.
  • 53. 6. Forgot something in your previous commit’s message? Amend it by clicking the message in the right panel. 7. Drag-and-drop one remote onto another to quickly create a PR without leaving GitKraken. 8. Select multiple commits in the graph and easily squash them with 1-click. Use undo to reset if necessary. 9. Use the fuzzy finder (⌘ | Ctrl + P) to quickly switch repos without leaving the keyboard. 10. Keyboard shortcuts list: ( ⌘+/ ) for Mac, ( Ctrl+/ ) for Windows.