{"name":"AI-Agent-Test-Using-Amazon-Nova-Act","generatedAt":"2026-10-04T08:25:35.712Z","languages":{"Python":45420},"commitTotal":4,"commits":[{"sha":"6789d47d26d9cde9e11c1b0a30e29805f4bb3498","message":"Remove Lottie.js script tag from README\n\nRemove unused script tag for Lottie animation.","date":"2026-03-07T12:01:31Z","author":"Aayush Mishra","login":"Aayush-Mishraa","avatar":"https://avatars.githubusercontent.com/u/89012492?v=4","verified":true,"url":"https://github.com/Aayush-Mishraa/AI-Agent-Test-Using-Amazon-Nova-Act/commit/6789d47d26d9cde9e11c1b0a30e29805f4bb3498"},{"sha":"94e56ae4f9abbc862015773ae075bfc0a8003718","message":"Update README.md","date":"2026-03-07T11:56:41Z","author":"Aayush Mishra","login":"Aayush-Mishraa","avatar":"https://avatars.githubusercontent.com/u/89012492?v=4","verified":true,"url":"https://github.com/Aayush-Mishraa/AI-Agent-Test-Using-Amazon-Nova-Act/commit/94e56ae4f9abbc862015773ae075bfc0a8003718"},{"sha":"34512dba010a3bb694e27814c2c20f7e701be4d5","message":"Add professional project README","date":"2026-03-07T09:00:44Z","author":"Aayush Mishra","login":"Aayush-Mishraa","avatar":"https://avatars.githubusercontent.com/u/89012492?v=4","verified":false,"url":"https://github.com/Aayush-Mishraa/AI-Agent-Test-Using-Amazon-Nova-Act/commit/34512dba010a3bb694e27814c2c20f7e701be4d5"},{"sha":"25de46a5f405b9b624392266ec697eae61179f87","message":"Add Nova Act scenarios and HTML test reporting","date":"2026-03-07T08:48:57Z","author":"Aayush Mishra","login":"Aayush-Mishraa","avatar":"https://avatars.githubusercontent.com/u/89012492?v=4","verified":false,"url":"https://github.com/Aayush-Mishraa/AI-Agent-Test-Using-Amazon-Nova-Act/commit/25de46a5f405b9b624392266ec697eae61179f87"}],"readmeHtml":"<div id=\"readme\" class=\"md\" data-path=\"README.md\"><article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><div class=\"markdown-heading\" dir=\"auto\"><h1 class=\"heading-element\" dir=\"auto\">AI-Test-Automation-Using-Amazon-Nova-Act</h1><a id=\"user-content-ai-test-automation-using-amazon-nova-act\" class=\"anchor\" aria-label=\"Permalink: AI-Test-Automation-Using-Amazon-Nova-Act\" href=\"#ai-test-automation-using-amazon-nova-act\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 class=\"heading-element\" dir=\"auto\">1. Introduction</h2><a id=\"user-content-1-introduction\" class=\"anchor\" aria-label=\"Permalink: 1. Introduction\" href=\"#1-introduction\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">This project shows how to build AI-driven web test automation using Amazon Nova Act. Instead of writing rigid locator-heavy scripts for every UI action, we describe test intent in natural language and let Nova Act execute those steps in the browser.</p>\n<p dir=\"auto\">The goal of this repository is practical: demonstrate real scenario-based functional testing for an ecommerce flow using AI agents, while still keeping the project structured like an engineering test suite.</p>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 class=\"heading-element\" dir=\"auto\">2. Problem with Traditional Automation</h2><a id=\"user-content-2-problem-with-traditional-automation\" class=\"anchor\" aria-label=\"Permalink: 2. Problem with Traditional Automation\" href=\"#2-problem-with-traditional-automation\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">Traditional UI automation frameworks like Selenium, Playwright, and Cypress are powerful, but they come with known pain points in large test suites:</p>\n<ul dir=\"auto\">\n<li>Tests are tightly coupled to CSS/XPath selectors.</li>\n<li>Minor UI changes can break many scripts.</li>\n<li>Authoring test cases takes time and strong framework knowledge.</li>\n<li>Maintenance cost grows quickly as product surfaces expand.</li>\n<li>Non-technical stakeholders cannot easily contribute to test authoring.</li>\n</ul>\n<p dir=\"auto\">In short, traditional tools are deterministic and robust, but often expensive to maintain over time for fast-moving UI products.</p>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 class=\"heading-element\" dir=\"auto\">3. Why AI Driven Automation</h2><a id=\"user-content-3-why-ai-driven-automation\" class=\"anchor\" aria-label=\"Permalink: 3. Why AI Driven Automation\" href=\"#3-why-ai-driven-automation\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">AI-driven automation shifts from selector-first scripts to intent-first instructions.</p>\n<p dir=\"auto\">Instead of writing low-level code for every click and input, we provide high-level instructions such as:</p>\n<p dir=\"auto\"><code>\"Login with valid credentials and verify username on dashboard\"</code></p>\n<p dir=\"auto\">An AI agent can then:</p>\n<ul dir=\"auto\">\n<li>Interpret the instruction in context.</li>\n<li>Plan browser actions dynamically.</li>\n<li>Adapt when UI structure changes slightly.</li>\n<li>Return meaningful execution output.</li>\n</ul>\n<p dir=\"auto\">This approach can reduce authoring effort and improve adaptability for exploratory and regression-style flows.</p>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 class=\"heading-element\" dir=\"auto\">4. Amazon Nova Act Overview</h2><a id=\"user-content-4-amazon-nova-act-overview\" class=\"anchor\" aria-label=\"Permalink: 4. Amazon Nova Act Overview\" href=\"#4-amazon-nova-act-overview\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">Amazon Nova Act is an AI agent capability from AWS for browser task automation. It combines LLM reasoning with an action execution layer to perform tasks on real web pages.</p>\n<p dir=\"auto\">At a high level, Nova Act:</p>\n<ul dir=\"auto\">\n<li>Accepts natural-language goals.</li>\n<li>Understands page context.</li>\n<li>Plans and performs browser actions.</li>\n<li>Produces execution logs and outcomes.</li>\n</ul>\n<p dir=\"auto\">In this project, Nova Act is used through the Python SDK with workflow-based scenario execution.</p>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 class=\"heading-element\" dir=\"auto\">5. Architecture</h2><a id=\"user-content-5-architecture\" class=\"anchor\" aria-label=\"Permalink: 5. Architecture\" href=\"#5-architecture\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">The implementation follows an agentic test architecture where test intent is translated into executable browser actions.</p>\n<p dir=\"auto\">Core building blocks:</p>\n<ul dir=\"auto\">\n<li>LLM model: interprets test intent and page context.</li>\n<li>Agent planner: decomposes intent into ordered actions.</li>\n<li>Tool execution: performs actions like click/type/navigate/assert.</li>\n<li>Browser automation layer: drives browser interactions.</li>\n<li>AWS integration: handles auth, model access, and workflow execution.</li>\n</ul>\n<p dir=\"auto\">Architecture flow:</p>\n<div class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"User Prompt\n  |\n  v\nNova LLM\n  |\n  v\nAgent Planner\n  |\n  v\nBrowser Automation\n  |\n  v\nExecution Logs\"><pre lang=\"text\" class=\"notranslate\"><code>User Prompt\n  |\n  v\nNova LLM\n  |\n  v\nAgent Planner\n  |\n  v\nBrowser Automation\n  |\n  v\nExecution Logs\n</code></pre></div>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 class=\"heading-element\" dir=\"auto\">6. How Nova Act Works Internally</h2><a id=\"user-content-6-how-nova-act-works-internally\" class=\"anchor\" aria-label=\"Permalink: 6. How Nova Act Works Internally\" href=\"#6-how-nova-act-works-internally\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">In simple terms, each <code>nova.act(...)</code> instruction goes through this cycle:</p>\n<ol dir=\"auto\">\n<li>Parse intent from natural language.</li>\n<li>Observe current browser/page state.</li>\n<li>Decide the next best action.</li>\n<li>Execute the action.</li>\n<li>Re-evaluate whether the goal is complete.</li>\n<li>Continue until the instruction is satisfied or fails.</li>\n</ol>\n<p dir=\"auto\">This loop is why AI automation can handle small UI differences better than hardcoded scripts.</p>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 class=\"heading-element\" dir=\"auto\">7. Browser Interaction</h2><a id=\"user-content-7-browser-interaction\" class=\"anchor\" aria-label=\"Permalink: 7. Browser Interaction\" href=\"#7-browser-interaction\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">Nova Act uses a browser automation layer compatible with Playwright-style interaction patterns under the hood. This enables stable low-level control (click, type, navigate, wait, evaluate) while exposing a high-level natural-language interface to the test author.</p>\n<p dir=\"auto\">In practice, you write intent, and the framework handles granular browser operations.</p>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 class=\"heading-element\" dir=\"auto\">8. Nova Act Playground</h2><a id=\"user-content-8-nova-act-playground\" class=\"anchor\" aria-label=\"Permalink: 8. Nova Act Playground\" href=\"#8-nova-act-playground\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">The Nova Act Playground is a browser-based environment for quickly trying prompts and observing agent behavior without writing much code.</p>\n<p dir=\"auto\">What it gives you:</p>\n<ul dir=\"auto\">\n<li>Fast experimentation with prompts.</li>\n<li>Quick feedback loop while learning agent behavior.</li>\n<li>Visual understanding of action traces.</li>\n</ul>\n<p dir=\"auto\">Regional availability note:</p>\n<ul dir=\"auto\">\n<li>Service and playground availability can vary by AWS region and account setup.</li>\n<li>Some users may not see the same access experience in regions like India.</li>\n</ul>\n<p dir=\"auto\">If playground access is limited, use the SDK directly from local scripts, which is the approach used in this repository.</p>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 class=\"heading-element\" dir=\"auto\">9. Nova Act SDK Setup</h2><a id=\"user-content-9-nova-act-sdk-setup\" class=\"anchor\" aria-label=\"Permalink: 9. Nova Act SDK Setup\" href=\"#9-nova-act-sdk-setup\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">Follow these steps to run locally.</p>\n<div class=\"markdown-heading\" dir=\"auto\"><h3 class=\"heading-element\" dir=\"auto\">9.1 Prerequisites</h3><a id=\"user-content-91-prerequisites\" class=\"anchor\" aria-label=\"Permalink: 9.1 Prerequisites\" href=\"#91-prerequisites\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<ul dir=\"auto\">\n<li>Python 3.10+</li>\n<li>AWS account</li>\n<li>AWS CLI installed</li>\n</ul>\n<div class=\"markdown-heading\" dir=\"auto\"><h3 class=\"heading-element\" dir=\"auto\">9.2 Install Dependencies</h3><a id=\"user-content-92-install-dependencies\" class=\"anchor\" aria-label=\"Permalink: 9.2 Install Dependencies\" href=\"#92-install-dependencies\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"pip install -r requirements.txt\npip install playwright\nplaywright install\"><pre>pip install -r requirements.txt\npip install playwright\nplaywright install</pre></div>\n<div class=\"markdown-heading\" dir=\"auto\"><h3 class=\"heading-element\" dir=\"auto\">9.3 Install Nova Act SDK Explicitly (if needed)</h3><a id=\"user-content-93-install-nova-act-sdk-explicitly-if-needed\" class=\"anchor\" aria-label=\"Permalink: 9.3 Install Nova Act SDK Explicitly (if needed)\" href=\"#93-install-nova-act-sdk-explicitly-if-needed\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"pip install nova-act\"><pre>pip install nova-act</pre></div>\n<div class=\"markdown-heading\" dir=\"auto\"><h3 class=\"heading-element\" dir=\"auto\">9.4 Create IAM User for Programmatic Access</h3><a id=\"user-content-94-create-iam-user-for-programmatic-access\" class=\"anchor\" aria-label=\"Permalink: 9.4 Create IAM User for Programmatic Access\" href=\"#94-create-iam-user-for-programmatic-access\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<ol dir=\"auto\">\n<li>Open AWS Console -&gt; IAM -&gt; Users -&gt; Create user.</li>\n<li>Enable programmatic access.</li>\n<li>Attach required permissions.</li>\n</ol>\n<p dir=\"auto\">Recommended minimum approach:</p>\n<ul dir=\"auto\">\n<li>Start with least-privilege policies required for Nova Act usage.</li>\n<li>Add S3 permissions if you plan to store artifacts/logs in a bucket.</li>\n</ul>\n<div class=\"markdown-heading\" dir=\"auto\"><h3 class=\"heading-element\" dir=\"auto\">9.5 Create Access Keys</h3><a id=\"user-content-95-create-access-keys\" class=\"anchor\" aria-label=\"Permalink: 9.5 Create Access Keys\" href=\"#95-create-access-keys\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<ol dir=\"auto\">\n<li>IAM -&gt; User -&gt; Security credentials.</li>\n<li>Create access key.</li>\n<li>Save <code>AWS_ACCESS_KEY_ID</code> and <code>AWS_SECRET_ACCESS_KEY</code> securely.</li>\n</ol>\n<div class=\"markdown-heading\" dir=\"auto\"><h3 class=\"heading-element\" dir=\"auto\">9.6 Configure AWS CLI</h3><a id=\"user-content-96-configure-aws-cli\" class=\"anchor\" aria-label=\"Permalink: 9.6 Configure AWS CLI\" href=\"#96-configure-aws-cli\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"aws configure\"><pre>aws configure</pre></div>\n<p dir=\"auto\">Set:</p>\n<ul dir=\"auto\">\n<li>Access key ID</li>\n<li>Secret access key</li>\n<li>Default region: <code>us-east-1</code></li>\n<li>Output format: <code>json</code></li>\n</ul>\n<div class=\"markdown-heading\" dir=\"auto\"><h3 class=\"heading-element\" dir=\"auto\">9.7 Optional: Connect to S3 for Artifacts</h3><a id=\"user-content-97-optional-connect-to-s3-for-artifacts\" class=\"anchor\" aria-label=\"Permalink: 9.7 Optional: Connect to S3 for Artifacts\" href=\"#97-optional-connect-to-s3-for-artifacts\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">If you want to upload logs/reports:</p>\n<div class=\"highlight highlight-source-python notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"import boto3\n\ns3 = boto3.client(&quot;s3&quot;, region_name=&quot;us-east-1&quot;)\ns3.upload_file(&quot;results/sample_report.html&quot;, &quot;your-bucket-name&quot;, &quot;reports/sample_report.html&quot;)\"><pre><span class=\"pl-k\">import</span> <span class=\"pl-s1\">boto3</span>\n\n<span class=\"pl-s1\">s3</span> <span class=\"pl-c1\">=</span> <span class=\"pl-s1\">boto3</span>.<span class=\"pl-c1\">client</span>(<span class=\"pl-s\">\"s3\"</span>, <span class=\"pl-s1\">region_name</span><span class=\"pl-c1\">=</span><span class=\"pl-s\">\"us-east-1\"</span>)\n<span class=\"pl-s1\">s3</span>.<span class=\"pl-c1\">upload_file</span>(<span class=\"pl-s\">\"results/sample_report.html\"</span>, <span class=\"pl-s\">\"your-bucket-name\"</span>, <span class=\"pl-s\">\"reports/sample_report.html\"</span>)</pre></div>\n<div class=\"markdown-heading\" dir=\"auto\"><h3 class=\"heading-element\" dir=\"auto\">9.8 Run Scripts Locally</h3><a id=\"user-content-98-run-scripts-locally\" class=\"anchor\" aria-label=\"Permalink: 9.8 Run Scripts Locally\" href=\"#98-run-scripts-locally\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<div class=\"highlight highlight-source-shell notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"python main.py\npython demo.py\npython scenarios/login_scenario.py\npython scenarios/checkout_scenario.py\"><pre>python main.py\npython demo.py\npython scenarios/login_scenario.py\npython scenarios/checkout_scenario.py</pre></div>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 class=\"heading-element\" dir=\"auto\">10. Example SDK Usage</h2><a id=\"user-content-10-example-sdk-usage\" class=\"anchor\" aria-label=\"Permalink: 10. Example SDK Usage\" href=\"#10-example-sdk-usage\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<div class=\"highlight highlight-source-python notranslate position-relative overflow-auto\" dir=\"auto\" data-snippet-clipboard-copy-content=\"from nova_act import NovaAct\n\nwith NovaAct(starting_page=&quot;https://example.com&quot;) as nova:\n    nova.act(&quot;Login with valid credentials&quot;)\"><pre><span class=\"pl-k\">from</span> <span class=\"pl-s1\">nova_act</span> <span class=\"pl-k\">import</span> <span class=\"pl-v\">NovaAct</span>\n\n<span class=\"pl-k\">with</span> <span class=\"pl-en\">NovaAct</span>(<span class=\"pl-s1\">starting_page</span><span class=\"pl-c1\">=</span><span class=\"pl-s\">\"https://example.com\"</span>) <span class=\"pl-k\">as</span> <span class=\"pl-s1\">nova</span>:\n    <span class=\"pl-s1\">nova</span>.<span class=\"pl-c1\">act</span>(<span class=\"pl-s\">\"Login with valid credentials\"</span>)</pre></div>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 class=\"heading-element\" dir=\"auto\">11. My Implementation</h2><a id=\"user-content-11-my-implementation\" class=\"anchor\" aria-label=\"Permalink: 11. My Implementation\" href=\"#11-my-implementation\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">I implemented this project as scenario-based automation to mirror realistic ecommerce testing flows. Each scenario is isolated for focused validation, and there is also a comprehensive scenario for end-to-end coverage.</p>\n<p dir=\"auto\">Implemented scenarios:</p>\n<ul dir=\"auto\">\n<li>Login scenario</li>\n<li>Registration scenario</li>\n<li>Forgot password scenario</li>\n<li>Search product scenario</li>\n<li>Filter products scenario</li>\n<li>Add to cart / product management flow</li>\n<li>Product count validation</li>\n<li>Checkout scenario</li>\n<li>Wishlist and profile scenario</li>\n<li>Error handling scenarios</li>\n<li>Comprehensive end-to-end scenario</li>\n</ul>\n<p dir=\"auto\">This layout makes it easier to run individual suites or combine them for broader regression execution.</p>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 class=\"heading-element\" dir=\"auto\">12. Project Structure</h2><a id=\"user-content-12-project-structure\" class=\"anchor\" aria-label=\"Permalink: 12. Project Structure\" href=\"#12-project-structure\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<div class=\"snippet-clipboard-content notranslate position-relative overflow-auto\" data-snippet-clipboard-copy-content=\"AI-Test-Automation-Using-Amazon-Nova-Act/\n  scenarios/\n    add_product_scenario.py\n    checkout_scenario.py\n    comprehensive_scenario.py\n    error_handling_scenario.py\n    forgot_password_scenario.py\n    login_scenario.py\n    login_with_report.py\n    product_count_scenario.py\n    product_count_with_report.py\n    registration_scenario.py\n    search_filter_scenario.py\n    wishlist_profile_scenario.py\n  results/\n  demo.py\n  main.py\n  test_result_logger.py\n  HTML_REPORTING_GUIDE.md\n  README.md\"><pre lang=\"text\" class=\"notranslate\"><code>AI-Test-Automation-Using-Amazon-Nova-Act/\n  scenarios/\n    add_product_scenario.py\n    checkout_scenario.py\n    comprehensive_scenario.py\n    error_handling_scenario.py\n    forgot_password_scenario.py\n    login_scenario.py\n    login_with_report.py\n    product_count_scenario.py\n    product_count_with_report.py\n    registration_scenario.py\n    search_filter_scenario.py\n    wishlist_profile_scenario.py\n  results/\n  demo.py\n  main.py\n  test_result_logger.py\n  HTML_REPORTING_GUIDE.md\n  README.md\n</code></pre></div>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 class=\"heading-element\" dir=\"auto\">13. Test Reporting</h2><a id=\"user-content-13-test-reporting\" class=\"anchor\" aria-label=\"Permalink: 13. Test Reporting\" href=\"#13-test-reporting\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">The project includes HTML reporting for execution tracking.</p>\n<ul dir=\"auto\">\n<li><code>test_result_logger.py</code> captures step-level results.</li>\n<li>Report scenarios (for example <code>login_with_report.py</code>) generate timestamped HTML files.</li>\n<li>Reports are written to the <code>results/</code> directory.</li>\n</ul>\n<p dir=\"auto\">Typical report data includes:</p>\n<ul dir=\"auto\">\n<li>Test step name</li>\n<li>Status (pass/fail)</li>\n<li>Timestamp</li>\n<li>Response/output details</li>\n<li>Overall summary metrics</li>\n</ul>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 class=\"heading-element\" dir=\"auto\">14. Benefits of AI Automation</h2><a id=\"user-content-14-benefits-of-ai-automation\" class=\"anchor\" aria-label=\"Permalink: 14. Benefits of AI Automation\" href=\"#14-benefits-of-ai-automation\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">From an SDET perspective, key benefits are:</p>\n<ul dir=\"auto\">\n<li>Faster test creation through natural-language steps.</li>\n<li>Easier collaboration between QA, dev, and product teams.</li>\n<li>Lower maintenance burden compared to selector-heavy tests.</li>\n<li>Better fit for exploratory and dynamic UI paths.</li>\n<li>Foundation for autonomous testing agents.</li>\n</ul>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 class=\"heading-element\" dir=\"auto\">15. Future Improvements</h2><a id=\"user-content-15-future-improvements\" class=\"anchor\" aria-label=\"Permalink: 15. Future Improvements\" href=\"#15-future-improvements\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">Planned evolution areas:</p>\n<ul dir=\"auto\">\n<li>Self-healing tests for higher resilience.</li>\n<li>AI-generated test cases from user stories/requirements.</li>\n<li>CI/CD integration for scheduled and gated execution.</li>\n<li>Autonomous regression agents for nightly validation.</li>\n<li>Centralized artifact storage and trend dashboards.</li>\n</ul>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 class=\"heading-element\" dir=\"auto\">16. Author</h2><a id=\"user-content-16-author\" class=\"anchor\" aria-label=\"Permalink: 16. Author\" href=\"#16-author\"><svg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"></path></svg></a></div>\n<p dir=\"auto\">Aayush Mishra<br>\nSDET | Automation Engineer | AI Testing Enthusiast</p>\n<p dir=\"auto\">GitHub: <a href=\"https://github.com/Aayush-Mishraa\">https://github.com/Aayush-Mishraa</a><br>\nLinkedIn: <a href=\"https://www.linkedin.com/in/aayushmishra33/\" rel=\"nofollow\">https://www.linkedin.com/in/aayushmishra33/</a><br>\nPortfolio: <a href=\"https://aayushmishra.tech\" rel=\"nofollow\">https://aayushmishra.tech</a></p>\n</article></div>","tree":{"fileCount":21,"dirCount":1,"truncated":false,"extensions":[{"ext":"py","count":15},{"ext":"md","count":2},{"ext":"example","count":1},{"ext":"gitignore","count":1},{"ext":"docx","count":1},{"ext":"txt","count":1}],"topLevel":[{"name":"scenarios","type":"dir"},{"name":".env.example","type":"file"},{"name":".gitignore","type":"file"},{"name":"demo.py","type":"file"},{"name":"HTML_REPORTING_GUIDE.md","type":"file"},{"name":"main.py","type":"file"},{"name":"opencart_prd_aayush_mishra (1).docx","type":"file"},{"name":"README.md","type":"file"},{"name":"requirements.txt","type":"file"},{"name":"test_result_logger.py","type":"file"}]}}