fix:makefile

This commit is contained in:
gongwenxin
2025-05-29 16:45:57 +08:00
parent c3bd515cee
commit a4e175bc15
5 changed files with 7024 additions and 3675 deletions
+12 -14
View File
@@ -4,22 +4,20 @@
# pyinstaller --name ddms_compliance_tool --onefile run_api_tests.py
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 \
--verbose \
--output test_report.json >log.txt 2>&1
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 --output test_report.json >log.txt 2>&1
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_build_centos:
docker run --platform linux/amd64 --rm \
-v "$(pwd)":/app -w /app \
centos:8 \
sh -c "dnf install -y epel-release && \
dnf config-manager --set-enabled powertools || dnf config-manager --set-enabled PowerTools || true && \
dnf install -y python39 python39-pip python39-devel binutils gcc make && \
pip3.9 install --no-cache-dir -r requirements.txt || true && \
pip3.9 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 \
# centos:8 \
# sh -c "dnf install -y epel-release && \
# dnf config-manager --set-enabled powertools || dnf config-manager --set-enabled PowerTools || true && \
# dnf install -y python39 python39-pip python39-devel binutils gcc make && \
# pip3.9 install --no-cache-dir -r requirements.txt || true && \
# pip3.9 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"
+3302
View File
File diff suppressed because it is too large Load Diff
+1203 -1168
View File
File diff suppressed because it is too large Load Diff
+2325 -2325
View File
File diff suppressed because it is too large Load Diff
+175 -161
View File
@@ -1,8 +1,8 @@
{
"summary_metadata": {
"start_time": "2025-05-29T16:38:51.856094",
"end_time": "2025-05-29T16:38:53.182703",
"duration_seconds": "1.33"
"start_time": "2025-05-29T16:45:25.849307",
"end_time": "2025-05-29T16:45:26.621679",
"duration_seconds": "0.77"
},
"endpoint_stats": {
"total_defined": 6,
@@ -28,9 +28,9 @@
"endpoint_id": "POST /api/dms/{dms_instance_code}/v1/message/push/{schema}/{version}",
"endpoint_name": "数据推送接口",
"overall_status": "失败",
"duration_seconds": 0.578975,
"start_time": "2025-05-29T16:38:51.856404",
"end_time": "2025-05-29T16:38:52.435379",
"duration_seconds": 0.195803,
"start_time": "2025-05-29T16:45:25.849631",
"end_time": "2025-05-29T16:45:26.045434",
"executed_test_cases": [
{
"test_case_id": "TC-STATUS-001",
@@ -38,8 +38,8 @@
"test_case_severity": "严重",
"status": "通过",
"message": "响应状态码为 200,符合预期 200。",
"duration_seconds": 0.31512458296492696,
"timestamp": "2025-05-29T16:38:52.171611",
"duration_seconds": 0.06710091698914766,
"timestamp": "2025-05-29T16:45:25.916804",
"validation_points": [
{
"passed": true,
@@ -53,8 +53,8 @@
"test_case_severity": "严重",
"status": "通过",
"message": "Schema验证步骤完成(未发现问题,或schema不适用/未为此响应定义)。",
"duration_seconds": 0.0580080000218004,
"timestamp": "2025-05-29T16:38:52.229929",
"duration_seconds": 0.024326875107362866,
"timestamp": "2025-05-29T16:45:25.941204",
"validation_points": [
{
"passed": true,
@@ -68,8 +68,8 @@
"test_case_severity": "严重",
"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强制策略。",
"duration_seconds": 0.047522042179480195,
"timestamp": "2025-05-29T16:38:52.277613",
"duration_seconds": 0.019037832971662283,
"timestamp": "2025-05-29T16:45:25.960309",
"validation_points": [
{
"status_code": 200
@@ -82,8 +82,8 @@
"test_case_severity": "中",
"status": "通过",
"message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。",
"duration_seconds": 0.08462537499144673,
"timestamp": "2025-05-29T16:38:52.362387",
"duration_seconds": 0.0200852919369936,
"timestamp": "2025-05-29T16:45:25.980454",
"validation_points": [
{
"passed": true,
@@ -96,21 +96,35 @@
"test_case_name": "Error Code 4001 - Request Body Type Mismatch Validation",
"test_case_severity": "中",
"status": "失败",
"message": "当请求体字段 'isSearchCount' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '5'.",
"duration_seconds": 0.024353125132620335,
"timestamp": "2025-05-29T16:38:52.387005",
"message": "当请求体字段 'isSearchCount' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '44'.",
"duration_seconds": 0.02025704109109938,
"timestamp": "2025-05-29T16:45:26.000770",
"validation_points": [
{
"status_code": 200,
"response_body": {
"code": 5,
"message": "Excepteur consectetur labore tempor",
"code": 44,
"message": "cupidatat ipsum exercitation",
"data": {
"total": 48,
"total": 84,
"list": [
{
"dsid": "77",
"dataRegion": "sed laborum et dolor",
"dsid": "56",
"dataRegion": "culpa et nisi",
"gasReleaseMon": null,
"gasReleaseYear": null,
"releaseGasCum": null
},
{
"dsid": "22",
"dataRegion": "ea nulla in tempor proident",
"gasReleaseMon": null,
"gasReleaseYear": null,
"releaseGasCum": null
},
{
"dsid": "69",
"dataRegion": "adipisicing dolore velit Excepteur",
"gasReleaseMon": null,
"gasReleaseYear": null,
"releaseGasCum": null
@@ -133,8 +147,8 @@
"test_case_severity": "高",
"status": "通过",
"message": "跳过测试:在API规范中未找到合适的必填请求体字段用于移除测试。",
"duration_seconds": 0.02168962499126792,
"timestamp": "2025-05-29T16:38:52.408822",
"duration_seconds": 0.02807041583582759,
"timestamp": "2025-05-29T16:45:26.028894",
"validation_points": [
{
"passed": true,
@@ -148,8 +162,8 @@
"test_case_severity": "高",
"status": "通过",
"message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。",
"duration_seconds": 0.026100416900590062,
"timestamp": "2025-05-29T16:38:52.435209",
"duration_seconds": 0.016444000182673335,
"timestamp": "2025-05-29T16:45:26.045394",
"validation_points": [
{
"passed": true,
@@ -163,9 +177,9 @@
"endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}",
"endpoint_name": "地质单元列表查询",
"overall_status": "失败",
"duration_seconds": 0.192345,
"start_time": "2025-05-29T16:38:52.435520",
"end_time": "2025-05-29T16:38:52.627865",
"duration_seconds": 0.121974,
"start_time": "2025-05-29T16:45:26.045467",
"end_time": "2025-05-29T16:45:26.167441",
"executed_test_cases": [
{
"test_case_id": "TC-STATUS-001",
@@ -173,8 +187,8 @@
"test_case_severity": "严重",
"status": "通过",
"message": "响应状态码为 200,符合预期 200。",
"duration_seconds": 0.028909082990139723,
"timestamp": "2025-05-29T16:38:52.464841",
"duration_seconds": 0.0186984168831259,
"timestamp": "2025-05-29T16:45:26.064250",
"validation_points": [
{
"passed": true,
@@ -188,8 +202,8 @@
"test_case_severity": "严重",
"status": "通过",
"message": "Schema验证步骤完成(未发现问题,或schema不适用/未为此响应定义)。",
"duration_seconds": 0.01859383308328688,
"timestamp": "2025-05-29T16:38:52.483729",
"duration_seconds": 0.021727959159761667,
"timestamp": "2025-05-29T16:45:26.086038",
"validation_points": [
{
"passed": true,
@@ -203,8 +217,8 @@
"test_case_severity": "严重",
"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强制策略。",
"duration_seconds": 0.021226000040769577,
"timestamp": "2025-05-29T16:38:52.505199",
"duration_seconds": 0.017182791838422418,
"timestamp": "2025-05-29T16:45:26.103281",
"validation_points": [
{
"status_code": 200
@@ -216,21 +230,21 @@
"test_case_name": "Error Code 4001 - Query Parameter Type Mismatch Validation",
"test_case_severity": "中",
"status": "失败",
"message": "当查询参数 'pageNo' (路径: 'pageNo') 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '24'.",
"duration_seconds": 0.028693499974906445,
"timestamp": "2025-05-29T16:38:52.534166",
"message": "当查询参数 'pageNo' (路径: 'pageNo') 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '30'.",
"duration_seconds": 0.016620707930997014,
"timestamp": "2025-05-29T16:45:26.119956",
"validation_points": [
{
"status_code": 200,
"response_body": {
"code": 24,
"message": "incididunt esse",
"code": 30,
"message": "ut incididunt aliquip laborum",
"data": {
"total": 81,
"total": 45,
"list": [
{
"dsid": "56",
"dataRegion": "anim proident adipisicing sit",
"dsid": "86",
"dataRegion": "aliqua ipsum labore ea",
"gasReleaseMon": null,
"gasReleaseYear": null,
"releaseGasCum": null
@@ -252,21 +266,28 @@
"test_case_name": "Error Code 4001 - Request Body Type Mismatch Validation",
"test_case_severity": "中",
"status": "失败",
"message": "当请求体字段 'isSearchCount' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '46'.",
"duration_seconds": 0.023574707796797156,
"timestamp": "2025-05-29T16:38:52.558008",
"message": "当请求体字段 'isSearchCount' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '93'.",
"duration_seconds": 0.01504912506788969,
"timestamp": "2025-05-29T16:45:26.135053",
"validation_points": [
{
"status_code": 200,
"response_body": {
"code": 46,
"message": "sint in quis fugiat",
"code": 93,
"message": "irure in aute aliquip dolor",
"data": {
"total": 56,
"total": 14,
"list": [
{
"dsid": "49",
"dataRegion": "pariatur nulla",
"gasReleaseMon": null,
"gasReleaseYear": null,
"releaseGasCum": null
},
{
"dsid": "47",
"dataRegion": "in id non qui",
"dataRegion": "ullamco anim incididunt culpa",
"gasReleaseMon": null,
"gasReleaseYear": null,
"releaseGasCum": null
@@ -289,8 +310,8 @@
"test_case_severity": "高",
"status": "通过",
"message": "跳过测试:在API规范中未找到合适的必填请求体字段用于移除测试。",
"duration_seconds": 0.019619707949459553,
"timestamp": "2025-05-29T16:38:52.577781",
"duration_seconds": 0.01566412509419024,
"timestamp": "2025-05-29T16:45:26.150763",
"validation_points": [
{
"passed": true,
@@ -304,8 +325,8 @@
"test_case_severity": "高",
"status": "通过",
"message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。",
"duration_seconds": 0.04977562488056719,
"timestamp": "2025-05-29T16:38:52.627767",
"duration_seconds": 0.016583458986133337,
"timestamp": "2025-05-29T16:45:26.167396",
"validation_points": [
{
"passed": true,
@@ -319,9 +340,9 @@
"endpoint_id": "PUT /api/dms/{dms_instance_code}/v1/cd_geo_unit",
"endpoint_name": "地质单元数据修改",
"overall_status": "失败",
"duration_seconds": 0.199101,
"start_time": "2025-05-29T16:38:52.627944",
"end_time": "2025-05-29T16:38:52.827045",
"duration_seconds": 0.110383,
"start_time": "2025-05-29T16:45:26.167471",
"end_time": "2025-05-29T16:45:26.277854",
"executed_test_cases": [
{
"test_case_id": "TC-STATUS-001",
@@ -329,8 +350,8 @@
"test_case_severity": "严重",
"status": "通过",
"message": "响应状态码为 200,符合预期 200。",
"duration_seconds": 0.07733883312903345,
"timestamp": "2025-05-29T16:38:52.705528",
"duration_seconds": 0.01697887503542006,
"timestamp": "2025-05-29T16:45:26.184543",
"validation_points": [
{
"passed": true,
@@ -344,8 +365,8 @@
"test_case_severity": "严重",
"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.",
"duration_seconds": 0.026119209127500653,
"timestamp": "2025-05-29T16:38:52.731704",
"duration_seconds": 0.01832004194147885,
"timestamp": "2025-05-29T16:45:26.202912",
"validation_points": [
{
"passed": true,
@@ -359,8 +380,8 @@
"test_case_severity": "严重",
"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强制策略。",
"duration_seconds": 0.01827866700477898,
"timestamp": "2025-05-29T16:38:52.750047",
"duration_seconds": 0.016209041001275182,
"timestamp": "2025-05-29T16:45:26.219217",
"validation_points": [
{
"status_code": 200
@@ -372,15 +393,15 @@
"test_case_name": "Error Code 4001 - Query Parameter Type Mismatch Validation",
"test_case_severity": "中",
"status": "失败",
"message": "当查询参数 'id' (路径: 'id') 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '9'.",
"duration_seconds": 0.015486499993130565,
"timestamp": "2025-05-29T16:38:52.765588",
"message": "当查询参数 'id' (路径: 'id') 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '55'.",
"duration_seconds": 0.014930624980479479,
"timestamp": "2025-05-29T16:45:26.234199",
"validation_points": [
{
"status_code": 200,
"response_body": {
"code": 9,
"message": "quis in enim magna culpa",
"code": 55,
"message": "tempor elit",
"data": true
},
"expected_http_status_codes": [
@@ -397,15 +418,15 @@
"test_case_name": "Error Code 4001 - Request Body Type Mismatch Validation",
"test_case_severity": "中",
"status": "失败",
"message": "当请求体字段 'id' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '90'.",
"duration_seconds": 0.029123959131538868,
"timestamp": "2025-05-29T16:38:52.794759",
"message": "当请求体字段 'id' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '54'.",
"duration_seconds": 0.014813833869993687,
"timestamp": "2025-05-29T16:45:26.249066",
"validation_points": [
{
"status_code": 200,
"response_body": {
"code": 90,
"message": "reprehenderit in id sed consequat",
"code": 54,
"message": "deserunt id incididunt",
"data": false
},
"expected_http_status_codes": [
@@ -423,8 +444,8 @@
"test_case_severity": "高",
"status": "通过",
"message": "当移除必填请求体字段 'id' 时,API响应了状态码 200 (非主要预期HTTP状态 [400, 422],但为4xx客户端错误), 且响应体中包含预期的业务错误码 '4003' (字段: 'code').",
"duration_seconds": 0.01860508299432695,
"timestamp": "2025-05-29T16:38:52.813417",
"duration_seconds": 0.013806292088702321,
"timestamp": "2025-05-29T16:45:26.262916",
"validation_points": [
{
"passed": true,
@@ -437,16 +458,16 @@
"test_case_name": "Error Code 4003 - Missing Required Query Parameter Validation",
"test_case_severity": "高",
"status": "失败",
"message": "当移除必填查询参数 'id' 时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '29'.",
"duration_seconds": 0.013537416933104396,
"timestamp": "2025-05-29T16:38:52.827010",
"message": "当移除必填查询参数 'id' 时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '25'.",
"duration_seconds": 0.014846875099465251,
"timestamp": "2025-05-29T16:45:26.277818",
"validation_points": [
{
"status_code": 200,
"response_body": {
"code": 29,
"message": "consequat magna nostrud occaecat",
"data": false
"code": 25,
"message": "sint laboris ex ea",
"data": true
},
"expected_http_status_codes": [
400,
@@ -463,9 +484,9 @@
"endpoint_id": "DELETE /api/dms/{dms_instance_code}/v1/cd_geo_unit",
"endpoint_name": "地质单元数据删除",
"overall_status": "失败",
"duration_seconds": 0.13411,
"start_time": "2025-05-29T16:38:52.827071",
"end_time": "2025-05-29T16:38:52.961181",
"duration_seconds": 0.111407,
"start_time": "2025-05-29T16:45:26.277880",
"end_time": "2025-05-29T16:45:26.389287",
"executed_test_cases": [
{
"test_case_id": "TC-STATUS-001",
@@ -473,8 +494,8 @@
"test_case_severity": "严重",
"status": "通过",
"message": "响应状态码为 200,符合预期 200。",
"duration_seconds": 0.014969042036682367,
"timestamp": "2025-05-29T16:38:52.842123",
"duration_seconds": 0.013204999966546893,
"timestamp": "2025-05-29T16:45:26.291166",
"validation_points": [
{
"passed": true,
@@ -488,8 +509,8 @@
"test_case_severity": "严重",
"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.",
"duration_seconds": 0.02638737508095801,
"timestamp": "2025-05-29T16:38:52.868569",
"duration_seconds": 0.01893095811828971,
"timestamp": "2025-05-29T16:45:26.310139",
"validation_points": [
{
"passed": true,
@@ -503,8 +524,8 @@
"test_case_severity": "严重",
"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强制策略。",
"duration_seconds": 0.017909541027620435,
"timestamp": "2025-05-29T16:38:52.886534",
"duration_seconds": 0.013458125060424209,
"timestamp": "2025-05-29T16:45:26.323654",
"validation_points": [
{
"status_code": 200
@@ -516,15 +537,15 @@
"test_case_name": "Error Code 4001 - Query Parameter Type Mismatch Validation",
"test_case_severity": "中",
"status": "失败",
"message": "当查询参数 'id' (路径: 'id') 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '23'.",
"duration_seconds": 0.023657166864722967,
"timestamp": "2025-05-29T16:38:52.910250",
"message": "当查询参数 'id' (路径: 'id') 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '36'.",
"duration_seconds": 0.015051041962578893,
"timestamp": "2025-05-29T16:45:26.338921",
"validation_points": [
{
"status_code": 200,
"response_body": {
"code": 23,
"message": "deserunt",
"code": 36,
"message": "nostrud aliqua consequat commodo",
"data": true
},
"expected_http_status_codes": [
@@ -541,15 +562,15 @@
"test_case_name": "Error Code 4001 - Request Body Type Mismatch Validation",
"test_case_severity": "中",
"status": "失败",
"message": "当请求体字段 'version' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '58'.",
"duration_seconds": 0.014851915882900357,
"timestamp": "2025-05-29T16:38:52.925152",
"message": "当请求体字段 'version' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '91'.",
"duration_seconds": 0.015764417126774788,
"timestamp": "2025-05-29T16:45:26.354804",
"validation_points": [
{
"status_code": 200,
"response_body": {
"code": 58,
"message": "reprehenderit quis in ut",
"code": 91,
"message": "nisi eu deserunt laboris",
"data": false
},
"expected_http_status_codes": [
@@ -567,8 +588,8 @@
"test_case_severity": "高",
"status": "通过",
"message": "跳过测试:在API规范中未找到合适的必填请求体字段用于移除测试。",
"duration_seconds": 0.013341292040422559,
"timestamp": "2025-05-29T16:38:52.938550",
"duration_seconds": 0.017602207837626338,
"timestamp": "2025-05-29T16:45:26.372570",
"validation_points": [
{
"passed": true,
@@ -581,16 +602,16 @@
"test_case_name": "Error Code 4003 - Missing Required Query Parameter Validation",
"test_case_severity": "高",
"status": "失败",
"message": "当移除必填查询参数 'id' 时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '97'.",
"duration_seconds": 0.0225362500641495,
"timestamp": "2025-05-29T16:38:52.961142",
"message": "当移除必填查询参数 'id' 时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '68'.",
"duration_seconds": 0.016222875099629164,
"timestamp": "2025-05-29T16:45:26.389095",
"validation_points": [
{
"status_code": 200,
"response_body": {
"code": 97,
"message": "ut voluptate",
"data": false
"code": 68,
"message": "esse ad consectetur",
"data": true
},
"expected_http_status_codes": [
400,
@@ -607,9 +628,9 @@
"endpoint_id": "POST /api/dms/{dms_instance_code}/v1/cd_geo_unit",
"endpoint_name": "地质单元数据添加",
"overall_status": "失败",
"duration_seconds": 0.108396,
"start_time": "2025-05-29T16:38:52.961214",
"end_time": "2025-05-29T16:38:53.069610",
"duration_seconds": 0.12343,
"start_time": "2025-05-29T16:45:26.389467",
"end_time": "2025-05-29T16:45:26.512897",
"executed_test_cases": [
{
"test_case_id": "TC-STATUS-001",
@@ -617,8 +638,8 @@
"test_case_severity": "严重",
"status": "通过",
"message": "响应状态码为 200,符合预期 200。",
"duration_seconds": 0.018137291073799133,
"timestamp": "2025-05-29T16:38:52.979514",
"duration_seconds": 0.017961708130314946,
"timestamp": "2025-05-29T16:45:26.407964",
"validation_points": [
{
"passed": true,
@@ -632,8 +653,8 @@
"test_case_severity": "严重",
"status": "通过",
"message": "Schema验证步骤完成(未发现问题,或schema不适用/未为此响应定义)。",
"duration_seconds": 0.013638167176395655,
"timestamp": "2025-05-29T16:38:52.993197",
"duration_seconds": 0.01862025004811585,
"timestamp": "2025-05-29T16:45:26.427163",
"validation_points": [
{
"passed": true,
@@ -647,8 +668,8 @@
"test_case_severity": "严重",
"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强制策略。",
"duration_seconds": 0.014288584003224969,
"timestamp": "2025-05-29T16:38:53.007531",
"duration_seconds": 0.017223792150616646,
"timestamp": "2025-05-29T16:45:26.444548",
"validation_points": [
{
"status_code": 200
@@ -661,8 +682,8 @@
"test_case_severity": "中",
"status": "通过",
"message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。",
"duration_seconds": 0.013313875067979097,
"timestamp": "2025-05-29T16:38:53.020894",
"duration_seconds": 0.016695416998118162,
"timestamp": "2025-05-29T16:45:26.461439",
"validation_points": [
{
"passed": true,
@@ -675,15 +696,15 @@
"test_case_name": "Error Code 4001 - Request Body Type Mismatch Validation",
"test_case_severity": "中",
"status": "失败",
"message": "当请求体字段 'version' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '52'.",
"duration_seconds": 0.01988679193891585,
"timestamp": "2025-05-29T16:38:53.040825",
"message": "当请求体字段 'version' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '44'.",
"duration_seconds": 0.01606720802374184,
"timestamp": "2025-05-29T16:45:26.477669",
"validation_points": [
{
"status_code": 200,
"response_body": {
"code": 52,
"message": "proident Ut ea ullamco",
"code": 44,
"message": "enim cupidatat magna nulla",
"data": true
},
"expected_http_status_codes": [
@@ -700,15 +721,15 @@
"test_case_name": "Error Code 4003 - Missing Required Request Body Field Validation",
"test_case_severity": "高",
"status": "失败",
"message": "当移除必填请求体字段 'data.0.bsflag' 时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '49'.",
"duration_seconds": 0.01450737495906651,
"timestamp": "2025-05-29T16:38:53.055380",
"message": "当移除必填请求体字段 'data.0.bsflag' 时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4003'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '34'.",
"duration_seconds": 0.018121875124052167,
"timestamp": "2025-05-29T16:45:26.495933",
"validation_points": [
{
"status_code": 200,
"response_body": {
"code": 49,
"message": "id",
"code": 34,
"message": "do consequat elit",
"data": true
},
"expected_http_status_codes": [
@@ -726,8 +747,8 @@
"test_case_severity": "高",
"status": "通过",
"message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。",
"duration_seconds": 0.014146250206977129,
"timestamp": "2025-05-29T16:38:53.069571",
"duration_seconds": 0.016664458205923438,
"timestamp": "2025-05-29T16:45:26.512857",
"validation_points": [
{
"passed": true,
@@ -741,9 +762,9 @@
"endpoint_id": "GET /api/dms/{dms_instance_code}/v1/cd_geo_unit/{version}/{id}",
"endpoint_name": "地质单元查询详情",
"overall_status": "失败",
"duration_seconds": 0.113045,
"start_time": "2025-05-29T16:38:53.069639",
"end_time": "2025-05-29T16:38:53.182684",
"duration_seconds": 0.108735,
"start_time": "2025-05-29T16:45:26.512925",
"end_time": "2025-05-29T16:45:26.621660",
"executed_test_cases": [
{
"test_case_id": "TC-STATUS-001",
@@ -751,8 +772,8 @@
"test_case_severity": "严重",
"status": "通过",
"message": "响应状态码为 200,符合预期 200。",
"duration_seconds": 0.015057458076626062,
"timestamp": "2025-05-29T16:38:53.084778",
"duration_seconds": 0.020550667075440288,
"timestamp": "2025-05-29T16:45:26.533561",
"validation_points": [
{
"passed": true,
@@ -766,8 +787,8 @@
"test_case_severity": "严重",
"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.",
"duration_seconds": 0.017582334112375975,
"timestamp": "2025-05-29T16:38:53.102420",
"duration_seconds": 0.014473499963060021,
"timestamp": "2025-05-29T16:45:26.548098",
"validation_points": [
{
"passed": true,
@@ -781,8 +802,8 @@
"test_case_severity": "严重",
"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强制策略。",
"duration_seconds": 0.014921833062544465,
"timestamp": "2025-05-29T16:38:53.117404",
"duration_seconds": 0.013600457925349474,
"timestamp": "2025-05-29T16:45:26.561752",
"validation_points": [
{
"status_code": 200
@@ -795,8 +816,8 @@
"test_case_severity": "中",
"status": "通过",
"message": "跳过测试:在查询参数中未找到合适的字段来测试类型不匹配。",
"duration_seconds": 0.01659925002604723,
"timestamp": "2025-05-29T16:38:53.134065",
"duration_seconds": 0.013701542047783732,
"timestamp": "2025-05-29T16:45:26.575502",
"validation_points": [
{
"passed": true,
@@ -809,28 +830,21 @@
"test_case_name": "Error Code 4001 - Request Body Type Mismatch Validation",
"test_case_severity": "中",
"status": "失败",
"message": "当请求体字段 'isSearchCount' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '84'.",
"duration_seconds": 0.015248041832819581,
"timestamp": "2025-05-29T16:38:53.149366",
"message": "当请求体字段 'isSearchCount' 类型不匹配时,期望API返回状态码在 [400, 422] 中,或返回4xx客户端错误且业务码为 '4001'. 实际收到状态码 200. 响应体中的业务码 ('code') 为 '70'.",
"duration_seconds": 0.016377917025238276,
"timestamp": "2025-05-29T16:45:26.591934",
"validation_points": [
{
"status_code": 200,
"response_body": {
"code": 84,
"message": "id in exercitation occaecat",
"code": 70,
"message": "amet labore ex",
"data": {
"total": 61,
"total": 63,
"list": [
{
"dsid": "90",
"dataRegion": "pariatur esse irure reprehenderit occaecat",
"gasReleaseMon": null,
"gasReleaseYear": null,
"releaseGasCum": null
},
{
"dsid": "68",
"dataRegion": "exercitation non pariatur",
"dsid": "44",
"dataRegion": "eiusmod consequat irure Lorem do",
"gasReleaseMon": null,
"gasReleaseYear": null,
"releaseGasCum": null
@@ -853,8 +867,8 @@
"test_case_severity": "高",
"status": "通过",
"message": "跳过测试:在API规范中未找到合适的必填请求体字段用于移除测试。",
"duration_seconds": 0.013855749974027276,
"timestamp": "2025-05-29T16:38:53.163271",
"duration_seconds": 0.013865916058421135,
"timestamp": "2025-05-29T16:45:26.605858",
"validation_points": [
{
"passed": true,
@@ -868,8 +882,8 @@
"test_case_severity": "高",
"status": "通过",
"message": "跳过测试:在API规范中未找到合适的必填查询参数用于移除测试。",
"duration_seconds": 0.0193125419318676,
"timestamp": "2025-05-29T16:38:53.182641",
"duration_seconds": 0.015692499931901693,
"timestamp": "2025-05-29T16:45:26.621611",
"validation_points": [
{
"passed": true,