How youngyangyang04/test-automation-framework works
This repository is a Pytest-based API automation framework. A tester runs YAML-defined single-interface or business-flow cases; fixtures and request utilities load and parameterize cases, send HTTP requests, extract values for later cases, and assert responses. Supporting layers provide configuration, logging, data helpers, and database access; an included Flask mock service supplies test endpoints. The README documents CI execution and result reporting, while some case-runner and integration wiring is not sampled, so those links are marked unverified where appropriate.
Main entry points: conftest.py Case fixtures · apiutil.py Single API executor · sendrequest.py HTTP requests · debugtalk.py Value helpers
Components 26
Case execution
- Pytest runner
run.py - Single API cases
testcase/Single interface - Business cases
testcase/Business interface - Case fixtures
testcase/conftest.py
Request runtime
- Single API executor
base/apiutil.py - Business executor
base/apiutil_business.py - HTTP requests
common/sendrequest.py - YAML data
common/readyaml.py - Response assertions
common/assertions.py
Framework support
- Value helpers
common/debugtalk.py - CSV helpers
common/operationcsv.py - Data shaping
common/two_dimension_data.py - INI configuration
conf/operationConfig.py - Runtime settings
conf/setting.py - Logging
common/recordlog.py - Database connectors
common/connection.py - Report cleanup
base/removefile.py - DingTalk notification
common/dingRobot.py
Mock API
- Mock endpoints
mock_server/api_server/base/flask_service.py - Mock settings
mock_server/api_server/confs/setting.py - Mock data files
mock_server/api_server/data/mockdata
Other components
- Tester
- Tested API
- Allure reporting
- CI system
- Database service
Connections 36
- Tester → Pytest runner: runs
README.md - Pytest runner → Case fixtures: loads fixtures
- Single API cases → Case fixtures: provides cases
- Business cases → Case fixtures: provides cases
- Case fixtures → Single API executor: invokes
testcase/conftest.py - Case fixtures → YAML data: reads cases
testcase/conftest.py - Case fixtures → Database connectors: accesses
testcase/conftest.py - Single API executor → HTTP requests: sends requests
base/apiutil.py - Single API executor → YAML data: reads and writes
base/apiutil.py - Single API executor → Response assertions: checks responses
base/apiutil.py - Single API executor → Value helpers: resolves parameters
base/apiutil.py - Business executor → HTTP requests: sends requests
base/apiutil_business.py - Business executor → YAML data: reads and writes
base/apiutil_business.py - Business executor → Response assertions: checks responses
base/apiutil_business.py - Business executor → Value helpers: resolves parameters
base/apiutil_business.py - HTTP requests → Tested API: sends HTTP
common/sendrequest.py - HTTP requests → YAML data: reads data
common/sendrequest.py - HTTP requests → Logging: logs failures
common/sendrequest.py - Response assertions → Database connectors: queries database
common/assertions.py - Response assertions → Logging: logs outcomes
common/assertions.py - Value helpers → YAML data: reads extracted values
common/debugtalk.py - Value helpers → CSV helpers: uses CSV helpers
common/debugtalk.py - Value helpers → INI configuration: reads configuration
common/debugtalk.py - Database connectors → INI configuration: loads connection settings
common/connection.py - Database connectors → Data shaping: uses data shaping
common/connection.py - Database connectors → Database service: connects to
- INI configuration → Runtime settings: reads paths
conf/operationConfig.py - INI configuration → Logging: logs errors
conf/operationConfig.py - Logging → Runtime settings: uses log settings
common/recordlog.py - Case fixtures → Report cleanup: cleans reports
- Case fixtures → DingTalk notification: may notify
- Pytest runner → Allure reporting: produces results
README.md - CI system → Pytest runner: runs tests
README.md - Tested API → Mock endpoints: may be simulated by
- Mock endpoints → Mock settings: loads settings
mock_server/api_server/base/flask_service.py - Mock endpoints → Mock data files: reads and writes