ワンクリックで
e2e-testing
Run E2E tests for Auth9 portal using Playwright with hybrid testing strategy.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Run E2E tests for Auth9 portal using Playwright with hybrid testing strategy.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | e2e-testing |
| description | Run E2E tests for Auth9 portal using Playwright with hybrid testing strategy. |
| Type | Directory | Target | Requirements | Purpose |
|---|---|---|---|---|
| Frontend isolation | tests/e2e/ | localhost:5173 | Vite dev only | UI rendering |
| Full-stack integration | tests/e2e-integration/ | localhost:3000 | Docker + all services | Login, API |
cd auth9-portal
# Full-stack tests (ALWAYS use reset)
npm run test:e2e:full:reset # Reset env + run tests (recommended)
npm run test:e2e:full # Run only (requires services)
npm run test:e2e:full -- --ui # With UI mode
npm run test:e2e:full -- --headed # See browser
# Frontend isolation tests (fast, no Docker)
npm run test:e2e
npm run test:e2e:ui
ALWAYS use test:e2e:full:reset for full-stack tests:
auth9-portal/tests/
├── e2e/ # Frontend isolation
│ └── login.spec.ts
└── e2e-integration/ # Full-stack
├── auth-flow.spec.ts
├── global-setup.ts # Creates test users
└── setup/
└── test-config.ts # URLs, credentials
// tests/e2e-integration/setup/test-config.ts
export const TEST_CONFIG = {
portalUrl: "http://localhost:3000",
auth9CoreUrl: "http://localhost:8080",
testUsers: {
standard: { username: "e2e-test-user", password: "TestPass1234!" },
admin: { username: "e2e-admin-user", password: "SecurePass123!" },
},
};
import { test, expect } from "@playwright/test";
import { TEST_CONFIG } from "./setup/test-config";
test.describe("Scenario: User Login", () => {
const testUser = TEST_CONFIG.testUsers.standard;
test("1. User can login", async ({ page }) => {
await page.goto("/login");
await page.getByRole("button", { name: /sign in/i }).click();
await page.waitForURL(/\/realms\/auth9/);
await page.getByLabel(/username/i).fill(testUser.username);
await page.getByLabel(/password/i).fill(testUser.password);
await page.getByRole("button", { name: /sign in/i }).click();
await page.waitForURL(/localhost:3000/);
});
});
test("Health endpoint accessible", async ({ request }) => {
const response = await request.get(`${TEST_CONFIG.auth9CoreUrl}/health`);
expect(response.ok()).toBeTruthy();
});
| Issue | Solution |
|---|---|
| Services not ready | docker-compose logs, ./scripts/reset-docker.sh |
| Dirty data failures | Always use test:e2e:full:reset |
| Login failures | Check auth9-oidc logs, verify test user exists |
npx playwright show-report playwright-report # Frontend tests
npx playwright show-report playwright-report-full # Full-stack tests
Run tests, check logs, and troubleshoot Auth9 services in Docker and Kubernetes environments.
Run performance benchmarks for auth9-core API using hey load testing tool.
Execute scenario-based QA testing with browser automation, database validation, and automatic ticket creation for failures.
Reset Auth9 local Docker development environment to a clean state.
Rust coding conventions and patterns for auth9-core development.
Run tests and check coverage for Auth9 backend, frontend, and SDK with mock-based testing patterns.