如何通过API与Python实现ALM QC测试数据的自动化提取?
实现ALM Quality Center测试数据自动化提取与Excel导出的方案
完全可以通过API实现你的需求,Micro Focus ALM/Quality Center(简称ALM)提供了两种主流API方案,适配不同开发场景:
1. 可选的API类型
- REST API:现代轻量接口,支持绝大多数编程语言(Python、Java、JavaScript等),通过HTTP请求交互,返回JSON格式数据,处理灵活,是当前推荐的首选方案。
- OTA API:基于COM/ActiveX的传统接口,适合Windows环境下用VB/VBScript或.NET开发,老项目中应用较多,但维护成本相对高,优先推荐REST API。
2. 核心实现步骤(以REST API为例)
(1)身份认证
先发送POST请求获取会话令牌,后续所有接口请求都需要携带该令牌完成身份校验:
- 请求地址:
{ALM服务器地址}/qcbin/api/authentication/sign-in - 携带用户名、密码完成认证,响应头中的
Set-Cookie字段即为会话凭证。
(2)获取测试执行数据
调用测试执行记录接口,通过查询参数过滤目标数据:
- 请求地址:
{ALM服务器地址}/qcbin/api/domains/{你的域}/projects/{你的项目}/runs - 可通过
query参数筛选特定状态的测试,例如只获取成功和失败的记录:query={"status": ["Passed", "Failed"]} - 接口返回的JSON数据中包含所有符合条件的测试执行详情。
(3)统计与Excel导出
拿到数据后,在代码中统计成功、失败等状态的数量,再用对应语言的库生成Excel文件:
- Python可使用
pandas快速处理数据并导出Excel; - Java可使用
Apache POI操作Excel文件; - 其他语言也有对应的Excel处理库可选。
3. Python示例代码
import requests import pandas as pd # 配置ALM信息 ALM_SERVER = "http://your-alm-server-address/qcbin" DOMAIN_NAME = "your-domain" PROJECT_NAME = "your-project" USER = "your-username" PWD = "your-password" # 1. 登录获取会话Cookie login_url = f"{ALM_SERVER}/api/authentication/sign-in" login_res = requests.post(login_url, auth=(USER, PWD)) login_res.raise_for_status() session_headers = {"Cookie": login_res.headers["Set-Cookie"]} # 2. 获取指定状态的测试执行记录 runs_url = f"{ALM_SERVER}/api/domains/{DOMAIN_NAME}/projects/{PROJECT_NAME}/runs" filter_params = {"query": '{"status": ["Passed", "Failed"]}'} runs_res = requests.get(runs_url, headers=session_headers, params=filter_params) runs_data = runs_res.json()["entities"] # 3. 统计各状态测试数 status_stats = {} for run in runs_data: status = run["fields"]["status"] status_stats[status] = status_stats.get(status, 0) + 1 # 4. 导出到Excel result_df = pd.DataFrame(list(status_stats.items()), columns=["测试状态", "数量"]) result_df.to_excel("alm_test_summary.xlsx", index=False) # 5. 登出会话 requests.post(f"{ALM_SERVER}/api/authentication/sign-out", headers=session_headers)
4. 新手必备注意事项
- 权限验证:确保你的ALM账号拥有测试执行数据的访问权限以及API调用权限,可在ALM Web端的用户权限设置中确认。
- 版本适配:不同版本的ALM REST API端点可能略有差异,务必参考对应版本的官方文档核对接口细节。
- 分页处理:当测试执行记录数量较多时,API会分页返回数据,需要通过
page-size和start-index参数遍历所有分页数据。
内容的提问来源于stack exchange,提问作者CHOUT Jawad
相关产品推荐
相关产品推荐

