{"id":25506347,"url":"https://github.com/digisoch/cucumberbddframework-simple","last_synced_at":"2025-11-15T18:30:13.460Z","repository":{"id":271611651,"uuid":"913994239","full_name":"DigiSoch/CucumberBDDFramework-Simple","owner":"DigiSoch","description":"This is a Simple BDD Framework using cucumber without using any design pattern","archived":false,"fork":false,"pushed_at":"2025-01-24T06:40:31.000Z","size":334,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-17T20:39:38.167Z","etag":null,"topics":["automated-testing","cucucmber","java-selenium-testng","selenium-webdriver"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DigiSoch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-08T18:38:01.000Z","updated_at":"2025-01-24T06:40:34.000Z","dependencies_parsed_at":"2025-01-29T16:01:02.783Z","dependency_job_id":null,"html_url":"https://github.com/DigiSoch/CucumberBDDFramework-Simple","commit_stats":null,"previous_names":["arvind-git-code/cucumberbddframework-simple","digisoch/cucumberbddframework-simple"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DigiSoch%2FCucumberBDDFramework-Simple","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DigiSoch%2FCucumberBDDFramework-Simple/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DigiSoch%2FCucumberBDDFramework-Simple/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DigiSoch%2FCucumberBDDFramework-Simple/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DigiSoch","download_url":"https://codeload.github.com/DigiSoch/CucumberBDDFramework-Simple/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239610037,"owners_count":19668081,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automated-testing","cucucmber","java-selenium-testng","selenium-webdriver"],"created_at":"2025-02-19T06:30:21.195Z","updated_at":"2025-11-15T18:30:13.404Z","avatar_url":"https://github.com/DigiSoch.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\n\nThis is a Simple BDD Framework using cucumber without using any design pattern \n\n## Steps \n\n\u003e 1. create maven project in eclipse\n\n- File\u003e New \u003e Maven Project- Check the text box Create a simple project(skipping the archetype);\n- Group id - user website name i.e. com.arvind1\n- artifact id - project name i.e. CucumberBDDFramework-Simple\n- version - 1.0  the project version as you wish\n- Name - project name i.e. CucumberBDDFramework-Simple\n\n\n2. add 4 main dependencies in pom.xml selenium-java, cucumber-java, cucumber-testng, testng\n\n   ``` \u003cdependency\u003e\n    \t\u003cgroupId\u003eorg.seleniumhq.selenium\u003c/groupId\u003e\n    \t\u003cartifactId\u003eselenium-java\u003c/artifactId\u003e\n    \t\u003cversion\u003e4.25.0\u003c/version\u003e\n\t\u003c/dependency\u003e\n\n\t\u003cdependency\u003e\n    \u003cgroupId\u003eio.cucumber\u003c/groupId\u003e\n    \u003cartifactId\u003ecucumber-java\u003c/artifactId\u003e\n    \u003cversion\u003e7.20.1\u003c/version\u003e\n\t\u003c/dependency\u003e\n\n\n\t\u003cdependency\u003e\n    \u003cgroupId\u003eio.cucumber\u003c/groupId\u003e\n    \u003cartifactId\u003ecucumber-testng\u003c/artifactId\u003e\n    \u003cversion\u003e7.20.1\u003c/version\u003e\n\t\u003c/dependency\u003e\n\n\t\u003cdependency\u003e\n    \u003cgroupId\u003eorg.testng\u003c/groupId\u003e\n   \t\u003cartifactId\u003etestng\u003c/artifactId\u003e\n    \t\u003cversion\u003e7.10.2\u003c/version\u003e\n    \t\u003cscope\u003etest\u003c/scope\u003e\n\t\u003c/dependency\u003e\n\n\t\u003c!-- get the webdriver by webdriver manager optional but recomented--\u003e\n\n\t\u003cdependency\u003e\n   \t\t\u003cgroupId\u003eio.github.bonigarcia\u003c/groupId\u003e\n       \t \t\u003cartifactId\u003ewebdrivermanager\u003c/artifactId\u003e\n        \t\u003cversion\u003e5.5.3\u003c/version\u003e\n   \t\u003c/dependency\u003e\n        \n        \n        \n        \n\t\u003c!-- for reporting purpose optional--\u003e\n    \t\u003cdependency\u003e\n        \t\u003cgroupId\u003ecom.aventstack\u003c/groupId\u003e\n        \t\u003cartifactId\u003eextentreports\u003c/artifactId\u003e\n        \t\u003cversion\u003e5.1.2\u003c/version\u003e\n    \t\u003c/dependency\u003e\n    \n   \t\u003cdependency\u003e\n    \t\u003cgroupId\u003etech.grasshopper\u003c/groupId\u003e\n    \t\u003cartifactId\u003eextentreports-cucumber7-adapter\u003c/artifactId\u003e\n    \t\u003cversion\u003e1.10.1\u003c/version\u003e\n\t\u003c/dependency\u003e ```\n\n   \n\u003e if the default jar version is not compatible with the version of selenium then change the version of selenium jar in pom.xml\n\n\n\n```  \u003cproperties\u003e\n    \u003cproject.build.sourceEncoding\u003eUTF-8\u003c/project.build.sourceEncoding\u003e\n    \u003cmaven.compiler.release\u003e17\u003c/maven.compiler.release\u003e\n  \u003c/properties\u003e\n```\n3. install cucumber and testng plugin from eclipse market place if not already installed\n\n4. create necessary folders  and packages\n    I. src/test/resource/ create a folder features- to store feature files for every feature in gerkin language\n        i.e. \n        Feature: test the login page\n\n        Scenario: checking for sucessful login\n            Given the user is on home page\n            When user enter username and password\n            And click on submit button\n            Then user is able to navigate home page\n    if you want to pass multiple values the use senerio outline instead of senerio\n    i.e. \n        Feature: test the login page\n\n        Scenario Outline: checking for sucessful login\n            Given the user is on home page\n            When user enter username and password\n            And click on submit button\n            Then user is able to navigate home page\n            Examples:\n                | username | password |\n                | abc      | 123      |\n                | xyz      | 456      |\n\n    II. src/test/java/ create a package stepDefinition - to create step definition (glue) file for every feature\n        Note - for easier way you can get step definition method implementation by right clicking on feature file and then Run As -cucumber feature\n        or you can define method yourself as below\n\n\n```\n    package stepDefinition;\n\nimport org.openqa.selenium.By;\nimport org.openqa.selenium.WebDriver;\nimport org.openqa.selenium.WebElement;\nimport org.openqa.selenium.chrome.ChromeDriver;\nimport org.openqa.selenium.firefox.FirefoxDriver;\nimport org.testng.Assert;\n\n\nimport io.cucumber.java.en.And;\nimport io.cucumber.java.en.Given;\nimport io.cucumber.java.en.Then;\nimport io.cucumber.java.en.When;\npublic class LoginPage {\n\t\n\tWebDriver driver;\n\n\n\t@Given(\"the user is on home page\")\n\tpublic void the_user_is_on_home_page() {\n//\tSystem.setProperty(\"webdriver.driver.chromedriver\", \"src/main/resources/chromedriver.exe\") ;\n//\t\tAs of selenium 4.10.0 the driver manager is fully integrated, and will silently download drivers as needed. (Eg. On Mac/Linux, drivers are automatically downloaded to the ~/.cache/selenium\n\t\t\n\t\t\n\t    driver =new ChromeDriver();\n        driver=new FirefoxDriver();\n\t    driver.get(\"https://www.saucedemo.com/v1/\");\n\t\n\t \n\t    \n\t}\n\n\t@When(\"user enter username and password\")\n\tpublic void user_enter_username_and_password() {\n\t\tdriver.findElement(By.id(\"user-name\")).sendKeys(\"standard_user\");\n\t    driver.findElement(By.id(\"password\")).sendKeys(\"secret_sauce\");\n\n\t}\n\n\t@And(\"click on submit button\")\n\tpublic void click_on_submit_button() {\n        driver.findElement(By.id(\"login-button\")).click();\n\t    \n\t}\n\n\t@Then(\"user is able to navigate home page\")\n\tpublic void user_is_able_to_navigate_home_page()\n\t{\n\t\tWebElement homeMenu=driver.findElement(By.xpath(\"//button[text()='Open Menu']\"));\n\t\thomeMenu.isDisplayed();\n\t}\n\t\n\t@And(\"close the browser\")\n\tpublic void close_the_browser() {\n\t\tdriver.close();\n\t}\n\n}  \n    \n```\n\n\t\n\u003e III. create a package in src/test/java/testrunner - to store runner file \n\n```  package testRunners;\n\nimport io.cucumber.testng.AbstractTestNGCucumberTests;\nimport io.cucumber.testng.CucumberOptions;\n\n@CucumberOptions(\n        tags = \"@login\",\n        features = \"src/test/resources/features/\", // Path to your feature files\n        glue = {\"stepDefinition\"},\t\t\t\t\t\n        plugin= {\"pretty\",\"html:target/htmlReport.html\"})  // Package containing your step definitions\npublic class TestRunner extends AbstractTestNGCucumberTests{\n\n}\n```\n\n### How to run \n1. right click in runner page and select Run as - Test NG\n2. right click on the project folder and choose - Run As -\u003e Maven Test\n3. open terminal at project path -- mvn test\n\n\u003e Common Mistakes\n1. after static WebDriver driver;\nagain define WebDriver driver =new ChromeDriver(); instead of driver =new new ChromeDriver(); in a method \n\n## Connect with me\n\n- **Name:** Arvind Kumar\n- **LinkedIn:** [LinkedIn Profile URL](https://www.linkedin.com/in/arvind-kumar-a8b591221/)\n- **Email:** [Email](mailto:arvindkumarlbsmca@gmail.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigisoch%2Fcucumberbddframework-simple","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdigisoch%2Fcucumberbddframework-simple","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigisoch%2Fcucumberbddframework-simple/lists"}