← Back to Skills Marketplace
nissan

Smoke Test Generator

by Nissan Dookeran · GitHub ↗ · v1.0.0
cross-platform ✓ Security Clean
364
Downloads
0
Stars
1
Active Installs
1
Versions
Install in OpenClaw
/install smoke-test-generator
Description
Generate comprehensive API smoke test suites — categorised tests for auth, CRUD, integrations, cached vs live endpoints, with summary reporting. Use when val...
README (SKILL.md)

Smoke Test Generator

A structured pattern for API smoke testing with categorised test suites and summary reporting. Adapted from a production test suite that verified 34 endpoints across auth, CRUD, cached audio, story generation, ElevenLabs, and Mistral agent APIs.

Test Categories

Category What It Tests Fail =
Auth Login, token validation, protected routes Nothing else works
CRUD Create, read, update, delete operations Data layer broken
Cached Pre-cached content serves correctly Demo will fail
Live Real API calls complete successfully External dependency down
Integration End-to-end workflows across services Pipeline broken

Pattern

import httpx
import asyncio

BASE_URL = "http://localhost:8000"
results = {"pass": 0, "fail": 0, "skip": 0}

async def test(name: str, category: str, fn):
    try:
        await fn()
        results["pass"] += 1
        print(f"  ✅ [{category}] {name}")
    except Exception as e:
        results["fail"] += 1
        print(f"  ❌ [{category}] {name}: {e}")

async def run_smoke_tests():
    async with httpx.AsyncClient(base_url=BASE_URL, timeout=30) as client:
        # Auth
        await test("Login with valid creds", "auth",
            lambda: assert_status(client.post("/login", json={"email": "[email protected]", "password": "test"}), 200))
        
        # CRUD
        await test("Create item", "crud",
            lambda: assert_status(client.post("/api/items", json={"name": "test"}), 201))
        
        # Cached
        await test("Cached content returns 200", "cached",
            lambda: assert_status(client.get("/api/cached/1"), 200))
        
        # Integration
        await test("Full pipeline completes", "integration",
            lambda: assert_status(client.post("/api/pipeline", json={...}), 200))
    
    total = results["pass"] + results["fail"]
    print(f"\
{'='*40}")
    print(f"Results: {results['pass']}/{total} passed")
    if results["fail"] > 0:
        print(f"⚠️ {results['fail']} failures — do not demo!")

Files

  • scripts/smoke_test.py — Example smoke test suite with all categories
Usage Guidance
This appears to be a normal smoke-test suite for a specific demo application (Sandman Tales). Before running it: 1) Only run against staging/local environments (it issues POSTs that can create or trigger work); do not point BASE at production. 2) Review and edit tests to avoid destructive operations or calls that consume paid external resources. 3) Ensure your Python environment has the httpx dependency installed (not declared by the skill). 4) Note the tests expect particular endpoints and a Turso DB check—if your API differs, adapt the script. 5) Because the source is unknown and there is no homepage, prefer to run the script in an isolated environment (CI job or container) and inspect/modify it to suit your API before giving it network access.
Capability Analysis
Type: OpenClaw Skill Name: smoke-test-generator Version: 1.0.0 The skill bundle provides a Python script (`scripts/smoke_test.py`) designed to perform API smoke tests. The `SKILL.md` explicitly declares `network.outbound: true` and states the purpose is to send HTTP requests to the API under test, which is consistent with the script's functionality. The script connects to a configurable base URL (defaulting to `https://localhost:8000`) and performs various GET/POST requests to test API endpoints. It uses hardcoded demo credentials and does not attempt to read sensitive files, environment variables, or exfiltrate data. There is no evidence of prompt injection against the agent in `SKILL.md`, nor any malicious execution, persistence, or obfuscation. The network access, while broad, is plausibly and explicitly needed for the stated purpose of testing 'any HTTP API'.
Capability Assessment
Purpose & Capability
The skill's name and description (API smoke tests) match the included instructions and script. However the SKILL.md's claim 'Works with any HTTP API' is overstated: the provided tests are tailored to a specific API shape (endpoints like /api/orchestrate, /api/stories, /api/voice/*, /api/agents) and check for a Turso DB in /api/health. That means the suite is not truly generic and is intended for a particular application (Sandman Tales demo).
Instruction Scope
Runtime instructions and the script perform many HTTP requests (GET/POST) including POSTs that may create data or trigger generation workflows. The instructions do not read local files or environment variables beyond accepting a BASE URL argument. This is appropriate for smoke tests, but you should be aware the tests have side effects (create/orchestrate calls) and assume specific routes/behaviors.
Install Mechanism
There is no install spec (instruction-only with an included example script), so nothing is downloaded or written by an installer. Minor note: the script depends on Python and the 'httpx' library but these dependencies are not declared in metadata.
Credentials
The skill requests no environment variables or credentials and the script does not access system secrets. It uses hard-coded demo credentials in the example and accepts a BASE URL argument; this is proportionate but means you must ensure the target URL is a safe/testing environment.
Persistence & Privilege
The skill does not request permanent presence, does not alter other skills or system settings, and has 'always' false. It only issues outbound HTTP to the configured BASE URL, which matches its stated purpose.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install smoke-test-generator
  3. After installation, invoke the skill by name or use /smoke-test-generator
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release — extracted from Sandman Tales v2 hackathon
Metadata
Slug smoke-test-generator
Version 1.0.0
License
All-time Installs 1
Active Installs 1
Total Versions 1
Frequently Asked Questions

What is Smoke Test Generator?

Generate comprehensive API smoke test suites — categorised tests for auth, CRUD, integrations, cached vs live endpoints, with summary reporting. Use when val... It is an AI Agent Skill for Claude Code / OpenClaw, with 364 downloads so far.

How do I install Smoke Test Generator?

Run "/install smoke-test-generator" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Smoke Test Generator free?

Yes, Smoke Test Generator is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Smoke Test Generator support?

Smoke Test Generator is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Smoke Test Generator?

It is built and maintained by Nissan Dookeran (@nissan); the current version is v1.0.0.

💬 Comments