DBDelve
Dive deep into your data. A fast, native, multi-engine database client written in Rust. Free and open source, no telemetry.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证PLATFORM FOR AI-DRIVEN QUALITY Software Automation Testing using Java, Selenium & BDD Cucumber
翻译准备中
正在加载完整 README。
查看完整 README ↗
🙋 What this is
The cloud edition of the QA Brains practice-site suite. The same 15 Cucumber scenarios — authentication, the e-commerce cart and menu navigation — run either on a local headless Chrome or on Sauce Labs virtual machines, switched with one flag. On Sauce Labs every scenario becomes a named job with video, screenshots and logs, marked passed or failed in the dashboard.
Write the test once; choose the browser farm at run time.
📍 Quick facts
| 🧪 Scenarios | 15 in 7 feature files |
| ✅ CI (local) | 15 / 15 · headless Chrome |
| ☁️ CI (cloud) | Chrome + Edge on Windows 11, Firefox on macOS |
| 🔐 Credentials | Environment variables / GitHub secrets only |
| 📸 On failure | Screenshot + page HTML; Sauce video |
| Target | How | Result |
|---|---|---|
| 💻 Local headless Chrome | mvn test -Dheadless=true | |
| ☁️ Sauce Labs matrix | mvn test -Dsauce=true |
The Sauce Labs matrix is wired into the workflow and starts running for real as soon as the SAUCE_USERNAME and SAUCE_ACCESS_KEY repository secrets exist; until then those jobs only print a notice. Earlier cloud runs (29 Apr 2026, QAbrains Build, Chrome 147) are in the Sauce Labs dashboard exports in this repository, e.g. all results and passed.
flowchart LR
F["Cucumber scenarios"] --> H{"Hooks<br/>-Dsauce=true<br/>+ SAUCE_* env?"}
H -->|no| L["Local Chrome<br/>(headless in CI)"]
H -->|yes| D["DriverFactory<br/>RemoteWebDriver"]
D --> S["Sauce Labs<br/>us-west-1 grid"]
S --> B1["Chrome · Windows 11"]
S --> B2["Edge · Windows 11"]
S --> B3["Firefox · macOS 13"]
S --> V["Dashboard: video,<br/>logs, passed / failed"]
1. Credentials — environment variables only, never in code:
export SAUCE_USERNAME="your-username"
export SAUCE_ACCESS_KEY="your-access-key"
2. Run:
mvn clean test -Dsauce=true # Chrome latest, Windows 11
mvn clean test -Dsauce=true -Dsauce.browser=firefox -Dsauce.platform="macOS 13"
mvn clean test -Dsauce=true -Dsauce.build="Release 1.2" # group jobs under a build name
3. In GitHub Actions: add SAUCE_USERNAME and SAUCE_ACCESS_KEY under Settings → Secrets and variables → Actions; the three-browser matrix then runs on every push, one Sauce build per workflow run.
| Feature | Scenarios |
|---|---|
| Login | Valid credentials · invalid credentials show "Your email and password both are invalid!" |
| Logout | A logged-in user logs out and the login form returns |
| Registration | Register with a valid e-mail · the browser rejects an e-mail without @ |
| Forgot Password | Reset for a registered e-mail · a malformed e-mail is rejected |
| Scenario | Check |
|---|---|
| Add / remove product | The button toggles between Add to cart and Remove from cart |
| R-01 Add multiple products | 3 added → 3 in the cart |
| R-02 Product details | Details page shows name and price |
| R-03 Product cards | Every card has a name, a price and an Add to cart button |
| S-01 · S-02 · S-03 | Home page loads; sidebar modules and the E-Commerce site open from the menu |
| Layer | Technology | Version |
|---|---|---|
| Language | Java | 17 |
| Browser automation | Selenium WebDriver (RemoteWebDriver for the cloud) | 4.25.0 |
| Cloud grid | Sauce Labs (W3C sauce:options) | — |
| Driver management | WebDriverManager (local Chrome) | 5.7.0 |
| BDD · runner | Cucumber 7.15 · TestNG 7.9 | — |
| Build | Maven (Surefire 3.2.5) | — |
| CI | GitHub Actions: local job + Sauce matrix | — |
QaBrainsSauceLabAPI_Automation/
├── .github/workflows/tests.yml ← local headless job + Sauce Labs browser matrix
├── src/test/java/
│ ├── pages/ ← Login, Logout, Registration, ForgotPassword, Ecommerce
│ ├── stepdefinitions/
│ │ ├── Hooks.java ← local or Sauce driver, failure evidence, Sauce job result
│ │ ├── CommonSteps · AuthSteps · RegistrationSteps · ForgotPasswordSteps
│ │ └── ShopSteps.java ← cart, product details, menu navigation
│ ├── runners/TestRunner.java
│ └── utils/
│ ├── BaseTest.java ← config, local Chrome, headless switch
│ └── DriverFactory.java ← Sauce Labs RemoteWebDriver (env-var credentials)
├── src/test/resources/
│ ├── config.properties ← URL, practice accounts, headless, sauce
│ └── features/ ← 7 feature files, 15 scenarios
├── Automated _ Test Results _ Sauce Labs_*.pdf
└── pom.xml
Prerequisites: JDK 17+ · Maven 3.8+ · Google Chrome
git clone https://github.com/rbchy/QaBrainsSauceLabAPI_Automation.git
cd QaBrainsSauceLabAPI_Automation
mvn clean test # local Chrome
mvn clean test -Dheadless=true # what the CI local job runs
mvn clean test -Dcucumber.filter.tags="@Cart" # one area
Reports: target/cucumber-reports.html · target/cucumber-reports/ (JSON, JUnit XML) · target/failures/ (page HTML of failed scenarios).
| Change | Why |
|---|---|
Removed the hard-coded Sauce Labs username and access key from DriverFactory; credentials now come only from environment variables / GitHub secrets | The key was readable by anyone in a public repository. It remains in git history, so it must be regenerated in Sauce Labs (User Settings → Access Key) |
| Added step definitions, hooks and the Login / Logout / ForgotPassword / Ecommerce pages | None were in the repository — the suite could not run |
| Cart, smoke and regression scenarios rewritten for the site's real e-commerce demo and menu | The old ones (catalog, blog, wishlist, search) belong to another shop |
| Sauce jobs are marked passed / failed in the dashboard | Sauce shows every job as Complete unless told the result |
Unused SearchPage and DriverHelper (Windows-only driver path) removed | Dead code |
| GitHub Actions: local job + Sauce matrix | Every push is checked; the cloud runs start once secrets are added |
ThreadLocal driver + TestNG data provider)| Project | Stack |
|---|---|
| 🧪 QA Brains — Java + Selenium | Same scenarios, local only — CI green |
| 🎭 QA Brains — Java + Playwright | Same scenarios on Playwright — CI green |
| 📱 Appium Android Automation | Appium 3 on an Android emulator in CI, optional Sauce Labs |
| ⭐ RbcTcsWorld E-Commerce Suite | Spring Boot · Selenium · Playwright · CI quality gates |
All projects: github.com/rbchy
Ranajit Baran Chowdhury (RB Chowdhury) QA Automation Engineer / SDET · West Norriton, Pennsylvania, USA
Licensed under MIT. Never commit Sauce Labs credentials — use environment variables or repository secrets.
⭐ If this framework helps you, a star on the repo is appreciated.