Building Local AI Agents for Web Test Automation
Format: Hands-on workshop · Duration: 3 hours (including a 20-minute break) · Level: Intermediate
Abstract
Can an AI model you run yourself do useful test automation work? In this workshop, participants build a working web-testing assistant one step at a time. It explores a live website, writes a test plan, turns that plan into a runnable Playwright test suite, runs it, and repairs its own broken selectors. Every AI call goes to an open-weights model on a self-hosted server, never to a paid hosted service. Participants leave with the complete, working code and a clear sense of which parts of test automation to hand to a model and which to keep exact.
Who it is for
QA engineers, SDETs and developers who write automated tests and want to understand AI agents at the code level, not just as a product feature. Working knowledge of Python and basic familiarity with Playwright is assumed. No prior experience with AI agents or LangChain is needed.
What participants will learn
- What an "agent" is, by writing one from scratch: a model, a tool, a loop and a stop condition.
- How LangChain and LangGraph package the same ideas, and when a plain workflow beats an agent.
- How to get reliable, schema-checked output from a self-hosted open-weights model.
- How to generate stable, verified Playwright locators from a live page, rather than trusting a model to write selectors.
- How a self-healing test suite repairs its own selectors, and how it avoids hiding real bugs while doing so.
- What running AI-assisted testing on your own infrastructure actually costs.
Agenda
| Time | Session | What happens |
|---|---|---|
| 0:00 – 0:15 | Introduction & framing | Why agent literacy matters for QA. What a self-hosted model can and cannot do. A tour of what we will build. |
| 0:15 – 0:35 | Setting up the harness | Connecting to the model server (Ollama or llama.cpp) and the cloud browser (Lightpanda). Everyone confirms both work before moving on. |
| 0:35 – 0:55 | An agent from scratch | Writing a complete agent by hand in one short file, to demystify what agent frameworks do. |
| 0:55 – 1:15 | Moving to LangChain & LangGraph | Rebuilding the same agent with a framework, including memory, streaming and guardrails. Then when not to use an agent at all. |
| 1:15 – 1:35 | Break | |
| 1:35 – 1:55 | Agent 1 — the explorer | The agent crawls a real website and writes a test plan: the critical user flows, each with concrete, checkable assertions. |
| 1:55 – 2:20 | Agent 2 — locators & test cases | Reading each page efficiently, deriving robust Playwright locators that are verified against the live page, and turning the plan into test cases. |
| 2:20 – 2:40 | Agent 3 — the test builder | Generating a Playwright + TypeScript suite in a Page Object Model layout, then running it. |
| 2:40 – 2:55 | The self-healing loop | We break a selector on purpose and watch the suite repair it, and see why real product bugs are reported instead of "fixed". |
| 2:55 – 3:00 | The full run & wrap-up | The whole pipeline in one command with its final report, what it costs, and where to take it next. |
What participants need to bring
- A laptop with Python 3.11+, Node.js 20+ and the uv package manager installed.
- The workshop repository, cloned and set up before the session.
- A free Lightpanda Cloud API token, from console.lightpanda.io. The token is shown only once, so generate and save it in advance.
- Access to a model server (Ollama or llama.cpp): its address, a model name and an API key. (Optional - If you don't have one ready, we'll help you set it up on the day.)
For the Browserstack
- A short pre-workshop email with the setup instructions above. Setup problems are the most common cause of lost time, so ask participants to complete setup before the day.