Test Automation Framework Selenium Java with TestNG building by Anh Tester
🔆 SOME FEATURES IN FRAMEWORK
Install JDK (recommend JDK >= 11)
Install Chrome Browser, Edge Browser, Firefox Browser
Run well on the Windows platform
Setup Allure ENV: https://mvnrepository.com/artifact/io.qameta.allure/allure-java-commons or https://anhtester.com/blog/selenium-java/selenium-java-tai-nguyen-cai-dat-moi-truong) Download jar and setting Variable Environment as Java JDK
Use IntelliJ IDEA is the best choice (easy change the JDK version)
1. Run parallel the test case
Run test case in suite XML (src/test/resources/suites/)
Run test case from Maven pom.xml file (mvn clean test)
2. Read Config from Properties file
3. Extent Report
4. Allure Report
allure serve target/allure-results
allure generate --single-file target/allure-results --clean
5. Send Mail after the run test
6. Write Log to file
7. Record video and Screenshot
Setup in config.properties file (src/test/resources/config/config.properties)
screenshot_passed_steps=yes or no
screenshot_failed_steps=yes or no
screenshot_skipped_steps=yes or no
screenshot_all_steps=yes or no
8. Read data test from Excel file
9. Base function in the package
10. Read data test from JSON file
11. Main Keyword: WebUI
12. Call function to using sample
+ ClientTest
+ SignInTest
+ TestHandle
+ TestSimpleCode
13. Send message/report to Telegram Bot
===How to get Token and start Bot===
===How to get ChatID===
"chat": {
"id": 123456789,
"first_name": "Anh Tester",
"username": "anhtester",
"type": "private"
}
14. Use Selenium Grid
(tải bản Latest stable version)
selenium-server-4.22.0.jar (updated 24/06/2024)
Follow with link: https://www.selenium.dev/documentation/webdriver/getting_started/install_drivers/#2-the-path-environment-variable
🔆 Đặt file selenium-server-4.22.0.jar vào thư mục nào đó và mở CMD tại thư mục đó lên
✅ Mở 1 Hub với 1 Node mặc định (port 4444)
java -jar selenium-server-4.22.0.jar standalone
✅ Mở 1 Hub với 3 Node: (chạy 4 lệnh mở 4 CMD nhé)
java -jar selenium-server-4.22.0.jar hub
java -jar selenium-server-4.22.0.jar node --port 5556
java -jar selenium-server-4.22.0.jar node --port 6667
java -jar selenium-server-4.22.0.jar node --port 7778
📝 NOTE: Thực thi nhiều lệnh thì mở nhiều CMD
TARGET=remote
REMOTE_URL=192.168.1.13 (url Grid của bạn)
REMOTE_PORT=4444 (port của Grid)
15. Use DataFaker and JavaFaker to generate data
Document DataFaker: https://www.datafaker.net/documentation/getting-started/ or of Anh Tester blog: https://anhtester.com/blog/selenium-java/tao-du-lieu-gia-voi-datafaker
📦AutomationFrameworkSelenium
┣ 📂.github
┃ ┗ 📂workflows
┃ ┃ ┗ 📜maven.yml
┣ 📂src
┃ ┣ 📂main
┃ ┃ ┣ 📂java
┃ ┃ ┃ ┗ 📂anhtester
┃ ┃ ┃ ┃ ┗ 📂com
┃ ┃ ┃ ┃ ┃ ┣ 📂annotations
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜FrameworkAnnotation.java
┃ ┃ ┃ ┃ ┃ ┣ 📂config
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ConfigFactory.java
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Configuration.java
┃ ┃ ┃ ┃ ┃ ┣ 📂constants
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜FrameworkConstants.java
┃ ┃ ┃ ┃ ┃ ┣ 📂driver
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜BrowserFactory.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜DriverManager.java
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜TargetFactory.java
┃ ┃ ┃ ┃ ┃ ┣ 📂enums
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AuthorType.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Browser.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CategoryType.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FailureHandling.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Platform.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Project.java
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Target.java
┃ ┃ ┃ ┃ ┃ ┣ 📂exceptions
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FrameworkException.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜HeadlessNotSupportedException.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜InvalidPathForExcelException.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜InvalidPathForExtentReportFileException.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜InvalidPathForFilesException.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜InvalidRemoteWebDriverURLException.java
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜TargetNotValidException.java
┃ ┃ ┃ ┃ ┃ ┣ 📂helpers
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CaptureHelpers.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜DatabaseHelpers.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ExcelHelpers.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FileHelpers.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Helpers.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PropertiesHelpers.java
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ScreenRecoderHelpers.java
┃ ┃ ┃ ┃ ┃ ┣ 📂keywords
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜WebUI.java
┃ ┃ ┃ ┃ ┃ ┣ 📂mail
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜EmailAttachmentsSender.java
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜EmailConfig.java
┃ ┃ ┃ ┃ ┃ ┣ 📂report
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AllureManager.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ExtentReportManager.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ExtentTestManager.java
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜TelegramManager.java
┃ ┃ ┃ ┃ ┃ ┗ 📂utils
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜BrowserInfoUtils.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜DataFakerUtils.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜DataGenerateUtils.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜DateUtils.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜DecodeUtils.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜EmailSendUtils.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜IconUtils.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜JsonUtils.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜LanguageUtils.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜LocalStorageUtils.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜LogUtils.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ObjectUtils.java
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ReportUtils.java
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ZipUtils.java
┃ ┃ ┗ 📂resources
┃ ┃ ┃ ┣ 📂META-INF
┃ ┃ ┃ ┃ ┗ 📂services
┃ ┃ ┃ ┃ ┃ ┗ 📜io.qameta.allure.listener.TestLifecycleListener
┃ ┃ ┃ ┗ 📜log4j2.properties
┃ ┗ 📂test
┃ ┃ ┣ 📂java
┃ ┃ ┃ ┗ 📂anhtester
┃ ┃ ┃ ┃ ┗ 📂com
┃ ┃ ┃ ┃ ┃ ┣ 📂common
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜BaseTest.java
┃ ┃ ┃ ┃ ┃ ┣ 📂dataprovider
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜DataProviderAddProduct.java
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜DataProviderManager.java
┃ ┃ ┃ ┃ ┃ ┣ 📂listeners
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AllureListener.java
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜TestListener.java
┃ ┃ ┃ ┃ ┃ ┗ 📂projects
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂cms
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂admin
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂model
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂pages
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂brands
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜BrandPage.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂category
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜CategoryPage.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂logins
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜LoginPageCMS.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂products
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜AddProductPage.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂testcases
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AddProductTest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CategoryTest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜LoginTest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜OrderTest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ProductInfoTest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ProfileTest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂users
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂model
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂pages
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dashboard
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜DashboardPage.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂logins
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂order
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜OrderPage.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂products
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ProductInfoPageCMS.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂profiles
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ProfilePage.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜CommonPageCMS.java
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂crm
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂models
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ClientModel.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜SignInModel.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂pages
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂Clients
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ClientPageCRM.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂Dashboard
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜DashboardPageCRM.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂Projects
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ProjectPageCRM.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂SignIn
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜SignInPageCRM.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂Tasks
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜TaskPage.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜CommonPageCRM.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂testcases
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ClientTest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜SignInTest.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜TestHandle.java
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜TestSimpleCode.java
┃ ┃ ┗ 📂resources
┃ ┃ ┃ ┣ 📂config
┃ ┃ ┃ ┃ ┣ 📜allure.properties
┃ ┃ ┃ ┃ ┣ 📜config.json
┃ ┃ ┃ ┃ ┣ 📜config.properties
┃ ┃ ┃ ┃ ┗ 📜data.properties
┃ ┃ ┃ ┣ 📂objects
┃ ┃ ┃ ┃ ┗ 📜crm_locators.properties
┃ ┃ ┃ ┣ 📂suites
┃ ┃ ┃ ┃ ┣ 📜Clients-parallel.xml
┃ ┃ ┃ ┃ ┣ 📜Clients-simple.xml
┃ ┃ ┃ ┃ ┣ 📜Clients-testAddClient.xml
┃ ┃ ┃ ┃ ┣ 📜Clients-testSearch.xml
┃ ┃ ┃ ┃ ┣ 📜SignIn-parallel-methods.xml
┃ ┃ ┃ ┃ ┣ 📜SignIn-simple.xml
┃ ┃ ┃ ┃ ┗ 📜SuiteAll.xml
┃ ┃ ┃ ┣ 📂testdataCMS
┃ ┃ ┃ ┃ ┣ 📜Book1.xlsx
┃ ┃ ┃ ┃ ┣ 📜ChocoPie.jpg
┃ ┃ ┃ ┃ ┣ 📜CMS_DATA.xlsx
┃ ┃ ┃ ┃ ┣ 📜CocaCola.png
┃ ┃ ┃ ┃ ┣ 📜Cosy.png
┃ ┃ ┃ ┃ ┣ 📜GetProductInfo.xlsx
┃ ┃ ┃ ┃ ┣ 📜Login.xlsx
┃ ┃ ┃ ┃ ┣ 📜Nabati.jpg
┃ ┃ ┃ ┃ ┗ 📜quatet.jpg
┃ ┃ ┃ ┣ 📂testdataCRM
┃ ┃ ┃ ┃ ┣ 📜ClientsDataExcel.xlsx
┃ ┃ ┃ ┃ ┣ 📜DOCX_File_01.docx
┃ ┃ ┃ ┃ ┣ 📜LoginCSV.csv
┃ ┃ ┃ ┃ ┗ 📜TxtFileData.txt
┃ ┃ ┃ ┗ 📜pdf-config.json
┣ 📂target
┃ ┣ 📂classes
┃ ┃ ┣ 📂anhtester
┃ ┃ ┃ ┗ 📂com
┃ ┃ ┃ ┃ ┣ 📂annotations
┃ ┃ ┃ ┃ ┃ ┗ 📜FrameworkAnnotation.class
┃ ┃ ┃ ┃ ┣ 📂config
┃ ┃ ┃ ┃ ┃ ┣ 📜ConfigFactory.class
┃ ┃ ┃ ┃ ┃ ┗ 📜Configuration.class
┃ ┃ ┃ ┃ ┣ 📂constants
┃ ┃ ┃ ┃ ┃ ┗ 📜FrameworkConstants.class
┃ ┃ ┃ ┃ ┣ 📂driver
┃ ┃ ┃ ┃ ┃ ┣ 📜BrowserFactory$1.class
┃ ┃ ┃ ┃ ┃ ┣ 📜BrowserFactory$2.class
┃ ┃ ┃ ┃ ┃ ┣ 📜BrowserFactory$3.class
┃ ┃ ┃ ┃ ┃ ┣ 📜BrowserFactory$4.class
┃ ┃ ┃ ┃ ┃ ┣ 📜BrowserFactory.class
┃ ┃ ┃ ┃ ┃ ┣ 📜DriverManager.class
┃ ┃ ┃ ┃ ┃ ┗ 📜TargetFactory.class
┃ ┃ ┃ ┃ ┣ 📂enums
┃ ┃ ┃ ┃ ┃ ┣ 📜AuthorType.class
┃ ┃ ┃ ┃ ┃ ┣ 📜Browser.class
┃ ┃ ┃ ┃ ┃ ┣ 📜CategoryType.class
┃ ┃ ┃ ┃ ┃ ┣ 📜FailureHandling.class
┃ ┃ ┃ ┃ ┃ ┣ 📜Platform.class
┃ ┃ ┃ ┃ ┃ ┣ 📜Project.class
┃ ┃ ┃ ┃ ┃ ┗ 📜Target.class
┃ ┃ ┃ ┃ ┣ 📂exceptions
┃ ┃ ┃ ┃ ┃ ┣ 📜FrameworkException.class
┃ ┃ ┃ ┃ ┃ ┣ 📜HeadlessNotSupportedException.class
┃ ┃ ┃ ┃ ┃ ┣ 📜InvalidPathForExcelException.class
┃ ┃ ┃ ┃ ┃ ┣ 📜InvalidPathForExtentReportFileException.class
┃ ┃ ┃ ┃ ┃ ┣ 📜InvalidPathForFilesException.class
┃ ┃ ┃ ┃ ┃ ┣ 📜InvalidRemoteWebDriverURLException.class
┃ ┃ ┃ ┃ ┃ ┗ 📜TargetNotValidException.class
┃ ┃ ┃ ┃ ┣ 📂helpers
┃ ┃ ┃ ┃ ┃ ┣ 📜CaptureHelpers.class
┃ ┃ ┃ ┃ ┃ ┣ 📜DatabaseHelpers.class
┃ ┃ ┃ ┃ ┃ ┣ 📜ExcelHelpers.class
┃ ┃ ┃ ┃ ┃ ┣ 📜FileHelpers.class
┃ ┃ ┃ ┃ ┃ ┣ 📜Helpers.class
┃ ┃ ┃ ┃ ┃ ┣ 📜PropertiesHelpers.class
┃ ┃ ┃ ┃ ┃ ┗ 📜ScreenRecoderHelpers.class
┃ ┃ ┃ ┃ ┣ 📂keywords
┃ ┃ ┃ ┃ ┃ ┗ 📜WebUI.class
┃ ┃ ┃ ┃ ┣ 📂mail
┃ ┃ ┃ ┃ ┃ ┣ 📜EmailAttachmentsSender$1.class
┃ ┃ ┃ ┃ ┃ ┣ 📜EmailAttachmentsSender.class
┃ ┃ ┃ ┃ ┃ ┗ 📜EmailConfig.class
┃ ┃ ┃ ┃ ┣ 📂report
┃ ┃ ┃ ┃ ┃ ┣ 📜AllureManager.class
┃ ┃ ┃ ┃ ┃ ┣ 📜ExtentReportManager.class
┃ ┃ ┃ ┃ ┃ ┣ 📜ExtentTestManager.class
┃ ┃ ┃ ┃ ┃ ┗ 📜TelegramManager.class
┃ ┃ ┃ ┃ ┗ 📂utils
┃ ┃ ┃ ┃ ┃ ┣ 📜BrowserInfoUtils.class
┃ ┃ ┃ ┃ ┃ ┣ 📜DataFakerUtils.class
┃ ┃ ┃ ┃ ┃ ┣ 📜DataGenerateUtils.class
┃ ┃ ┃ ┃ ┃ ┣ 📜DateUtils.class
┃ ┃ ┃ ┃ ┃ ┣ 📜DecodeUtils.class
┃ ┃ ┃ ┃ ┃ ┣ 📜EmailSendUtils.class
┃ ┃ ┃ ┃ ┃ ┣ 📜IconUtils.class
┃ ┃ ┃ ┃ ┃ ┣ 📜JsonUtils$1.class
┃ ┃ ┃ ┃ ┃ ┣ 📜JsonUtils.class
┃ ┃ ┃ ┃ ┃ ┣ 📜LanguageUtils.class
┃ ┃ ┃ ┃ ┃ ┣ 📜LocalStorageUtils.class
┃ ┃ ┃ ┃ ┃ ┣ 📜LogUtils.class
┃ ┃ ┃ ┃ ┃ ┣ 📜ObjectUtils.class
┃ ┃ ┃ ┃ ┃ ┣ 📜ReportUtils.class
┃ ┃ ┃ ┃ ┃ ┗ 📜ZipUtils.class
┃ ┃ ┣ 📂META-INF
┃ ┃ ┃ ┗ 📂services
┃ ┃ ┃ ┃ ┗ 📜io.qameta.allure.listener.TestLifecycleListener
┃ ┃ ┗ 📜log4j2.properties
┃ ┣ 📂generated-sources
┃ ┃ ┗ 📂annotations
┃ ┣ 📂generated-test-sources
┃ ┃ ┗ 📂test-annotations
┃ ┗ 📂test-classes
┃ ┃ ┣ 📂anhtester
┃ ┃ ┃ ┗ 📂com
┃ ┃ ┃ ┃ ┣ 📂common
┃ ┃ ┃ ┃ ┃ ┗ 📜BaseTest.class
┃ ┃ ┃ ┃ ┣ 📂dataprovider
┃ ┃ ┃ ┃ ┃ ┣ 📜DataProviderAddProduct.class
┃ ┃ ┃ ┃ ┃ ┗ 📜DataProviderManager.class
┃ ┃ ┃ ┃ ┣ 📂listeners
┃ ┃ ┃ ┃ ┃ ┣ 📜AllureListener.class
┃ ┃ ┃ ┃ ┃ ┗ 📜TestListener.class
┃ ┃ ┃ ┃ ┗ 📂projects
┃ ┃ ┃ ┃ ┃ ┣ 📂cms
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂admin
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂model
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂pages
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂brands
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜BrandPage.class
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂category
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜CategoryPage.class
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂logins
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜LoginPageCMS.class
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂products
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜AddProductPage.class
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂testcases
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AddProductTest.class
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CategoryTest.class
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜LoginTest.class
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜OrderTest.class
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ProductInfoTest.class
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ProfileTest.class
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂users
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂model
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂pages
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dashboard
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜DashboardPage.class
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂logins
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂order
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜OrderPage.class
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂products
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ProductInfoPageCMS.class
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂profiles
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ProfilePage.class
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜CommonPageCMS.class
┃ ┃ ┃ ┃ ┃ ┗ 📂crm
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂models
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ClientModel.class
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜SignInModel.class
┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂pages
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂Clients
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ClientPageCRM.class
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂Dashboard
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜DashboardPageCRM.class
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂Projects
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ProjectPageCRM.class
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂SignIn
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜SignInPageCRM.class
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂Tasks
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜TaskPage.class
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜CommonPageCRM.class
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂testcases
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ClientTest.class
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜SignInTest.class
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜TestHandle.class
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜TestSimpleCode.class
┃ ┃ ┣ 📂config
┃ ┃ ┃ ┣ 📜allure.properties
┃ ┃ ┃ ┣ 📜config.json
┃ ┃ ┃ ┣ 📜config.properties
┃ ┃ ┃ ┗ 📜data.properties
┃ ┃ ┣ 📂objects
┃ ┃ ┃ ┗ 📜crm_locators.properties
┃ ┃ ┣ 📂suites
┃ ┃ ┃ ┣ 📜Clients-parallel.xml
┃ ┃ ┃ ┣ 📜Clients-simple.xml
┃ ┃ ┃ ┣ 📜Clients-testAddClient.xml
┃ ┃ ┃ ┣ 📜Clients-testSearch.xml
┃ ┃ ┃ ┣ 📜SignIn-parallel-methods.xml
┃ ┃ ┃ ┣ 📜SignIn-simple.xml
┃ ┃ ┃ ┗ 📜SuiteAll.xml
┃ ┃ ┣ 📂testdataCMS
┃ ┃ ┃ ┣ 📜Book1.xlsx
┃ ┃ ┃ ┣ 📜ChocoPie.jpg
┃ ┃ ┃ ┣ 📜CMS_DATA.xlsx
┃ ┃ ┃ ┣ 📜CocaCola.png
┃ ┃ ┃ ┣ 📜Cosy.png
┃ ┃ ┃ ┣ 📜GetProductInfo.xlsx
┃ ┃ ┃ ┣ 📜Login.xlsx
┃ ┃ ┃ ┣ 📜Nabati.jpg
┃ ┃ ┃ ┗ 📜quatet.jpg
┃ ┃ ┣ 📂testdataCRM
┃ ┃ ┃ ┣ 📜ClientsDataExcel.xlsx
┃ ┃ ┃ ┣ 📜DOCX_File_01.docx
┃ ┃ ┃ ┣ 📜LoginCSV.csv
┃ ┃ ┃ ┗ 📜TxtFileData.txt
┃ ┃ ┗ 📜pdf-config.json
┣ 📜.gitignore
┣ 📜pom.xml
┗ 📜README.md
Anh Tester Blog: https://anhtester.com/