Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
{
"metadata_version": "1.0",
"created_at": "2026-03-11T06:23:28.685595",
"last_updated": "2026-03-11T07:02:30.104939",
"urls_to_pom_map": {},
"Login_File": {
"name": null,
"path": null,
"hash": null,
"agent_workflow_completed": false,
"agent_workflow_file_path": null,
"agent_interaction_file_path": null,
"agent_activity_summary": null,
"agent_activity_error": null,
"agent_activity_outcome": null,
"agent_recommendation": null,
"agent_completion_level": null,
"agent_steps_completed": null,
"scenario_name": null,
"scenario_file_path": null,
"test_generated": false,
"test_generation_error": null,
"test_file_path": null,
"test_executed_success": null,
"test_execution_error": null,
"pom_test_name": null,
"pom_test_file_path": null,
"pom_test_executed_success": null,
"pom_test_execution_error": null,
"urls_to_pom_map": {}
},
"User_Scenarios_File": [
{
"name": "testautomations user scenario.pdf",
"path": "D:\\testautomations user scenario.pdf",
"hash": "06689c0cf9237b70de819ef69352e062b624c7c669455aa98b13e467daebc93e",
"agent_workflow_completed": true,
"agent_workflow_file_path": "C:\\var\\tmp\\Roost\\RoostGPT\\Ui-test-pr\\1773210189\\temp_info\\testautomationpractice.blogspot.com\\extracted_data\\interaction_data_06da53c99de18ea45a671a5919753fa4fbea37f7aa09aa81c9b011e66633d40c.json",
"agent_activity_summary": [
"Agent navigated to the Automation Testing Practice homepage and systematically interacted with all required GUI Elements. The agent entered user details (Name, Email, Phone, Address), selected the 'Male' gender radio button, checked all specified weekday checkboxes, and chose 'India' from the Country dropdown. The agent selected 'Yellow' from the Colors list and 'Dog' from the Sorted List. Date fields were populated as specified, including handling multiple input attempts for the Date Picker 3 range. The agent proceeded to submit the form, repeatedly clicking the Submit button and capturing visible messages to verify submission. All actions were executed in alignment with the scenario requirements."
],
"agent_activity_error": [
"Minor redundancy and retries occurred during Date Picker 3 input (steps 26–33), where the agent attempted multiple formats and methods to ensure the correct date range was set. No blocking errors were encountered; the agent recovered by re-attempting input and using JavaScript evaluation to finalize the date entry. Submission feedback was not explicitly visible in the UI, but the agent confirmed completion by repeated submission attempts and message captures."
],
"agent_activity_outcome": [
"The agent successfully completed all steps outlined in the Original User Scenario, including form submission. All required fields were filled, selections made, and the form was submitted as intended. Despite the absence of explicit submission confirmation in the UI, the agent verified that the workflow was executed end-to-end."
],
"agent_recommendation": "Enhance the form submission verification by implementing explicit checks for confirmation messages or success indicators post-submit. Consider optimizing date input handling to reduce redundant retries. Overall, the automation workflow is robust and achieves the intended scenario.",
"agent_completion_level": "complete",
"agent_steps_completed": null,
"scenario_analysis_result_file_path": "C:\\var\\tmp\\Roost\\RoostGPT\\Ui-test-pr\\1773210189\\temp_info\\testautomationpractice.blogspot.com\\extracted_data\\user_scenario_06da53c99de18ea45a671a5919753fa4fbea37f7aa09aa81c9b011e66633d40c.json",
"scenario_name": "automation_testing_practice_form_-_complete_user_journey",
"scenario_file_path": "scenarios\\automation_testing_practice_form_-_complete_user_j.json",
"feature_file_path": "scenarios\\features\\Discovered_Workflow_Automation_Testing_Practice_Fo.feature",
"test_generated": true,
"test_generation_error": null,
"test_name": "automation_testing_practice_form___complete_user_journey.noauth.spec.js",
"test_file_path": "tests\\automation_testing_practice_form___complete_user_journey.noauth.spec.js",
"test_execution_error": null,
"test_executed_success": true,
"pom_test_name": "automation_testing_practice_form___complete_user_journey_pom.noauth.spec.js",
"pom_test_file_path": "pom_tests\\automation_testing_practice_form___complete_user_journey_pom.noauth.spec.js",
"pom_test_executed_success": null,
"pom_test_execution_error": null,
"urls_to_pom_map": {}
}
],
"Exploration_Scenarios": []
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Playwright Test Suite

## RoostGpt Generated playwright test

This project contains Playwright-based automated tests located in the `playwright_tests` directory.

## 📁 Directory Structure

```bash
playwright_tests/
├── README.md
├── scenarios/
├── scenarios_summary.md
├── *.json (scenario files)
├── features/
│ ├── *.feature (feature files)
├── tests/
├── package.json
├── playwright.config.js
├── .env.template
├── *.spec.js (test files)
├── test_summary.md
```

## 🧩 Prerequisites

Make sure you have the following installed:

- [Node.js](https://nodejs.org/) (version 18 or higher recommended)
- npm (comes with Node.js)

## 📦 Setup

1. Navigate to the Playwright tests directory:

2. Install dependencies:

```bash
cd tests
cp .env.template .env
npm install
```

3. Edit the `.env` file to set any required environment variables.
## 🚀 Running Tests

To execute all Playwright tests:

```bash
npx playwright test
```

You can also run a specific test file:

```bash
npx playwright test example.spec.js
```

> Replace `example.spec.js` with the actual test file you want to run.

## 📂 Test Reports

After the tests run, Playwright will generate a report. To view the report:

```bash
npx playwright show-report
```

## ⚙️ Configuration

Test configuration is defined in `playwright.config.js`.

You can modify settings like test directory, timeout etc., in this file.

## 📘 More Info

For detailed Playwright documentation, visit: [https://playwright.dev](https://playwright.dev)
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Runtime Environment File - AUTO GENERATED
# This file contains actual credentials and should NEVER be committed
# It will be automatically deleted after test execution

BASE_HOST_URL='https://testautomationpractice.blogspot.com'
BASE_URL='https://testautomationpractice.blogspot.com'
CI=''
COOKIE_GRACE_PERIOD_MINUTES=''
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Environment Configuration Template
# This file contains safe placeholder values for version control
# Actual credentials will be injected at runtime from your source env file

# Application Configuration
BASE_HOST_URL='https://testautomationpractice.blogspot.com'
BASE_URL='https://testautomationpractice.blogspot.com'
CI=''
COOKIE_GRACE_PERIOD_MINUTES=''

# Authentication & Credentials (POPULATED AT RUNTIME)
# These values are automatically loaded during test execution
# DO NOT enter real credentials here
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
import 'dotenv/config';
import { test, expect } from '@playwright/test';
import { HomePage } from './pom/HomePage.js';
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';

// Environment variables
const BASE_HOST_URL = process.env.BASE_HOST_URL || 'https://testautomationpractice.blogspot.com';
const BASE_URL = process.env.BASE_URL || 'https://testautomationpractice.blogspot.com/';

let stepTimeout30 = { timeout: 30000 };
let stepTimeout10 = { timeout: 10000 };

test('Automation Testing Practice Form - Complete User Journey', async ({ page }) => {
// Test data for this scenario
const testData = {
name: 'Roostai',
email: 'roostai@zb.io',
phone: '9999999999',
address: 'Bangalore , India',
country: 'India',
color: 'Yellow',
animal: 'Dog',
datePicker1: '17/02/2026',
datePicker2: '01/01/2026',
datePicker3Start: '2026-01-10',
datePicker3End: '03/10/2026'
};

await test.step('Navigate to homepage and ensure GUI Elements section is visible', async () => {
const homePage = new HomePage(page);
await homePage.openHomePage(BASE_URL);
await expect(page).toHaveURL(BASE_URL, stepTimeout30);
// Optionally, check page title contains 'Automation Testing Practice'
const title = await homePage.getPageTitle();
expect(title).toMatch(/Automation Testing Practice/i);
});

let homePage;
await test.step('Fill Name field', async () => {
homePage = new HomePage(page);
await homePage.fillName(testData.name);
await expect(await homePage.getNameValue()).toBe(testData.name);
});

await test.step('Fill Email field', async () => {
await homePage.fillEmail(testData.email);
await expect(await homePage.getEmailValue()).toBe(testData.email);
});

await test.step('Fill Phone field', async () => {
await homePage.fillPhone(testData.phone);
await expect(await homePage.getPhoneValue()).toBe(testData.phone);
});

await test.step('Fill Address field', async () => {
await homePage.fillAddress(testData.address);
await expect(await homePage.getAddressValue()).toBe(testData.address);
});

await test.step('Select Gender: Male', async () => {
await homePage.selectGenderMale();
await expect(await homePage.isGenderMaleSelected()).toBe(true);
});

await test.step('Check Monday checkbox', async () => {
await homePage.checkMonday();
await expect(await homePage.isMondayChecked()).toBe(true);
});

await test.step('Check Tuesday checkbox', async () => {
await homePage.checkTuesday();
await expect(await homePage.isTuesdayChecked()).toBe(true);
});

await test.step('Check Wednesday checkbox', async () => {
await homePage.checkWednesday();
await expect(await homePage.isWednesdayChecked()).toBe(true);
});

await test.step('Check Thursday checkbox', async () => {
await homePage.checkThursday();
await expect(await homePage.isThursdayChecked()).toBe(true);
});

await test.step('Check Friday checkbox', async () => {
await homePage.checkFriday();
await expect(await homePage.isFridayChecked()).toBe(true);
});

await test.step('Select Country from dropdown', async () => {
await homePage.selectCountry(testData.country);
await expect(await homePage.getSelectedCountry()).toBe('India');
});

await test.step('Select Color from Colors list', async () => {
await homePage.selectColor(testData.color);
await expect(await homePage.getSelectedColor()).toBe('Yellow');
});

await test.step('Select Animal from Sorted List', async () => {
await homePage.selectAnimal(testData.animal);
await expect(await homePage.getSelectedAnimal()).toBe('Dog');
});

await test.step('Fill Date Picker 1', async () => {
await homePage.fillDatePicker1(testData.datePicker1);
await expect(await homePage.getDatePicker1Value()).toBe(testData.datePicker1);
});

await test.step('Fill Date Picker 2', async () => {
await homePage.fillDatePicker2(testData.datePicker2);
await expect(await homePage.getDatePicker2Value()).toBe(testData.datePicker2);
});

await test.step('Fill Date Picker 3 Start Date', async () => {
await homePage.fillDatePicker3Start(testData.datePicker3Start);
await expect(await homePage.getDatePicker3StartValue()).toBe(testData.datePicker3Start);
});

await test.step('Fill Date Picker 3 End Date', async () => {
await homePage.fillDatePicker3End(testData.datePicker3End);
await expect(await homePage.getDatePicker3EndValue()).toBe(testData.datePicker3End);
});

await test.step('Submit the form', async () => {
await homePage.submitForm();
// No explicit confirmation message, but we can check that the fields are cleared or remain as is
// Optionally, wait a moment for any UI update
await page.waitForTimeout(1000);
});
});

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading