如何通过Xray Cloud REST API获取测试执行中各测试用例状态?
可以通过Xray Cloud REST API实现该需求
完全可以借助Xray Cloud REST API获取已导入测试用例的状态并导出为文件,具体步骤如下:
1. 获取目标测试执行的ID
导入JUnit XML文件后,Xray会自动生成对应的**测试执行(Test Execution)**记录。你可以从Jira界面的测试执行页面URL中提取ID,比如https://your-domain.atlassian.net/browse/TEST-456里的TEST-456就是该测试执行的ID。
2. 调用Xray API获取测试用例状态
使用Xray Cloud的GET /rest/raven/2.0/api/testexec/{testExecId}/tests端点,可获取该测试执行下所有测试用例的详细信息,包括执行状态。
身份验证要求
请求需要带上Jira Cloud的身份凭证:用你的账号邮箱和API token组成Base64编码字符串,放在请求头的Authorization字段中,格式为Basic <base64编码的邮箱:API token>。
示例curl请求
curl --request GET \ --url 'https://your-domain.atlassian.net/rest/raven/2.0/api/testexec/TEST-456/tests' \ --header 'Authorization: Basic dXNlci1lbWFpbEBleGFtcGxlLmNvbTpwaXBlLWtleS1mb3ItYXBp' \ --header 'Accept: application/json'
3. 处理数据并导出文件
API返回的JSON数据中,每个测试用例条目包含key(测试用例ID)、summary(测试用例名称)、status.name(执行状态,如PASSED/FAILED/SKIPPED)等关键字段。你可以用脚本(Python、JavaScript等)自动化提取这些数据并导出为CSV、JSON等格式的文件。
Python示例脚本
import requests import csv # 配置参数 jira_domain = "your-domain.atlassian.net" test_exec_id = "TEST-456" email = "your-email@example.com" api_token = "your-api-token-here" # 发送API请求 auth = (email, api_token) api_url = f"https://{jira_domain}/rest/raven/2.0/api/testexec/{test_exec_id}/tests" response = requests.get(api_url, auth=auth) response.raise_for_status() test_cases = response.json() # 导出为CSV文件 with open('test_case_status_report.csv', 'w', newline='', encoding='utf-8') as csv_file: writer = csv.writer(csv_file) # 写入表头 writer.writerow(["测试用例ID", "测试用例名称", "执行状态"]) # 写入每条测试用例数据 for case in test_cases: writer.writerow([case['key'], case['summary'], case['status']['name']])
运行脚本后,会在当前目录生成test_case_status_report.csv文件,包含所有导入测试用例的状态信息。
内容的提问来源于stack exchange,提问作者Roberto Teresa
相关产品推荐
相关产品推荐

