当前位置: 首页 > news >正文

【python】向Jira测试计划下,附件中增加html测试报告

【python】连接Jira获取token以及jira对象

# 往 jira 测试计划下面,上传测试结果html
def put_jira_file(plain_id):# 配置连接jiraconn = ConnJira()jira = conn.jira_login()[2]path = jira.issue('O45-' + plain_id)attachments_dir = os.path.abspath('..') + '\\test_API\\reports'# 遍历目录下所有文件并上传for filename in os.listdir(attachments_dir):if filename.startswith('.'):continue  # 忽略隐藏文件file_rule = plain_id + '.html'if filename.endswith(file_rule):file_path = os.path.join(attachments_dir, filename)if os.path.isfile(file_path):with open(file_path, 'rb') as file:# 上传附件jira.add_attachment(issue=path, attachment=file, filename=filename)print(f'Attachment {filename} uploaded successfully.')

python 向jira测试用例下,自动化栏,写入自动化测试脚本路径

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2025-02-10 14:15
# @Author  : duxiaowei
# @File    : put_filename_jira.py
# @Software: 这个文件是 : 往jira用例中,添加自动化脚本路径的
#             路径都添加到对应的 jira 号下面的,自动化一栏中from urllib.parse import urlencodeimport requestsfrom com.connect_jira import ConnJira
from com.connect_mysql import DBmysql
from com.connect_sqllite import DBlitefrom com.get_filename import insert_pytest_ready# 配置连接jira
conn = ConnJira()
cookie, jira_server, jira = conn.jira_login()"""
automationIdentifier: 自动化备注信息,需要写入,自动化脚本文件路径
tcIssueId: 数据库查出来对应的 jiraissue 中 ID
"""def put_自动化备注(automationIdentifier, tcIssueId):url = jira_server + "/rest/synapse/1.0/testCase/saveAutomationTestIdentifier"params = {"automationIdentifier": automationIdentifier,"tcIssueId": tcIssueId}payload = {}headers = {'Cookie': cookie}full_url = url + '?' + urlencode(params)# print(full_url)response = requests.request("PUT", full_url, headers=headers, data=payload)if response.status_code == 200:print("推送成功!自动化测试文件推送到对应用例编号下")else:print("推送失败!自动化测试文件名称,推送失败!")# 查询mysql数据库,找到对应jiraissue,表中ID,用于传参
def get_jiraissue_ID(issueID):select_query = "select ID from jira.jiraissue where issuenum=%s"arg = []arg.append(issueID)try:result_mysql = DBmysql().select(select_query, arg)return str(result_mysql[0][0])except Exception:return ""# 这两个字段,来自sqllite数据库
# issueID = "6050"
# name = ':test_API:testcases:场外:O45_6060&6061&6062_IB_bond_buy_shougong_test.py'
def jira_remark():ready_result = DBlite().select("select filename,jira_num,number from pytest_ready where jira_num !='' order by updatetime desc")for i in ready_result:# 文件名替换字符串content = i[0].replace('\\', ':')content = content.replace('&', ':')print(content)issueID = i[1]number = i[2]# 通过sqllite数据库中,issueID,去查询mysql对应的issue表ID列mysql_id = get_jiraissue_ID(issueID)# print(mysql_id)if mysql_id != "":# 推送到,自动化备注put_自动化备注(content, mysql_id)# 记录推送次数sql_update = "update pytest_ready set number=? where jira_num=?"number = number + 1arg = (number, issueID)DBlite().change(sql_update, arg)# # 需要将jira_remark()放到conftest中,目前每次都会去put一遍,number字段,用于推送记录次数,推送之前最好,拉一下pytest文件到数据
# # 如果一个 jira号下有两个脚本文件,只记录,第一次的那个,这块还需要优化
# insert_pytest_ready()
# jira_remark()

涉及到一个表pytest_ready

create table pytest_ready
(id INTEGERprimary key autoincrement,filename VARCHAR(100),jira_num VARCHAR(20),updatetime TIMESTAMP,createtime TIMESTAMP,number INTEGER default 0
);

在这里插入图片描述

http://www.lryc.cn/news/536587.html

相关文章:

  • 探索ChatGPT背后的前端黑科技
  • Agents Go Deep 智能体深入探索
  • DeepSeek全生态接入指南:官方通道+三大云平台
  • c++TinML转html
  • STM32硬件SPI函数解析与示例
  • 滤波器:卡尔曼滤波
  • 深度学习框架探秘|TensorFlow vs PyTorch:AI 框架的巅峰对决
  • Windows环境管理多个node版本
  • opencascade 源码学习BRepBuilderAPI-BRepBuilderAPI
  • Vue 2 + Webpack 项目中集成 ESLint 和 Prettier
  • Renesas RH850 EEL库的优点
  • torch导出ONNX模型报错:OnnxExporterError: Module onnx is not installed
  • LabVIEW 用户界面设计基础原则
  • 使用Python爬虫实时监控行业新闻案例
  • qt QTextEdit用法总结
  • 《open3d qt 网格采样成点云》
  • 企业数据安全:切实有效的数据安全保障措施分享:
  • rocketmq-netty通信设计-request和response
  • DeepSeek 助力 Vue 开发:打造丝滑的卡片(Card)
  • 计算机组成原理—— 总线系统(十一)
  • 电商小程序(源码+文档+部署+讲解)
  • 8、k8s的pv和pvc
  • 【limit 1000000,10 加载很慢该怎么优化?】
  • 通过IDEA傻瓜式快速分析java堆内存快照
  • 测试方案整理
  • 2025年视觉、先进成像和计算机技术国际学术会议(VAICT2025)
  • 【黑马点评】jmeter测试秒杀接口前后耗时,和查询店铺(redis+caffeine二级缓存)接口
  • 盛铂科技 SCP4006/4018/4040:国产袖珍式功率计 射频微波功率探头 平均功率计
  • 数据科学之数据管理|统计学
  • C++ 设计模式-建造者模式