ABCDE
1
Fullstack Selenium in Java (Basic to Advanced)
90 topics x 2 hours = 180 hours
2
3
4
5
DAO MINH DAM
Skype - daominhdam
Blog - https://automationfc.com
Elearning - https://automationfc.vn
FanPage - https://facebook.com/automationfc
6
TOPICCONTENTDETAIL/ ISSUESPARTTYPE
7
1Introduction to Course/ Course Content/ Course Target/ Rule- Github/ Bitbucket/ Gitlab (Source version control)
- Create repository on Bitbucket/ Github
- Push code to Bitbucket/ Github
- Add hooks to bitbucket/ Github
- Push/ pull code from Bitbucket/ Github
- Share repository
I - Selenium WebDriver APILivestream
8
2Setup Environment on Windows/ MAC OSX/ Linux (Ubuntu)
Create Repository/ Pull Push code/ Clone Code/ Process to work on multiple machines
9
3Intergrate vs Slack channel for review code/ Bookmark course resource
10
4Software/ Automation Testing Level/ HTML Element/ Selenium Locator
11
5Xpath/ CSS locator (Part I)Implement testscript/ stable/ dynamic locator
12
6Xpath/ CSS locator (Part II)
13
7Xpath/ CSS locator (Part III)
14
8Xpath/ CSS locator (Part IV)
15
9WebDriver API - Selenium History/ Component/ Ecosystem
16
10WebDriver API - WebBrowser/ WebElement commands30-40 commands
17
11
18
12WebDriver API - Handle Textbox/ TextArea
19
13WebDriver API - Default Dropdown List
20
14WebDriver API - Custom Dropdown ListAngular/ Jquery/ React/ VueJS/ KendoUI/ NuxtJS
21
15WebDriver API - Button/ Custom Radio Button/ Custom CheckboxAngular/ Jquery/ Authentication Alert
22
16WebDriver API - Alert/ Authentication Alert
23
17WebDriver API - User Interaction (Hover/ Double/ Right click/..)Key/ Mouse
24
18WebDriver API - User Interaction (Click and Hold/ Drag drop HTML5)
25
19WebDriver API - Popup/ DialogXpath/ Iframe bất thường
26
20WebDriver API - Frame/ Iframe
27
21WebDriver API - Windows/ TabsWindow vs ID/ Title
28
22WebDriver API - Javascript Executor IE11 -> stable
Handle Selenium function doesn't support
29
23WebDriver API - Upload file/ Upload multiple file 1 time (Sendkeys)4 ways to upload file
30
24WebDriver API - Upload file/ Upload multiple file 1 time (AutoIT/ Robot)
31
25WebDriver API - Wait in Selenium (Part I)
Element status and condition:
- Visibility/ Invisibility/ Presence/ Staleness
4 waits: static/ implicit/ explicit/ fluent
32
26WebDriver API - Wait in Selenium (Part II)
Implicit wait and depend on:
- FindElement/ FindElements
33
27WebDriver API - Wait in Selenium (Part III)
- Static wait vs Explicit wait
34
28WebDriver API - Wait in Selenium (Part IV)
- Mixing Implicit and Explicit wait
- Fluent wait
35
29JUnit/ TestNG frameworkManage driver/ browser/ data/ testcase
36
30
37
31Java for Tester (Basic)
- Convention/ Data Type/ Variable
- if-else/ switch-case/ do/ while/ Array/ String
- Java convention
- OOP
- Exception
- Singleton Pattern
- Page Object Pattern
- Factory Pattern
- Abstract Factory Pattern
- Pattern Object
II - Java Core + GIT flowLivestream
38
32Java for Tester (OOP)
- Class/ Instance/ Constructor
- Access modifier: private/ default/ protected/ public
- Apply OOP in Build framework
Abstract/ Inheritance/ Polymorphism/ Encapsulation
- Handle Java Exception/ Selenium Exception
39
33
40
34Java for Tester (Data Structure)
- List/ ArrayList/ Set/ Map
41
35Java for Tester (Design Pattern)
- Design Pattern in Build Test Automation Framework
42
36- GIT workflowGIT Cheatsheat
43
37- Eclipse Template
- Eclipse Decompiler Code
- Debug in Eclipse
- IntelliJ IDEA Tips
Eclipse Hotkey/ Template/ Debug
44
38POM 01 - Create Automation Framework structure/ DRY Pattern
Test level 1 - Step by step
PRACTICE ON PROJECTs:
- BankGuru99
- LiveGuru99
- PHP Travel
- Sytner
- Wordpress
- NopCommerce
- OrangeHRM
- CRM
- Wise Clinic
III - Page Object
Pattern
4 projects = 300~400 testcases
Livestream
45
39POM 02 - Access Modifier/ Java Convention/ Common function rules
46
40POM 03 - Build Abstract Page (Wrapper Selenium API)
Test level 2 - Apply Abstract Page
47
41POM 04 - Apply Page Object Model Pattern
Test level 3 - Apply Page Object (Part I)
48
42POM 05 - Apply Page Object Model Pattern
Test level 3 - Apply Page Object (Part II)
49
43POM 06 - Why do we need the Automation Test Framework (Record/ Playback vs Framework)
Background/ Case Study/ Tips
50
44
51
45POM 07 - Apply Selenium Page Factory/ Page Generator Manager (Init Page Object)
Test level 4 - Apply Page Factory Manager
52
46
53
47POM 08 - Handle Multi-Browser/ Multi-OS (MAC/ Linux/ Windows)
Test level 5 - Apply Multi-browser
54
48POM 09 - Browser Driver Factory (Factory Pattern)
55
49POM 10 - Run testscript in parallel testing (ThreadLocal)
56
50POM 11 - WebDriver Life Cycle (Manager driver instance)
Test level 6 - Switch between page object and action chained
57
51POM 12 - Dynamic locator and Rest Parameter
Test level 7 - Apply dynamic locator for multiple pages
58
52POM 13 - Handle DataTable/ DataGrid/ Upload Multiple (Apply dynamic locator/ ArrayList/ List/ Java 8)
59
53
60
54POM 14 - Element Undisplayed and Override global timeout
Test level 8 - Apply check element undisplayed
61
55POM 15 - Different Assert vs Verify/ Apply Log/ Report HTML (ReportNG/ Extent Report/ Allure Report)
Test level 9 - Apply Verify/ Log/ Report HTML/ Take screenshot to Report
62
56
63
57
64
58POM 16 - Flaky Test and Solution (Background/ Discuss with Client/ Manager)
65
59POM 17 - Share global class state/ Force close browser/ BrowserDriver Version Manager
Test level 10 - Apply share state of class
66
60
67
61POM 18 - Dependencies between the test cases/ Process to convert manual testcase to automation
Test level 11 - Convert manual to automation testcase
68
62
69
63POM 19 - Faker Data Libraries/ Sort Data (ASC/ DESC)/ Paging
70
64POM 20 - Manage data test
Test level 12 - Manage data test (Data Driven Testing)
71
65POM 21 - Upgrade Environment to latest (Selenium/ Browser/ Driver/..)
- Manage capability for Chrome/ Firefox/ IE browser
- Run headless with Firefox/ Chrome
Test level 13 - Run script on latest environment
72
66POM 22 - Handle run script on Internet Explorer (IE)/ Edge Legacy/ Edge Chromium browser
- Fix common issues
- Handle wait/ synchronize for IE browser
Test level 14 - Run script on IE browser
73
67POM 23 - Apply Dynamic Element Component (Pattern Object)
Test level 15 - Apply Page Element
74
68POM 24 - Run on multiple environment/ Apply Selenium GRID to distribute testscript
- Server: Dev/ Testing/ Staging/ Pre-production/ Production (Live)
- Distribute: OSx (MAC/ Linux/ Windows)/ Browser (Chrome/ Firefox/ Safari/ Edge/ IE)/ Version
- Remote local/ Remote Cloud: BrowserStack/ Saucelab/ Cross Browser Testing/ Device Farm
75
69
76
70POM 25 - Live Coding (Analysis/ Estimate/ Implement/ Run/ Refactor/ Release)
77
71
78
72
79
73POM 27 - Convert Java project to Maven project/ Eclipse to IntelliJ IDE
- Apply Maven/ Run test with BAT file/ TestNG xml file
80
74POM 28 - Apply Gradle in automation framework
81
75POM 29 - Keyword Driven Testing Framework (Advanced/ Disadvantaged)
82
76POM 30 - Add screenshot to Report HTML/ Hightlight element/ Retry test failed
- ReportNG
- Extent Report
- Allure Report
83
77POM 31 - Database Testing in Framework
- MySQL
- SQL Server
- Oracle/ MongoDB/ Postgre
84
78Review and fix code of POM project (All members)
- Structure
- Convention
- Maintainable
- Readable
- Clean
- Extendable
- Perfomance
- Stable
- Multiple Browser/ Environment
85
79Cucumber framework
- BDD/ Agile/ Waterfall/ Scrum framework/ Scrum team
Fix Issues:
+ No compiler is provided in this environment.
Perhaps you are running on a JRE rather than a JDK?
- Update JRE > JDK (Java > Installed JREs)
- Update Java Build Path
+ package org.testng not found..
- Add Cucumber TestNG dependencies
- Change Dependencies > TestNG > Properties > Scope > compile
+ cucumber report > dependencies in pom.xml
- mvn test verify
+ Using platform encoding (UTF-8 actually) to copy filtered resources
- maven-compiler-plugin (Add <encoding>UTF-8</encoding>)
+ Multi browser
- mvn -DBROWSER=chrome test verify
+ NewCustomerPageSteps doesn't have an empty constructor. If you need DI, put cucumber-picocontainer on the classpath
- Change PicoContainer (1.2.5)
- Analyze/ Estimate/ Design/ Implement/ Run test script
IV - Cucumber frameworkVideo
86
80Cucumber framework
- Create Maven project/ Manage dependencies
- Write Feature sample to make sure environment stable
- Feature (Gherkin)/ Step Definition/ Cucumber Test Runner
87
81Cucumber framework
- Before/ After (Open multibrowser/ Close browser)
- Hooks (Manage driver)
- Share State of Class (PicoContainer)
88
82Cucumber framework
- Apply Datatable
- Scenario Outlines
- Multi browser (Run Maven command line)
89
83Cucumber framework
- Apply Page Object Pattern
- Apply Cucumber Report HTML
90
84Cucumber framework
- Cucumber Regex (Matching multi-steps)
- Parse locator (xpath) from Feature file to (Steps/ Actions/ UIs) page
- Live coding
91
85Jenkins CI
- Cloud/ VPS (Google/ Azure/ AWS)
- CI/ CD/ DevOps
- Jenkins setup/ plugin/ setting/ Tomcat (server)
- Build job/ authentication (Github/ Bitbucket/ Gitlab)
- Jenkins Stage/ Pipeline/ Trigger (Scheduler)
- Environment Variable/ Roles/ Notification
- Blue Ocean Pipeline
- Notification to Slack/ Slack trigger build job/ Catlight
- CI/ CDV - Jenkin CIVideo
92
86
93
87
94
88
95
89Final
- Career Path for Automation Tester
- Automation Testing Process
- Resources (Course/ Blog/ Books/..)
- Build Profile/ CV
- Get automatically Job
- Interview/ Salary/ Tip/ Trick
- Exam: Play test exam on the elearning system (100 questions about automation testing)
- Process/ Resource/ Interview/ TestVI - Interview/ TestLivestream
96
90