You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Xray Python模块在Jira创建TEST issue的技术咨询

Xray Python模块操作Jira TEST类型Issue问题解答

问题1:如何读取HTML文件,通过Xray Python模块在Jira的TEST类型issue中创建测试步骤?

实现流程分3步,直接参考下方可运行代码调整即可:

  • 先安装依赖包:pip install xray beautifulsoup4 lxml
  • 核心逻辑是先解析HTML提取结构化测试步骤,再按Xray要求的字段格式组装载荷调用创建接口
from bs4 import BeautifulSoup
from xray import Xray

# 读取本地HTML测试步骤文件
with open("你的测试步骤文件.html", "r", encoding="utf-8") as f:
    raw_html = f.read()
soup = BeautifulSoup(raw_html, "lxml")

# 按自身HTML的结构提取步骤,以下示例适配HTML中用id为step-table的表格存储步骤的场景
# 表格列顺序为:步骤操作、预期结果、测试数据
parsed_steps = []
step_table = soup.find("table", id="step-table")
for row in step_table.find_all("tr")[1:]:  # 跳过表头行
    cells = [cell.decode_contents() if cell else "" for cell in row.find_all("td")]
    parsed_steps.append({
        "action": cells[0],
        "result": cells[1],
        "data": cells[2] if len(cells)>=3 else ""
    })

# 初始化Xray客户端,替换为自身环境的配置信息
xray_client = Xray(
    base_url="https://你的Jira实例访问地址",
    client_id="Xray API认证用Client ID",
    client_secret="Xray API认证用Client Secret"
)

# 组装创建TEST类型Issue的请求载荷
# 注意customfield_xxxxx需要替换为你当前Jira实例中Xray测试步骤对应的自定义字段ID,可通过Jira字段查询接口获取
create_payload = {
    "fields": {
        "project": {"key": "所属项目的KEY"},
        "summary": "测试用例的标题",
        "issuetype": {"name": "Test"},
        "customfield_xxxxx": {
            "steps": [
                {
                    "fields": {
                        "action": step["action"],
                        "result": step["result"],
                        "data": step["data"]
                    }
                } for step in parsed_steps
            ]
        }
    }
}

# 发起创建请求
resp = xray_client.create_issue(create_payload)
print(f"测试用例创建成功,对应Issue Key为:{resp['key']}")

注意:如果需要保留步骤里的富文本格式(粗体、列表、链接等),提取内容时不要用get_text()方法,直接取元素的decode_contents()返回值即可,Xray原生支持HTML格式的富文本步骤内容。如果你的HTML不是用表格存储步骤,自行调整BeautifulSoup的元素定位规则,匹配到每个步骤的操作、预期结果节点即可。

问题2:使用Xray Python模块创建TEST类型issue时,是否需要预先将HTML文件转换为JSON文件?

不需要做全文件格式转换,也不需要提前生成落盘的JSON中间文件。
Xray的接口确实要求传入JSON格式的请求载荷,但这个结构只需要在代码运行时,把从HTML中解析提取到的结构化步骤数据,按接口要求的字段格式组装成Python字典即可,Xray的Python SDK会自动完成字典到JSON的序列化转换。
如果你的工作流需要给其他系统复用解析后的步骤数据,可以选择把提取结果保存为JSON文件,但这属于可选操作,不是调用Xray模块的强制要求。

避坑提示:不要直接把原始HTML文件的全量内容直接塞到测试步骤字段中,会出现格式错乱、内容丢失的问题,必须先做结构化提取再组装载荷。


内容的提问来源于stack exchange,提问作者Oshin aggrawal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 12:01:14