RunnerGo Documentation

repository·main·Indexed 21 days ago

https://github.com/runner-go-team/runnergo

An integrated, full-stack performance and automation testing platform written in Go. RunnerGo provides tools for API testing, visual scenario automation via Flow Scenario Streams, high-concurrency stress testing with real-time monitoring, and mock services. It supports multiple stress test modes including Concurrency, Staircase, and RPS, and can be deployed as a microservices stack using Docker Compose.

Tokens
1.5K
Snippets
2
Records
6
Agent score
24%

What's inside RunnerGo

  1. Overview of RunnerGo

    main

    RunnerGo is an all-in-one performance testing platform developed in Go. It is designed to empower R&D teams by simplifying testing processes through a full-stack testing platform.

    Key capabilities include:

    • Interface Testing: Automated testing of APIs.
    • Scenario Automation: Visual business flow construction using 'Flow场景流' (Flow Scenario Streams) where users can connect nodes to build business logic.
    • Performance Testing: High-performance stress testing with various modes.
    • Mock Services: Support for custom request validation and response expectations.
    • Enterprise Management: Multi-team management with permission settings to secure company data and resources.
  2. RunnerGo Performance Testing Features

    main

    RunnerGo provides several advanced features for performance and stress testing:

    • Multiple Stress Test Modes: Supports Concurrency mode, Staircase mode, Error Rate mode, Response Time mode, Requests Per Second (RPS) mode, and Round mode. It also supports custom distribution configurations based on machine capabilities.
    • Real-time Control: You can modify concurrency numbers and duration in real-time while a test is running.
    • Real-time Monitoring:
      • Real-time Reports: View execution results and diagnose service issues immediately.
      • Rich Charts: Comprehensive visualization of various metric curves.
      • Real-time Logs: Enable log mode during testing to view request/response information.
    • Editable Reports: After a task completes, you can perform analysis and write reports directly within the platform.
    • Smart Scheduling: Uses a proprietary scheduling algorithm to optimize server resource utilization and minimize overhead.
  3. Deploy RunnerGo using Docker Compose

    main

    RunnerGo can be deployed as a full stack of microservices using Docker Compose. The deployment includes databases (MySQL, Redis, MongoDB), management services, the execution engine, a collector, Kafka, Zookeeper, and various UI components.

    All services are connected via the apipost_net bridge network. Most services rely on a local ./config.env file for environment-specific configuration.

    To deploy, ensure you have a ./config.env file present in your directory and run docker-compose up -d.

    docker-compose up -d
  4. Reference the RunnerGo Docker Compose service mapping

    main

    The following table lists the services, their container images, and the host ports exposed for external access. Note that most services use a local ./config.env file for configuration.

    services:
      mysql-db:
        image: registry.cn-beijing.aliyuncs.com/runnergo/mysql:5.7.40.v1
        ports: ["3307:3306"]
      redis-db:
        image: registry.cn-beijing.aliyuncs.com/runnergo/redis:6.2.7
        ports: ["6380:6379"]
      mongo-db:
        image: registry.cn-beijing.aliyuncs.com/runnergo/mongo:4.4
        ports: ["27018:27017"]
      manage:
        image: registry.cn-beijing.aliyuncs.com/runnergo/manage:releases-v3.0.1
        ports: ["58889:30000"]
      manage-ws:
        image: registry.cn-beijing.aliyuncs.com/runnergo/manage-ws:releases-v3.0.0
        ports: ["58887:30000"]
      web-ui:
        image: registry.cn-beijing.aliyuncs.com/runnergo/web-ui:releases-v3.0.1
        ports: ["9999:81", "58888:82"]
      engine:
        image: registry.cn-beijing.aliyuncs.com/runnergo/engine:releases-v2.0.6
      engine-ui:
        image: registry.cn-beijing.aliyuncs.com/runnergo/engine-ui-ee:releases-v1.0.0-beta
      file-server:
        image: registry.cn-beijing.aliyuncs.com/runnergo/file-server:releases-v1.0.1
      zookeeper:
        image: registry.cn-beijing.aliyuncs.com/runnergo/zookeeper:latest
      kafka:
        image: registry.cn-beijing.aliyuncs.com/runnergo/kafka:2.13-3.2.1
      collector:
        image: registry.cn-beijing.aliyuncs.com/runnergo/collector:releases-v2.0.1
      admin-fe:
        image: registry.cn-beijing.aliyuncs.com/runnergo/admin-fe:releases-v2.0.0
        ports: ["9998:81"]
      permission:
        image: registry.cn-beijing.aliyuncs.com/runnergo/permission:releases-v2.0.1
        ports: ["58890:30000"]
      mock:
        image: registry.cn-beijing.aliyuncs.com/runnergo/mock:releases-v2.0.0
        ports: ["58900:30000", "58901:30001", "58903:30003"]