如何用Qase.io API获取包含子套件的所有测试套件?
Qase.io API无法获取子测试套件的解决方案
默认情况下,Qase.io的/v1/suite/{PROJECTID}接口仅返回顶级测试套件(即parent_id为null的套件),这就是为什么你看到total统计了33个套件,但entities里只有11个父套件的原因。
要获取包含子套件在内的所有测试套件,只需在请求URL中添加all=true查询参数:
import requests import json url = "https://api.qase.io/v1/suite/PROJECTID?all=true" # 追加all=true参数 headers = { "accept": "application/json", "Token": "API_KEY_HERE" } response = requests.get(url, headers=headers) print(json.dumps(json.loads(response.text), indent=4))
执行修改后的请求后,entities列表会包含所有层级的套件,其中子套件的parent_id字段会对应其父套件的ID。
另外注意:Qase API默认分页每页返回10条数据,你的total是33,意味着需要多页才能获取全部套件。如果需要一次性拿到所有数据,可以通过循环分页请求来实现:
import requests import json # 替换为你的项目ID和API密钥 PROJECT_ID = "YOUR_PROJECT_ID" API_KEY = "YOUR_API_KEY" base_url = f"https://api.qase.io/v1/suite/{PROJECT_ID}" headers = {"accept": "application/json", "Token": API_KEY} all_suites = [] current_page = 1 while True: params = {"all": "true", "page": current_page} response = requests.get(base_url, headers=headers, params=params) response_data = response.json() # 将当前页的套件加入总列表 all_suites.extend(response_data["result"]["entities"]) # 判断是否还有下一页 total_pages = (response_data["result"]["total"] + response_data["result"]["count"] - 1) // response_data["result"]["count"] if current_page >= total_pages: break current_page += 1 print(f"共获取到 {len(all_suites)} 个测试套件") print(json.dumps(all_suites, indent=4))
内容的提问来源于stack exchange,提问作者Zoe A
相关产品推荐
相关产品推荐

