Compare commits
6 Commits
update_tes
...
scripts
Author | SHA1 | Date | |
---|---|---|---|
![]() |
c3de57a2b3 | ||
![]() |
f2f0a10a9e | ||
![]() |
607ce67792 | ||
![]() |
42c4386562 | ||
![]() |
0be6ca7e33 | ||
![]() |
21fe8dd34f |
@ -30,8 +30,7 @@ def get_apidocs():
|
|||||||
return res.json()["docs"]
|
return res.json()["docs"]
|
||||||
|
|
||||||
|
|
||||||
def delete_old_apidocs():
|
def delete_old_apidocs(apidocs):
|
||||||
apidocs = get_apidocs()
|
|
||||||
for apidoc in apidocs:
|
for apidoc in apidocs:
|
||||||
session.delete(f"{SERVER_URL}/autotest/projects/{PROJECT_ID}/apidocs/{apidoc['id']}")
|
session.delete(f"{SERVER_URL}/autotest/projects/{PROJECT_ID}/apidocs/{apidoc['id']}")
|
||||||
|
|
||||||
@ -49,13 +48,13 @@ def check_api_version():
|
|||||||
return
|
return
|
||||||
|
|
||||||
local_version = get_local_version()
|
local_version = get_local_version()
|
||||||
print("检查被测服务器文档是否已经更新到最新版本...")
|
print("检查被测服务器文档是否已经更新到最新版本...", flush=True)
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
res = session.get(VERSION_URL)
|
res = session.get(VERSION_URL)
|
||||||
version = res.json()["version"]
|
version = res.json()["version"]
|
||||||
if version == local_version:
|
if version == local_version:
|
||||||
print(f"API 文档已更新,当前版本为 {version},开始上传 OpenAPI 文档...")
|
print(f"API 文档已更新,当前版本为 {version},开始上传 OpenAPI 文档...", flush=True)
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
print(
|
print(
|
||||||
@ -127,7 +126,11 @@ def wait_for_task_done(task_id):
|
|||||||
res = session.get(f"{SERVER_URL}/tasks/{task_id}")
|
res = session.get(f"{SERVER_URL}/tasks/{task_id}")
|
||||||
data = res.json()
|
data = res.json()
|
||||||
status = data["status"]
|
status = data["status"]
|
||||||
if status == "succeeded":
|
|
||||||
|
CREATED = "created"
|
||||||
|
RUNNING = "running"
|
||||||
|
WAITING = "waiting"
|
||||||
|
if status not in [CREATED, RUNNING, WAITING]:
|
||||||
print("自动测试脚本执行完成!", flush=True)
|
print("自动测试脚本执行完成!", flush=True)
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
@ -162,10 +165,10 @@ def main():
|
|||||||
api_path = args[0]
|
api_path = args[0]
|
||||||
method = args[1]
|
method = args[1]
|
||||||
test_target = " ".join(args[2:])
|
test_target = " ".join(args[2:])
|
||||||
|
docs = get_apidocs()
|
||||||
with Step("检查 API 版本是否更新..."):
|
with Step("检查 API 版本是否更新..."):
|
||||||
check_api_version()
|
check_api_version()
|
||||||
delete_old_apidocs()
|
delete_old_apidocs(docs)
|
||||||
|
|
||||||
with Step(f"上传 OpenAPI 文档,并且触发 API {api_path} 的测试用例和自动测试脚本生成任务..."):
|
with Step(f"上传 OpenAPI 文档,并且触发 API {api_path} 的测试用例和自动测试脚本生成任务..."):
|
||||||
# 使用配置的OPENAPI_URL
|
# 使用配置的OPENAPI_URL
|
||||||
@ -179,7 +182,7 @@ def main():
|
|||||||
res = session.post(
|
res = session.post(
|
||||||
f"{SERVER_URL}/autotest/projects/{PROJECT_ID}/apidocs",
|
f"{SERVER_URL}/autotest/projects/{PROJECT_ID}/apidocs",
|
||||||
files={"file": ("openapi.json", res.content, "application/json")},
|
files={"file": ("openapi.json", res.content, "application/json")},
|
||||||
data={"apiauth_id": 46},
|
data={"apiauth_id": docs[0]["apiauth_id"]},
|
||||||
)
|
)
|
||||||
if res.status_code == 200:
|
if res.status_code == 200:
|
||||||
print("上传 OpenAPI 文档成功!\n")
|
print("上传 OpenAPI 文档成功!\n")
|
||||||
@ -227,14 +230,6 @@ def main():
|
|||||||
api_path_id = get_path_op_id(api_path, method)
|
api_path_id = get_path_op_id(api_path, method)
|
||||||
with Step("开始查询测试脚本执行结果..."):
|
with Step("开始查询测试脚本执行结果..."):
|
||||||
while True:
|
while True:
|
||||||
res = session.get(
|
|
||||||
f"{SERVER_URL}/autotest/projects/{PROJECT_ID}/tasks",
|
|
||||||
params={"page": 1, "size": 1},
|
|
||||||
)
|
|
||||||
ret = res.json()
|
|
||||||
task = ret["tasks"][0]
|
|
||||||
task_id = task["id"]
|
|
||||||
wait_for_task_done(task_id)
|
|
||||||
testcase = get_testcase(api_path_id)
|
testcase = get_testcase(api_path_id)
|
||||||
last_testcode_passed = testcase["last_testcode_passed"]
|
last_testcode_passed = testcase["last_testcode_passed"]
|
||||||
if last_testcode_passed:
|
if last_testcode_passed:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user