# jinbriden/mall-transaction-quality architecture

> Architecture diagram of the GitHub repository jinbriden/mall-transaction-quality, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/jinbriden/mall-transaction-quality
- Repository: https://github.com/jinbriden/mall-transaction-quality

## Overview

该仓库是基于固定版本 Mall 门户的交易链路质量保障工程：测试执行下单、支付、取消及并发等场景，再通过 API 结果与数据库状态验证业务不变量。README 还明确列出安全、幂等、数据一致性和性能检查能力。图中连接以已采样的核心实现及 README 明示的职责为依据；未采样测试实现的具体调用关系不作推断。

Main entry points: [`quality-core/src/main/java/io/github/mallquality/http/MallApiClient.java`](https://github.com/jinbriden/mall-transaction-quality/blob/main/quality-core/src/main/java/io/github/mallquality/http/MallApiClient.java) (门户 API 客户端), [`quality-core/src/main/java/io/github/mallquality/db/MallDatabase.java`](https://github.com/jinbriden/mall-transaction-quality/blob/main/quality-core/src/main/java/io/github/mallquality/db/MallDatabase.java) (数据库探针), [`api-tests/src/test/java/io/github/mallquality/tests`](https://github.com/jinbriden/mall-transaction-quality/tree/main/api-tests/src/test/java/io/github/mallquality/tests) (交易测试), [`quality-core/src/main/java/io/github/mallquality/config/TestEnvironment.java`](https://github.com/jinbriden/mall-transaction-quality/blob/main/quality-core/src/main/java/io/github/mallquality/config/TestEnvironment.java) (环境配置)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_execution["测试执行"]
  node_suites["场景与套件"]
  node_transaction_tests["交易测试"]
  node_concurrency_tests["并发测试"]
  node_security_tests["授权测试"]
  node_consistency_tests["一致性测试"]
end

subgraph group_core["测试核心"]
  node_environment_config["环境配置"]
  node_api_client["门户 API 客户端<br/>[MallApiClient.java]"]
  node_capture_filter["交换采集"]
  node_masker["敏感信息脱敏"]
  node_database_probe["数据库探针<br/>[MallDatabase.java]"]
  node_order_snapshot["订单快照<br/>[OrderSnapshot.java]"]
  node_sku_snapshot["库存快照<br/>[SkuSnapshot.java]"]
  node_created_order["创建订单结果<br/>[CreatedOrder.java]"]
end

subgraph group_environment["环境与被测系统"]
  node_portal["Mall 门户 SUT"]
  node_database[("Mall 数据库")]
  node_compose["本地环境编排<br/>[docker-compose.yml]"]
end

subgraph group_performance["性能与修复"]
  node_performance_plan["JMeter 性能场景"]
  node_upstream_patches["交易缺陷补丁"]
end

node_engineer(("测试发起者"))

node_engineer -->|"选择套件"| node_suites
node_suites -->|"运行场景"| node_transaction_tests
node_transaction_tests -->|"调用 API"| node_api_client
node_concurrency_tests -->|"并发请求"| node_api_client
node_security_tests -->|"验证授权"| node_api_client
node_consistency_tests -->|"核对状态"| node_database_probe
node_transaction_tests -->|"检查数据"| node_database_probe
node_environment_config -->|"提供配置"| node_api_client
node_environment_config -->|"提供配置"| node_database_probe
node_api_client -->|"发送请求"| node_portal
node_api_client -->|"应用过滤器"| node_capture_filter
node_capture_filter -->|"脱敏交换"| node_masker
node_api_client -->|"脱敏错误内容"| node_masker
node_database_probe -->|"查询与重置"| node_database
node_database_probe -->|"构造快照"| node_order_snapshot
node_database_probe -->|"构造快照"| node_sku_snapshot
node_api_client -->|"返回订单结果"| node_created_order
node_compose -.->|"编排环境"| node_portal
node_performance_plan -.->|"压测场景"| node_portal
node_upstream_patches -.->|"修复上游缺陷"| node_portal

click node_suites "https://github.com/jinbriden/mall-transaction-quality/tree/main/api-tests/src/test/resources/testng-suites"
click node_transaction_tests "https://github.com/jinbriden/mall-transaction-quality/tree/main/api-tests/src/test/java/io/github/mallquality/tests"
click node_concurrency_tests "https://github.com/jinbriden/mall-transaction-quality/blob/main/api-tests/src/test/java/io/github/mallquality/tests/OversellProtectionTest.java"
click node_security_tests "https://github.com/jinbriden/mall-transaction-quality/blob/main/api-tests/src/test/java/io/github/mallquality/tests/TransactionSecurityTest.java"
click node_consistency_tests "https://github.com/jinbriden/mall-transaction-quality/blob/main/api-tests/src/test/java/io/github/mallquality/tests/TransactionConsistencyTest.java"
click node_environment_config "https://github.com/jinbriden/mall-transaction-quality/blob/main/quality-core/src/main/java/io/github/mallquality/config/TestEnvironment.java"
click node_api_client "https://github.com/jinbriden/mall-transaction-quality/blob/main/quality-core/src/main/java/io/github/mallquality/http/MallApiClient.java"
click node_capture_filter "https://github.com/jinbriden/mall-transaction-quality/blob/main/quality-core/src/main/java/io/github/mallquality/http/ExchangeCaptureFilter.java"
click node_masker "https://github.com/jinbriden/mall-transaction-quality/blob/main/quality-core/src/main/java/io/github/mallquality/http/SensitiveDataMasker.java"
click node_database_probe "https://github.com/jinbriden/mall-transaction-quality/blob/main/quality-core/src/main/java/io/github/mallquality/db/MallDatabase.java"
click node_order_snapshot "https://github.com/jinbriden/mall-transaction-quality/blob/main/quality-core/src/main/java/io/github/mallquality/model/OrderSnapshot.java"
click node_sku_snapshot "https://github.com/jinbriden/mall-transaction-quality/blob/main/quality-core/src/main/java/io/github/mallquality/model/SkuSnapshot.java"
click node_created_order "https://github.com/jinbriden/mall-transaction-quality/blob/main/quality-core/src/main/java/io/github/mallquality/model/CreatedOrder.java"
click node_compose "https://github.com/jinbriden/mall-transaction-quality/blob/main/deploy/docker-compose.yml"
click node_performance_plan "https://github.com/jinbriden/mall-transaction-quality/blob/main/performance/jmeter/mall-transaction-quality.jmx"
click node_upstream_patches "https://github.com/jinbriden/mall-transaction-quality/tree/main/patches"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_suites,node_transaction_tests,node_concurrency_tests,node_security_tests,node_consistency_tests toneBlue
class node_environment_config,node_api_client,node_capture_filter,node_masker,node_database_probe,node_order_snapshot,node_sku_snapshot,node_created_order toneAmber
class node_portal,node_database,node_compose toneMint
class node_performance_plan,node_upstream_patches toneRose
class node_engineer toneIndigo
```

## Components

### 测试执行

- [场景与套件](https://github.com/jinbriden/mall-transaction-quality/tree/main/api-tests/src/test/resources/testng-suites): `api-tests/src/test/resources/testng-suites`
- [交易测试](https://github.com/jinbriden/mall-transaction-quality/tree/main/api-tests/src/test/java/io/github/mallquality/tests): `api-tests/src/test/java/io/github/mallquality/tests`
- [并发测试](https://github.com/jinbriden/mall-transaction-quality/blob/main/api-tests/src/test/java/io/github/mallquality/tests/OversellProtectionTest.java): `api-tests/src/test/java/io/github/mallquality/tests/OversellProtectionTest.java`
- [授权测试](https://github.com/jinbriden/mall-transaction-quality/blob/main/api-tests/src/test/java/io/github/mallquality/tests/TransactionSecurityTest.java): `api-tests/src/test/java/io/github/mallquality/tests/TransactionSecurityTest.java`
- [一致性测试](https://github.com/jinbriden/mall-transaction-quality/blob/main/api-tests/src/test/java/io/github/mallquality/tests/TransactionConsistencyTest.java): `api-tests/src/test/java/io/github/mallquality/tests/TransactionConsistencyTest.java`

### 测试核心

- [环境配置](https://github.com/jinbriden/mall-transaction-quality/blob/main/quality-core/src/main/java/io/github/mallquality/config/TestEnvironment.java): `quality-core/src/main/java/io/github/mallquality/config/TestEnvironment.java`
- [门户 API 客户端](https://github.com/jinbriden/mall-transaction-quality/blob/main/quality-core/src/main/java/io/github/mallquality/http/MallApiClient.java): `quality-core/src/main/java/io/github/mallquality/http/MallApiClient.java`
- [交换采集](https://github.com/jinbriden/mall-transaction-quality/blob/main/quality-core/src/main/java/io/github/mallquality/http/ExchangeCaptureFilter.java): `quality-core/src/main/java/io/github/mallquality/http/ExchangeCaptureFilter.java`
- [敏感信息脱敏](https://github.com/jinbriden/mall-transaction-quality/blob/main/quality-core/src/main/java/io/github/mallquality/http/SensitiveDataMasker.java): `quality-core/src/main/java/io/github/mallquality/http/SensitiveDataMasker.java`
- [数据库探针](https://github.com/jinbriden/mall-transaction-quality/blob/main/quality-core/src/main/java/io/github/mallquality/db/MallDatabase.java): `quality-core/src/main/java/io/github/mallquality/db/MallDatabase.java`
- [订单快照](https://github.com/jinbriden/mall-transaction-quality/blob/main/quality-core/src/main/java/io/github/mallquality/model/OrderSnapshot.java): `quality-core/src/main/java/io/github/mallquality/model/OrderSnapshot.java`
- [库存快照](https://github.com/jinbriden/mall-transaction-quality/blob/main/quality-core/src/main/java/io/github/mallquality/model/SkuSnapshot.java): `quality-core/src/main/java/io/github/mallquality/model/SkuSnapshot.java`
- [创建订单结果](https://github.com/jinbriden/mall-transaction-quality/blob/main/quality-core/src/main/java/io/github/mallquality/model/CreatedOrder.java): `quality-core/src/main/java/io/github/mallquality/model/CreatedOrder.java`

### 环境与被测系统

- **Mall 门户 SUT**
- **Mall 数据库**
- [本地环境编排](https://github.com/jinbriden/mall-transaction-quality/blob/main/deploy/docker-compose.yml): `deploy/docker-compose.yml`

### 性能与修复

- [JMeter 性能场景](https://github.com/jinbriden/mall-transaction-quality/blob/main/performance/jmeter/mall-transaction-quality.jmx): `performance/jmeter/mall-transaction-quality.jmx`
- [交易缺陷补丁](https://github.com/jinbriden/mall-transaction-quality/tree/main/patches): `patches`

### Other components

- **测试发起者**

## Connections

- 测试发起者 → 场景与套件: 选择套件
- 场景与套件 → 交易测试: 运行场景
- 交易测试 → 门户 API 客户端: 调用 API
- 并发测试 → 门户 API 客户端: 并发请求
- 授权测试 → 门户 API 客户端: 验证授权
- 一致性测试 → 数据库探针: 核对状态
- 交易测试 → 数据库探针: 检查数据
- 环境配置 → 门户 API 客户端: 提供配置
- 环境配置 → 数据库探针: 提供配置
- 门户 API 客户端 → Mall 门户 SUT: 发送请求
- 门户 API 客户端 → 交换采集: 应用过滤器
- 交换采集 → 敏感信息脱敏: 脱敏交换
- 门户 API 客户端 → 敏感信息脱敏: 脱敏错误内容
- 数据库探针 → Mall 数据库: 查询与重置
- 数据库探针 → 订单快照: 构造快照
- 数据库探针 → 库存快照: 构造快照
- 门户 API 客户端 → 创建订单结果: 返回订单结果
- 本地环境编排 → Mall 门户 SUT: 编排环境
- JMeter 性能场景 → Mall 门户 SUT: 压测场景
- 交易缺陷补丁 → Mall 门户 SUT: 修复上游缺陷
