testzeus-tags#

Organize and categorize tests with tags in TestZeus.

Category: data · Version: 1.0.0 · Requires: testzeus-auth

Triggers: tag, tags, organize, label, filter by tag, add tag, create tag, tagging, categorize tests

Overview#

Tags in TestZeus help organize and categorize tests for easy filtering, grouping, and execution. Tags can be simple labels or key-value pairs.

Quick Reference#

# Create tag
testzeus tags create --name "regression" --value "suite"

# List tags
testzeus tags list

# Get tag
testzeus tags get tag_id

# Update tag
testzeus tags update tag_id --name "critical" --value "p0"

# Delete tag
testzeus tags delete "tag-name"

# Use in tests
testzeus tests create --name "Test" --tags regression --tags smoke

# Filter by tag
testzeus tests list --filters tags?="smoke"

# Run by tag
testzeus test-run-group execute --name "Smoke" --tags smoke

Tag Types#

Simple Tags#

# Tag with name only
testzeus tags create --name "smoke"
testzeus tags create --name "regression"
testzeus tags create --name "e2e"

Key-Value Tags#

# Tag with name and value
testzeus tags create --name "priority" --value "high"
testzeus tags create --name "priority" --value "medium"
testzeus tags create --name "priority" --value "low"

testzeus tags create --name "suite" --value "checkout"
testzeus tags create --name "suite" --value "login"

Create Tags#

Basic Creation#

# Simple tag
testzeus tags create --name "smoke"

# Key-value tag
testzeus tags create --name "priority" --value "high"

# Tag for test type
testzeus tags create --name "type" --value "integration"

# Tag for feature area
testzeus tags create --name "feature" --value "checkout"

Tag Naming Conventions#

Convention

Example

Use Case

type

type=smoke

Test category

priority

priority=high

Execution priority

feature

feature=checkout

Feature area

env

env=staging

Environment

suite

suite=regression

Test suite

Manage Tags#

List Tags#

# List all tags
testzeus tags list

# Filter by name
testzeus tags list --filters name=test

# Get tag details
testzeus tags get tag_id

Update Tags#

# Update tag value
testzeus tags update tag_id --name "priority" --value "critical"

# Rename tag
testzeus tags update tag_id --name "new-name"

Delete Tags#

# Delete by name
testzeus tags delete "smoke"

# Delete by ID
testzeus tags delete tag_id

Use Tags with Tests#

Create Test with Tags#

# Single tag
testzeus tests create \
  --name "Login Test" \
  --feature-file ./login.feature \
  --tags smoke

# Multiple tags
testzeus tests create \
  --name "Checkout Test" \
  --feature-file ./checkout.feature \
  --tags regression \
  --tags e2e \
  --tags priority-high

# Key-value tags
testzeus tests create \
  --name "Payment Test" \
  --feature-file ./payment.feature \
  --tags priority-high \
  --tags feature-payment \
  --tags type-integration

Update Test Tags#

# Add tags
testzeus tests update test_id --tags new-tag

# Replace all tags
testzeus tests update test_id \
  --tags smoke \
  --tags regression

List Tests by Tag#

# Filter by single tag
testzeus tests list --filters tags?="smoke"

# Filter by tag value
testzeus tests list --filters tags?="priority-high"

# Multiple tag filter (AND)
testzeus tests list --filters tags?="smoke" --filters tags?="regression"

Run Tests by Tag#

Execute Tag Group#

# Run all smoke tests
testzeus test-run-group execute \
  --name "Smoke Tests" \
  --tags smoke

# Run regression tests
testzeus test-run-group execute \
  --name "Regression Suite" \
  --tags regression

# Run priority-high tests
testzeus test-run-group execute \
  --name "Critical Tests" \
  --tags priority-high

Multiple Tags#

# Run smoke AND regression tests
testzeus test-run-group execute \
  --name "Critical Smoke" \
  --tags smoke \
  --tags regression

# Run any of the tags (OR behavior)
testzeus test-run-group execute \
  --name "Multi-Category" \
  --tags smoke,e2e,integration

Tag Best Practices#

1. Consistent Naming#

# Good
testzeus tags create --name "type" --value "smoke"
testzeus tags create --name "type" --value "regression"

# Avoid
testzeus tags create --name "smoke_test"
testzeus tags create --name "smoke-tests"
testzeus tags create --name "SmokeTests"

2. Hierarchical Tags#

type:smoke
type:regression
type:integration

priority:high
priority:medium
priority:low

feature:checkout
feature:login
feature:search

3. Meaningful Values#

# Good
testzeus tags create --name "priority" --value "p0"
testzeus tags create --name "priority" --value "p1"
testzeus tags create --name "priority" --value "p2"

# Avoid
testzeus tags create --name "priority" --value "1"
testzeus tags create --name "priority" --value "a"

Common Workflows#

Setup Regression Suite#

# 1. Create tags
testzeus tags create --name "suite" --value "regression"
testzeus tags create --name "type" --value "e2e"

# 2. Tag existing tests
testzeus tests update test_id --tags suite-regression

# 3. Run by tag
testzeus test-run-group execute \
  --name "Regression Suite" \
  --tags suite-regression

CI/CD Pipeline#

# 1. Create CI tags
testzeus tags create --name "ci" --value "required"
testzeus tags create --name "ci" --value "optional"

# 2. Tag tests
testzeus tests update critical_test --tags ci-required
testzeus tests update nice_test --tags ci-optional

# 3. Run required tests in CI
testzeus test-run-group execute \
  --name "CI Required" \
  --tags ci-required

Feature Branches#

# 1. Create branch tag
testzeus tags create --name "branch" --value "feature-new-checkout"

# 2. Tag feature tests
testzeus tests update checkout_test --tags branch-feature-new-checkout

# 3. Run branch tests
testzeus test-run-group execute \
  --name "Feature Tests" \
  --tags branch-feature-new-checkout

SDK Usage#

from testzeus_sdk import TestZeusClient

async def main():
    async with TestZeusClient() as client:
        # Create tag
        tag = await client.tags.create({
            "name": "priority",
            "value": "high"
        })
        
        # List tags
        tags = await client.tags.get_list()
        
        # Create test with tags
        test = await client.tests.create(
            name="Critical Test",
            test_feature="Feature: ...",
            tags=["priority-high", "smoke"]
        )
        
        # Filter tests by tag
        smoke_tests = await client.tests.get_list(
            filters={"tags": {"operator": "?=", "value": "smoke"}}
        )
        
        # Run by tag
        run = await client.test_run_groups.create_and_execute(
            name="Smoke Suite",
            tags=["smoke"]
        )

Error Handling#

Common Errors#

Error

Cause

Solution

Tag not found

Wrong name

List tags first

Duplicate tag

Tag exists

Use existing tag

Tag in use

Tests using tag

Remove from tests first

Tag Conflicts#

# Check if tag is in use
testzeus tests list --filters tags?="tag-name"

# If in use, remove from tests first
testzeus tests update test_id --tags ""

Component Schema#

Use TagChip component:

{
  "component": "TagChip",
  "props": {
    "name": "smoke",
    "value": null,
    "color": "blue"
  }
}
{
  "component": "TagChip",
  "props": {
    "name": "priority",
    "value": "high",
    "color": "red"
  }
}