This commit is contained in:
gongwenxin 2025-05-29 16:39:47 +08:00
parent 72a52826e6
commit 800efa78ef
4 changed files with 4205 additions and 4235 deletions

View File

@ -1,19 +1,17 @@
# pyinstaller --name ddms_compliance_tool --onefile main.py # pyinstaller --name ddms_compliance_tool --onefile main.py
build: # build:
pyinstaller --name ddms_compliance_tool --onefile run_api_tests.py # pyinstaller --name ddms_compliance_tool --onefile run_api_tests.py
run: run:
python run_api_tests.py --base-url http://127.0.0.1:4523/m1/6389742-6086420-default --yapi assets/doc/井筒API示例_simple.json --custom-test-cases-dir ./custom_testcases \ python run_api_tests.py --base-url http://127.0.0.1:4523/m1/6389742-6086420-default --yapi assets/doc/井筒API示例_simple.json --custom-test-cases-dir ./custom_testcases \
--verbose \ --verbose \
--output test_report.json >log.txt 2>&1 --output test_report.json >log.txt 2>&1
docker_build:
docker run --platform linux/amd64 --rm -v "$(pwd)":/app -w /app amd64/python:3.9-slim-bullseye sh -c "apt-get update && apt-get install -y binutils && pip install --no-cache-dir -r requirements.txt || true && pip install --no-cache-dir pyinstaller && pyinstaller --onefile --noconfirm run_api_tests.py && ./dist/run_api_tests --base-url http://host.docker.internal:4523/m1/6389742-6086420-default --yapi assets/doc/井筒API示例_simple.json --custom-test-cases-dir ./custom_testcases --verbose --output test_report1.json > ./dist/output.txt 2>&1 && chown -R $(id -u):$(id -g) dist build run_api_tests.spec || true"
docker_build_redhat: docker_build_redhat:
docker run --platform linux/amd64 --rm -v "$(pwd)":/app -w /app registry.access.redhat.com/ubi8/python-39 sh -c "pip3 install --no-cache-dir -r requirements.txt || true && pip3 install --no-cache-dir pyinstaller && pyinstaller --onefile --noconfirm run_api_tests.py && ./dist/run_api_tests --base-url http://host.docker.internal:4523 > ./dist/output.txt 2>&1 && chown -R $(id -u):$(id -g) dist build run_api_tests.spec || true" docker run --platform linux/amd64 --rm -v "$(pwd)":/app -w /app registry.access.redhat.com/ubi8/python-39 sh -c "pip3 install --no-cache-dir -r requirements.txt || true && pip3 install --no-cache-dir pyinstaller && pyinstaller --onefile --noconfirm run_api_tests.py && ./dist/run_api_tests --base-url http://host.docker.internal:4523 > ./dist/output.txt 2>&1 && chown -R $(id -u):$(id -g) dist build run_api_tests.spec || true"
docker_build_centos: # docker_build_centos:
docker run --platform linux/amd64 --rm \ docker run --platform linux/amd64 --rm \
-v "$(pwd)":/app -w /app \ -v "$(pwd)":/app -w /app \
centos:8 \ centos:8 \

File diff suppressed because it is too large Load Diff

4650
log.txt

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,8 @@
{ {
"summary_metadata": { "summary_metadata": {
"start_time": "2025-05-28T17:59:13.671258", "start_time": "2025-05-29T16:38:51.856094",
"end_time": "2025-05-28T17:59:14.471277", "end_time": "2025-05-29T16:38:53.182703",
"duration_seconds": "0.80" "duration_seconds": "1.33"
}, },
"endpoint_stats": { "endpoint_stats": {
"total_defined": 6, "total_defined": 6,
@ -28,9 +28,9 @@
"endpoint_id": "POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}", "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}",
"endpoint_name": "数据推送接口", "endpoint_name": "数据推送接口",
"overall_status": "失败", "overall_status": "失败",
"duration_seconds": 0.206858, "duration_seconds": 0.578975,
"start_time": "2025-05-28T17:59:13.671568", "start_time": "2025-05-29T16:38:51.856404",
"end_time": "2025-05-28T17:59:13.878426", "end_time": "2025-05-29T16:38:52.435379",
"executed_test_cases": [ "executed_test_cases": [
{ {
"test_case_id": "TC-STATUS-001", "test_case_id": "TC-STATUS-001",
@ -38,8 +38,8 @@
"test_case_severity": "严重", "test_case_severity": "严重",
"status": "通过", "status": "通过",
"message": "响应状态码为 200符合预期 200。", "message": "响应状态码为 200符合预期 200。",
"duration_seconds": 0.08009795797988772, "duration_seconds": 0.31512458296492696,
"timestamp": "2025-05-28T17:59:13.751743", "timestamp": "2025-05-29T16:38:52.171611",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -53,8 +53,8 @@
"test_case_severity": "严重", "test_case_severity": "严重",
"status": "通过", "status": "通过",
"message": "Schema验证步骤完成未发现问题或schema不适用/未为此响应定义)。", "message": "Schema验证步骤完成未发现问题或schema不适用/未为此响应定义)。",
"duration_seconds": 0.03352837497368455, "duration_seconds": 0.0580080000218004,
"timestamp": "2025-05-28T17:59:13.785376", "timestamp": "2025-05-29T16:38:52.229929",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -68,8 +68,8 @@
"test_case_severity": "严重", "test_case_severity": "严重",
"status": "失败", "status": "失败",
"message": "API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version) 响应了成功的状态码 200这违反了HTTPS强制策略。", "message": "API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/message/push/example_schema/example_version) 响应了成功的状态码 200这违反了HTTPS强制策略。",
"duration_seconds": 0.021860582986846566, "duration_seconds": 0.047522042179480195,
"timestamp": "2025-05-28T17:59:13.807302", "timestamp": "2025-05-29T16:38:52.277613",
"validation_points": [ "validation_points": [
{ {
"status_code": 200 "status_code": 200
@ -82,8 +82,8 @@
"test_case_severity": "中", "test_case_severity": "中",
"status": "通过", "status": "通过",
"message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。",
"duration_seconds": 0.017771000042557716, "duration_seconds": 0.08462537499144673,
"timestamp": "2025-05-28T17:59:13.825130", "timestamp": "2025-05-29T16:38:52.362387",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -96,28 +96,21 @@
"test_case_name": "Error Code 4001 - Request Body Type Mismatch Validation", "test_case_name": "Error Code 4001 - Request Body Type Mismatch Validation",
"test_case_severity": "中", "test_case_severity": "中",
"status": "失败", "status": "失败",
"message": "当请求体字段 'isSearchCount' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '67'.", "message": "当请求体字段 'isSearchCount' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '5'.",
"duration_seconds": 0.017901666928082705, "duration_seconds": 0.024353125132620335,
"timestamp": "2025-05-28T17:59:13.843088", "timestamp": "2025-05-29T16:38:52.387005",
"validation_points": [ "validation_points": [
{ {
"status_code": 200, "status_code": 200,
"response_body": { "response_body": {
"code": 67, "code": 5,
"message": "dolor Lorem", "message": "Excepteur consectetur labore tempor",
"data": { "data": {
"total": 17, "total": 48,
"list": [ "list": [
{ {
"dsid": "23", "dsid": "77",
"dataRegion": "occaecat pariatur tempor labore", "dataRegion": "sed laborum et dolor",
"gasReleaseMon": null,
"gasReleaseYear": null,
"releaseGasCum": null
},
{
"dsid": "98",
"dataRegion": "in Ut qui reprehenderit",
"gasReleaseMon": null, "gasReleaseMon": null,
"gasReleaseYear": null, "gasReleaseYear": null,
"releaseGasCum": null "releaseGasCum": null
@ -140,8 +133,8 @@
"test_case_severity": "高", "test_case_severity": "高",
"status": "通过", "status": "通过",
"message": "跳过测试在API规范中未找到合适的必填请求体字段用于移除测试。", "message": "跳过测试在API规范中未找到合适的必填请求体字段用于移除测试。",
"duration_seconds": 0.017153542023152113, "duration_seconds": 0.02168962499126792,
"timestamp": "2025-05-28T17:59:13.860296", "timestamp": "2025-05-29T16:38:52.408822",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -155,8 +148,8 @@
"test_case_severity": "高", "test_case_severity": "高",
"status": "通过", "status": "通过",
"message": "跳过测试在API规范中未找到合适的必填查询参数用于移除测试。", "message": "跳过测试在API规范中未找到合适的必填查询参数用于移除测试。",
"duration_seconds": 0.017964709084481, "duration_seconds": 0.026100416900590062,
"timestamp": "2025-05-28T17:59:13.878330", "timestamp": "2025-05-29T16:38:52.435209",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -170,9 +163,9 @@
"endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}", "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}",
"endpoint_name": "地质单元列表查询", "endpoint_name": "地质单元列表查询",
"overall_status": "失败", "overall_status": "失败",
"duration_seconds": 0.132677, "duration_seconds": 0.192345,
"start_time": "2025-05-28T17:59:13.878512", "start_time": "2025-05-29T16:38:52.435520",
"end_time": "2025-05-28T17:59:14.011189", "end_time": "2025-05-29T16:38:52.627865",
"executed_test_cases": [ "executed_test_cases": [
{ {
"test_case_id": "TC-STATUS-001", "test_case_id": "TC-STATUS-001",
@ -180,8 +173,8 @@
"test_case_severity": "严重", "test_case_severity": "严重",
"status": "通过", "status": "通过",
"message": "响应状态码为 200符合预期 200。", "message": "响应状态码为 200符合预期 200。",
"duration_seconds": 0.021538167027756572, "duration_seconds": 0.028909082990139723,
"timestamp": "2025-05-28T17:59:13.900275", "timestamp": "2025-05-29T16:38:52.464841",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -195,8 +188,8 @@
"test_case_severity": "严重", "test_case_severity": "严重",
"status": "通过", "status": "通过",
"message": "Schema验证步骤完成未发现问题或schema不适用/未为此响应定义)。", "message": "Schema验证步骤完成未发现问题或schema不适用/未为此响应定义)。",
"duration_seconds": 0.024534499971196055, "duration_seconds": 0.01859383308328688,
"timestamp": "2025-05-28T17:59:13.924870", "timestamp": "2025-05-29T16:38:52.483729",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -210,8 +203,8 @@
"test_case_severity": "严重", "test_case_severity": "严重",
"status": "失败", "status": "失败",
"message": "API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0) 响应了成功的状态码 200这违反了HTTPS强制策略。", "message": "API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0) 响应了成功的状态码 200这违反了HTTPS强制策略。",
"duration_seconds": 0.018628000048920512, "duration_seconds": 0.021226000040769577,
"timestamp": "2025-05-28T17:59:13.943551", "timestamp": "2025-05-29T16:38:52.505199",
"validation_points": [ "validation_points": [
{ {
"status_code": 200 "status_code": 200
@ -223,35 +216,21 @@
"test_case_name": "Error Code 4001 - Query Parameter Type Mismatch Validation", "test_case_name": "Error Code 4001 - Query Parameter Type Mismatch Validation",
"test_case_severity": "中", "test_case_severity": "中",
"status": "失败", "status": "失败",
"message": "当查询参数 'pageNo' (路径: 'pageNo') 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '81'.", "message": "当查询参数 'pageNo' (路径: 'pageNo') 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '24'.",
"duration_seconds": 0.017331124981865287, "duration_seconds": 0.028693499974906445,
"timestamp": "2025-05-28T17:59:13.960937", "timestamp": "2025-05-29T16:38:52.534166",
"validation_points": [ "validation_points": [
{ {
"status_code": 200, "status_code": 200,
"response_body": { "response_body": {
"code": 81, "code": 24,
"message": "do", "message": "incididunt esse",
"data": { "data": {
"total": 16, "total": 81,
"list": [ "list": [
{ {
"dsid": "48", "dsid": "56",
"dataRegion": "id ex aute dolore laboris", "dataRegion": "anim proident adipisicing sit",
"gasReleaseMon": null,
"gasReleaseYear": null,
"releaseGasCum": null
},
{
"dsid": "89",
"dataRegion": "do culpa magna Duis",
"gasReleaseMon": null,
"gasReleaseYear": null,
"releaseGasCum": null
},
{
"dsid": "21",
"dataRegion": "non elit",
"gasReleaseMon": null, "gasReleaseMon": null,
"gasReleaseYear": null, "gasReleaseYear": null,
"releaseGasCum": null "releaseGasCum": null
@ -273,21 +252,21 @@
"test_case_name": "Error Code 4001 - Request Body Type Mismatch Validation", "test_case_name": "Error Code 4001 - Request Body Type Mismatch Validation",
"test_case_severity": "中", "test_case_severity": "中",
"status": "失败", "status": "失败",
"message": "当请求体字段 'isSearchCount' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '64'.", "message": "当请求体字段 'isSearchCount' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '46'.",
"duration_seconds": 0.017100458033382893, "duration_seconds": 0.023574707796797156,
"timestamp": "2025-05-28T17:59:13.978086", "timestamp": "2025-05-29T16:38:52.558008",
"validation_points": [ "validation_points": [
{ {
"status_code": 200, "status_code": 200,
"response_body": { "response_body": {
"code": 64, "code": 46,
"message": "cupidatat Lorem", "message": "sint in quis fugiat",
"data": { "data": {
"total": 16, "total": 56,
"list": [ "list": [
{ {
"dsid": "96", "dsid": "47",
"dataRegion": "velit id", "dataRegion": "in id non qui",
"gasReleaseMon": null, "gasReleaseMon": null,
"gasReleaseYear": null, "gasReleaseYear": null,
"releaseGasCum": null "releaseGasCum": null
@ -310,8 +289,8 @@
"test_case_severity": "高", "test_case_severity": "高",
"status": "通过", "status": "通过",
"message": "跳过测试在API规范中未找到合适的必填请求体字段用于移除测试。", "message": "跳过测试在API规范中未找到合适的必填请求体字段用于移除测试。",
"duration_seconds": 0.015624208841472864, "duration_seconds": 0.019619707949459553,
"timestamp": "2025-05-28T17:59:13.993772", "timestamp": "2025-05-29T16:38:52.577781",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -325,8 +304,8 @@
"test_case_severity": "高", "test_case_severity": "高",
"status": "通过", "status": "通过",
"message": "跳过测试在API规范中未找到合适的必填查询参数用于移除测试。", "message": "跳过测试在API规范中未找到合适的必填查询参数用于移除测试。",
"duration_seconds": 0.017309916904196143, "duration_seconds": 0.04977562488056719,
"timestamp": "2025-05-28T17:59:14.011145", "timestamp": "2025-05-29T16:38:52.627767",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -340,9 +319,9 @@
"endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit", "endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit",
"endpoint_name": "地质单元数据修改", "endpoint_name": "地质单元数据修改",
"overall_status": "失败", "overall_status": "失败",
"duration_seconds": 0.110519, "duration_seconds": 0.199101,
"start_time": "2025-05-28T17:59:14.011219", "start_time": "2025-05-29T16:38:52.627944",
"end_time": "2025-05-28T17:59:14.121738", "end_time": "2025-05-29T16:38:52.827045",
"executed_test_cases": [ "executed_test_cases": [
{ {
"test_case_id": "TC-STATUS-001", "test_case_id": "TC-STATUS-001",
@ -350,8 +329,8 @@
"test_case_severity": "严重", "test_case_severity": "严重",
"status": "通过", "status": "通过",
"message": "响应状态码为 200符合预期 200。", "message": "响应状态码为 200符合预期 200。",
"duration_seconds": 0.015310167102143168, "duration_seconds": 0.07733883312903345,
"timestamp": "2025-05-28T17:59:14.026622", "timestamp": "2025-05-29T16:38:52.705528",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -365,8 +344,8 @@
"test_case_severity": "严重", "test_case_severity": "严重",
"status": "通过", "status": "通过",
"message": "针对 PUT http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit (状态码 200) 的响应体 conforms to the JSON schema.", "message": "针对 PUT http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit (状态码 200) 的响应体 conforms to the JSON schema.",
"duration_seconds": 0.019677208038046956, "duration_seconds": 0.026119209127500653,
"timestamp": "2025-05-28T17:59:14.046352", "timestamp": "2025-05-29T16:38:52.731704",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -380,8 +359,8 @@
"test_case_severity": "严重", "test_case_severity": "严重",
"status": "失败", "status": "失败",
"message": "API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit) 响应了成功的状态码 200这违反了HTTPS强制策略。", "message": "API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit) 响应了成功的状态码 200这违反了HTTPS强制策略。",
"duration_seconds": 0.014963624998927116, "duration_seconds": 0.01827866700477898,
"timestamp": "2025-05-28T17:59:14.061385", "timestamp": "2025-05-29T16:38:52.750047",
"validation_points": [ "validation_points": [
{ {
"status_code": 200 "status_code": 200
@ -393,16 +372,16 @@
"test_case_name": "Error Code 4001 - Query Parameter Type Mismatch Validation", "test_case_name": "Error Code 4001 - Query Parameter Type Mismatch Validation",
"test_case_severity": "中", "test_case_severity": "中",
"status": "失败", "status": "失败",
"message": "当查询参数 'id' (路径: 'id') 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '61'.", "message": "当查询参数 'id' (路径: 'id') 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '9'.",
"duration_seconds": 0.014795458177104592, "duration_seconds": 0.015486499993130565,
"timestamp": "2025-05-28T17:59:14.076230", "timestamp": "2025-05-29T16:38:52.765588",
"validation_points": [ "validation_points": [
{ {
"status_code": 200, "status_code": 200,
"response_body": { "response_body": {
"code": 61, "code": 9,
"message": "irure non in", "message": "quis in enim magna culpa",
"data": false "data": true
}, },
"expected_http_status_codes": [ "expected_http_status_codes": [
400, 400,
@ -418,15 +397,15 @@
"test_case_name": "Error Code 4001 - Request Body Type Mismatch Validation", "test_case_name": "Error Code 4001 - Request Body Type Mismatch Validation",
"test_case_severity": "中", "test_case_severity": "中",
"status": "失败", "status": "失败",
"message": "当请求体字段 'id' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '38'.", "message": "当请求体字段 'id' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '90'.",
"duration_seconds": 0.015496833017095923, "duration_seconds": 0.029123959131538868,
"timestamp": "2025-05-28T17:59:14.091774", "timestamp": "2025-05-29T16:38:52.794759",
"validation_points": [ "validation_points": [
{ {
"status_code": 200, "status_code": 200,
"response_body": { "response_body": {
"code": 38, "code": 90,
"message": "nulla Excepteur non velit id", "message": "reprehenderit in id sed consequat",
"data": false "data": false
}, },
"expected_http_status_codes": [ "expected_http_status_codes": [
@ -444,8 +423,8 @@
"test_case_severity": "高", "test_case_severity": "高",
"status": "通过", "status": "通过",
"message": "当移除必填请求体字段 'id' 时API响应了状态码 200 (非主要预期HTTP状态 [400, 422]但为4xx客户端错误), 且响应体中包含预期的业务错误码 '4003' (字段: 'code').", "message": "当移除必填请求体字段 'id' 时API响应了状态码 200 (非主要预期HTTP状态 [400, 422]但为4xx客户端错误), 且响应体中包含预期的业务错误码 '4003' (字段: 'code').",
"duration_seconds": 0.016006666934117675, "duration_seconds": 0.01860508299432695,
"timestamp": "2025-05-28T17:59:14.107824", "timestamp": "2025-05-29T16:38:52.813417",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -458,15 +437,15 @@
"test_case_name": "Error Code 4003 - Missing Required Query Parameter Validation", "test_case_name": "Error Code 4003 - Missing Required Query Parameter Validation",
"test_case_severity": "高", "test_case_severity": "高",
"status": "失败", "status": "失败",
"message": "当移除必填查询参数 'id' 时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '95'.", "message": "当移除必填查询参数 'id' 时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '29'.",
"duration_seconds": 0.01381899998523295, "duration_seconds": 0.013537416933104396,
"timestamp": "2025-05-28T17:59:14.121703", "timestamp": "2025-05-29T16:38:52.827010",
"validation_points": [ "validation_points": [
{ {
"status_code": 200, "status_code": 200,
"response_body": { "response_body": {
"code": 95, "code": 29,
"message": "dolore esse voluptate aute adipisicing", "message": "consequat magna nostrud occaecat",
"data": false "data": false
}, },
"expected_http_status_codes": [ "expected_http_status_codes": [
@ -484,9 +463,9 @@
"endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit", "endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit",
"endpoint_name": "地质单元数据删除", "endpoint_name": "地质单元数据删除",
"overall_status": "失败", "overall_status": "失败",
"duration_seconds": 0.116716, "duration_seconds": 0.13411,
"start_time": "2025-05-28T17:59:14.121767", "start_time": "2025-05-29T16:38:52.827071",
"end_time": "2025-05-28T17:59:14.238483", "end_time": "2025-05-29T16:38:52.961181",
"executed_test_cases": [ "executed_test_cases": [
{ {
"test_case_id": "TC-STATUS-001", "test_case_id": "TC-STATUS-001",
@ -494,8 +473,8 @@
"test_case_severity": "严重", "test_case_severity": "严重",
"status": "通过", "status": "通过",
"message": "响应状态码为 200符合预期 200。", "message": "响应状态码为 200符合预期 200。",
"duration_seconds": 0.017570124939084053, "duration_seconds": 0.014969042036682367,
"timestamp": "2025-05-28T17:59:14.139420", "timestamp": "2025-05-29T16:38:52.842123",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -509,8 +488,8 @@
"test_case_severity": "严重", "test_case_severity": "严重",
"status": "通过", "status": "通过",
"message": "针对 DELETE http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit (状态码 200) 的响应体 conforms to the JSON schema.", "message": "针对 DELETE http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit (状态码 200) 的响应体 conforms to the JSON schema.",
"duration_seconds": 0.013965875143185258, "duration_seconds": 0.02638737508095801,
"timestamp": "2025-05-28T17:59:14.153442", "timestamp": "2025-05-29T16:38:52.868569",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -524,8 +503,8 @@
"test_case_severity": "严重", "test_case_severity": "严重",
"status": "失败", "status": "失败",
"message": "API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit) 响应了成功的状态码 200这违反了HTTPS强制策略。", "message": "API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit) 响应了成功的状态码 200这违反了HTTPS强制策略。",
"duration_seconds": 0.015133625129237771, "duration_seconds": 0.017909541027620435,
"timestamp": "2025-05-28T17:59:14.168629", "timestamp": "2025-05-29T16:38:52.886534",
"validation_points": [ "validation_points": [
{ {
"status_code": 200 "status_code": 200
@ -537,16 +516,16 @@
"test_case_name": "Error Code 4001 - Query Parameter Type Mismatch Validation", "test_case_name": "Error Code 4001 - Query Parameter Type Mismatch Validation",
"test_case_severity": "中", "test_case_severity": "中",
"status": "失败", "status": "失败",
"message": "当查询参数 'id' (路径: 'id') 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '86'.", "message": "当查询参数 'id' (路径: 'id') 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '23'.",
"duration_seconds": 0.022381666116416454, "duration_seconds": 0.023657166864722967,
"timestamp": "2025-05-28T17:59:14.191131", "timestamp": "2025-05-29T16:38:52.910250",
"validation_points": [ "validation_points": [
{ {
"status_code": 200, "status_code": 200,
"response_body": { "response_body": {
"code": 86, "code": 23,
"message": "ipsum esse", "message": "deserunt",
"data": false "data": true
}, },
"expected_http_status_codes": [ "expected_http_status_codes": [
400, 400,
@ -562,15 +541,15 @@
"test_case_name": "Error Code 4001 - Request Body Type Mismatch Validation", "test_case_name": "Error Code 4001 - Request Body Type Mismatch Validation",
"test_case_severity": "中", "test_case_severity": "中",
"status": "失败", "status": "失败",
"message": "当请求体字段 'version' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '11'.", "message": "当请求体字段 'version' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '58'.",
"duration_seconds": 0.015292458003386855, "duration_seconds": 0.014851915882900357,
"timestamp": "2025-05-28T17:59:14.206531", "timestamp": "2025-05-29T16:38:52.925152",
"validation_points": [ "validation_points": [
{ {
"status_code": 200, "status_code": 200,
"response_body": { "response_body": {
"code": 11, "code": 58,
"message": "id dolor", "message": "reprehenderit quis in ut",
"data": false "data": false
}, },
"expected_http_status_codes": [ "expected_http_status_codes": [
@ -588,8 +567,8 @@
"test_case_severity": "高", "test_case_severity": "高",
"status": "通过", "status": "通过",
"message": "跳过测试在API规范中未找到合适的必填请求体字段用于移除测试。", "message": "跳过测试在API规范中未找到合适的必填请求体字段用于移除测试。",
"duration_seconds": 0.015733457868918777, "duration_seconds": 0.013341292040422559,
"timestamp": "2025-05-28T17:59:14.222393", "timestamp": "2025-05-29T16:38:52.938550",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -602,16 +581,16 @@
"test_case_name": "Error Code 4003 - Missing Required Query Parameter Validation", "test_case_name": "Error Code 4003 - Missing Required Query Parameter Validation",
"test_case_severity": "高", "test_case_severity": "高",
"status": "失败", "status": "失败",
"message": "当移除必填查询参数 'id' 时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '52'.", "message": "当移除必填查询参数 'id' 时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '97'.",
"duration_seconds": 0.015788417076691985, "duration_seconds": 0.0225362500641495,
"timestamp": "2025-05-28T17:59:14.238332", "timestamp": "2025-05-29T16:38:52.961142",
"validation_points": [ "validation_points": [
{ {
"status_code": 200, "status_code": 200,
"response_body": { "response_body": {
"code": 52, "code": 97,
"message": "cillum anim culpa", "message": "ut voluptate",
"data": true "data": false
}, },
"expected_http_status_codes": [ "expected_http_status_codes": [
400, 400,
@ -628,9 +607,9 @@
"endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_geo_unit", "endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_geo_unit",
"endpoint_name": "地质单元数据添加", "endpoint_name": "地质单元数据添加",
"overall_status": "失败", "overall_status": "失败",
"duration_seconds": 0.111679, "duration_seconds": 0.108396,
"start_time": "2025-05-28T17:59:14.239230", "start_time": "2025-05-29T16:38:52.961214",
"end_time": "2025-05-28T17:59:14.350909", "end_time": "2025-05-29T16:38:53.069610",
"executed_test_cases": [ "executed_test_cases": [
{ {
"test_case_id": "TC-STATUS-001", "test_case_id": "TC-STATUS-001",
@ -638,8 +617,8 @@
"test_case_severity": "严重", "test_case_severity": "严重",
"status": "通过", "status": "通过",
"message": "响应状态码为 200符合预期 200。", "message": "响应状态码为 200符合预期 200。",
"duration_seconds": 0.016218916978687048, "duration_seconds": 0.018137291073799133,
"timestamp": "2025-05-28T17:59:14.255765", "timestamp": "2025-05-29T16:38:52.979514",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -653,8 +632,8 @@
"test_case_severity": "严重", "test_case_severity": "严重",
"status": "通过", "status": "通过",
"message": "Schema验证步骤完成未发现问题或schema不适用/未为此响应定义)。", "message": "Schema验证步骤完成未发现问题或schema不适用/未为此响应定义)。",
"duration_seconds": 0.018145665992051363, "duration_seconds": 0.013638167176395655,
"timestamp": "2025-05-28T17:59:14.274060", "timestamp": "2025-05-29T16:38:52.993197",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -668,8 +647,8 @@
"test_case_severity": "严重", "test_case_severity": "严重",
"status": "失败", "status": "失败",
"message": "API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit) 响应了成功的状态码 200这违反了HTTPS强制策略。", "message": "API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit) 响应了成功的状态码 200这违反了HTTPS强制策略。",
"duration_seconds": 0.020375542109832168, "duration_seconds": 0.014288584003224969,
"timestamp": "2025-05-28T17:59:14.294582", "timestamp": "2025-05-29T16:38:53.007531",
"validation_points": [ "validation_points": [
{ {
"status_code": 200 "status_code": 200
@ -682,8 +661,8 @@
"test_case_severity": "中", "test_case_severity": "中",
"status": "通过", "status": "通过",
"message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。",
"duration_seconds": 0.015486791031435132, "duration_seconds": 0.013313875067979097,
"timestamp": "2025-05-28T17:59:14.310124", "timestamp": "2025-05-29T16:38:53.020894",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -696,15 +675,15 @@
"test_case_name": "Error Code 4001 - Request Body Type Mismatch Validation", "test_case_name": "Error Code 4001 - Request Body Type Mismatch Validation",
"test_case_severity": "中", "test_case_severity": "中",
"status": "失败", "status": "失败",
"message": "当请求体字段 'version' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '64'.", "message": "当请求体字段 'version' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '52'.",
"duration_seconds": 0.01395920803770423, "duration_seconds": 0.01988679193891585,
"timestamp": "2025-05-28T17:59:14.324133", "timestamp": "2025-05-29T16:38:53.040825",
"validation_points": [ "validation_points": [
{ {
"status_code": 200, "status_code": 200,
"response_body": { "response_body": {
"code": 64, "code": 52,
"message": "cillum non do enim", "message": "proident Ut ea ullamco",
"data": true "data": true
}, },
"expected_http_status_codes": [ "expected_http_status_codes": [
@ -721,15 +700,15 @@
"test_case_name": "Error Code 4003 - Missing Required Request Body Field Validation", "test_case_name": "Error Code 4003 - Missing Required Request Body Field Validation",
"test_case_severity": "高", "test_case_severity": "高",
"status": "失败", "status": "失败",
"message": "当移除必填请求体字段 'data.0.bsflag' 时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '41'.", "message": "当移除必填请求体字段 'data.0.bsflag' 时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '49'.",
"duration_seconds": 0.013345874845981598, "duration_seconds": 0.01450737495906651,
"timestamp": "2025-05-28T17:59:14.337527", "timestamp": "2025-05-29T16:38:53.055380",
"validation_points": [ "validation_points": [
{ {
"status_code": 200, "status_code": 200,
"response_body": { "response_body": {
"code": 41, "code": 49,
"message": "non dolor velit voluptate", "message": "id",
"data": true "data": true
}, },
"expected_http_status_codes": [ "expected_http_status_codes": [
@ -747,8 +726,8 @@
"test_case_severity": "高", "test_case_severity": "高",
"status": "通过", "status": "通过",
"message": "跳过测试在API规范中未找到合适的必填查询参数用于移除测试。", "message": "跳过测试在API规范中未找到合适的必填查询参数用于移除测试。",
"duration_seconds": 0.013294416014105082, "duration_seconds": 0.014146250206977129,
"timestamp": "2025-05-28T17:59:14.350870", "timestamp": "2025-05-29T16:38:53.069571",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -762,9 +741,9 @@
"endpoint_id": "GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}", "endpoint_id": "GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}",
"endpoint_name": "地质单元查询详情", "endpoint_name": "地质单元查询详情",
"overall_status": "失败", "overall_status": "失败",
"duration_seconds": 0.120317, "duration_seconds": 0.113045,
"start_time": "2025-05-28T17:59:14.350939", "start_time": "2025-05-29T16:38:53.069639",
"end_time": "2025-05-28T17:59:14.471256", "end_time": "2025-05-29T16:38:53.182684",
"executed_test_cases": [ "executed_test_cases": [
{ {
"test_case_id": "TC-STATUS-001", "test_case_id": "TC-STATUS-001",
@ -772,8 +751,8 @@
"test_case_severity": "严重", "test_case_severity": "严重",
"status": "通过", "status": "通过",
"message": "响应状态码为 200符合预期 200。", "message": "响应状态码为 200符合预期 200。",
"duration_seconds": 0.016830084146931767, "duration_seconds": 0.015057458076626062,
"timestamp": "2025-05-28T17:59:14.367858", "timestamp": "2025-05-29T16:38:53.084778",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -787,8 +766,8 @@
"test_case_severity": "严重", "test_case_severity": "严重",
"status": "通过", "status": "通过",
"message": "针对 GET http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id (状态码 200) 的响应体 conforms to the JSON schema.", "message": "针对 GET http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id (状态码 200) 的响应体 conforms to the JSON schema.",
"duration_seconds": 0.020835916977375746, "duration_seconds": 0.017582334112375975,
"timestamp": "2025-05-28T17:59:14.388744", "timestamp": "2025-05-29T16:38:53.102420",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -802,8 +781,8 @@
"test_case_severity": "严重", "test_case_severity": "严重",
"status": "失败", "status": "失败",
"message": "API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id) 响应了成功的状态码 200这违反了HTTPS强制策略。", "message": "API通过HTTP (http://127.0.0.1:4523/m1/6389742-6086420-default/api/dms/example_dms_instance_code/v1/cd_geo_unit/1.0.0/example_id) 响应了成功的状态码 200这违反了HTTPS强制策略。",
"duration_seconds": 0.015508499927818775, "duration_seconds": 0.014921833062544465,
"timestamp": "2025-05-28T17:59:14.404316", "timestamp": "2025-05-29T16:38:53.117404",
"validation_points": [ "validation_points": [
{ {
"status_code": 200 "status_code": 200
@ -816,8 +795,8 @@
"test_case_severity": "中", "test_case_severity": "中",
"status": "通过", "status": "通过",
"message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。", "message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。",
"duration_seconds": 0.016546707833185792, "duration_seconds": 0.01659925002604723,
"timestamp": "2025-05-28T17:59:14.420922", "timestamp": "2025-05-29T16:38:53.134065",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -830,28 +809,28 @@
"test_case_name": "Error Code 4001 - Request Body Type Mismatch Validation", "test_case_name": "Error Code 4001 - Request Body Type Mismatch Validation",
"test_case_severity": "中", "test_case_severity": "中",
"status": "失败", "status": "失败",
"message": "当请求体字段 'isSearchCount' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '96'.", "message": "当请求体字段 'isSearchCount' 类型不匹配时期望API返回状态码在 [400, 422] 中或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '84'.",
"duration_seconds": 0.015827207826077938, "duration_seconds": 0.015248041832819581,
"timestamp": "2025-05-28T17:59:14.436804", "timestamp": "2025-05-29T16:38:53.149366",
"validation_points": [ "validation_points": [
{ {
"status_code": 200, "status_code": 200,
"response_body": { "response_body": {
"code": 96, "code": 84,
"message": "magna non", "message": "id in exercitation occaecat",
"data": { "data": {
"total": 80, "total": 61,
"list": [ "list": [
{ {
"dsid": "8", "dsid": "90",
"dataRegion": "sit incididunt", "dataRegion": "pariatur esse irure reprehenderit occaecat",
"gasReleaseMon": null, "gasReleaseMon": null,
"gasReleaseYear": null, "gasReleaseYear": null,
"releaseGasCum": null "releaseGasCum": null
}, },
{ {
"dsid": "85", "dsid": "68",
"dataRegion": "Ut id magna est", "dataRegion": "exercitation non pariatur",
"gasReleaseMon": null, "gasReleaseMon": null,
"gasReleaseYear": null, "gasReleaseYear": null,
"releaseGasCum": null "releaseGasCum": null
@ -874,8 +853,8 @@
"test_case_severity": "高", "test_case_severity": "高",
"status": "通过", "status": "通过",
"message": "跳过测试在API规范中未找到合适的必填请求体字段用于移除测试。", "message": "跳过测试在API规范中未找到合适的必填请求体字段用于移除测试。",
"duration_seconds": 0.016689875163137913, "duration_seconds": 0.013855749974027276,
"timestamp": "2025-05-28T17:59:14.453719", "timestamp": "2025-05-29T16:38:53.163271",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,
@ -889,8 +868,8 @@
"test_case_severity": "高", "test_case_severity": "高",
"status": "通过", "status": "通过",
"message": "跳过测试在API规范中未找到合适的必填查询参数用于移除测试。", "message": "跳过测试在API规范中未找到合适的必填查询参数用于移除测试。",
"duration_seconds": 0.01742037502117455, "duration_seconds": 0.0193125419318676,
"timestamp": "2025-05-28T17:59:14.471207", "timestamp": "2025-05-29T16:38:53.182641",
"validation_points": [ "validation_points": [
{ {
"passed": true, "passed": true,