主页 > 互联网  > 

【python】向Jira推送自动化用例执行成功

【python】向Jira推送自动化用例执行成功

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

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

#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2025-02-12 14:15 # @Author : duxiaowei # @File : put_filename_jira.py # @Software: 这个文件是 : 将自动化用例运行结果,推送到jira import requests from jira import JIRA from urllib.parse import urlencode from com.connect_jira import ConnJira from com.connect_mysql import DBmysql from com.connect_sqllite import DBlite # 配置连接jira conn = ConnJira() cookie, jira_server, jira = conn.jira_login() """ runId: jira库 ao_69e499_testrun 表中 run_id status: 1-通过,2-失败,3-锁定,4-未执行,5-不适用 通过,失败,锁定,未执行,不适用 1, 2, 3, 4 ,5 """ def change_status(run_id, status): url = jira_server + "/rest/synapse/1.0/testRun/updateTestRunStatus" params = { "runId": run_id, "status": status } payload = {} headers = {'Cookie': cookie} full_url = url + '?' + urlencode(params) requests.request("PUT", full_url, headers=headers, data=payload) """ cycle_name 测试周期名称,要求准确 issuenum 用例编号 返回 需要运行用例的id,也就是说这个run_id + 运行状态,能改变用例状态显示结果 """ def get_run_id(cycle_name, issuenum): # first 根据测试周期名称查询,测试周期id # second 根据用例编号查询,用例id # third 通过 测试周期id, select = "select run_cycle.ID from " \ "(select run.ID, run.TC_ID from jira.ao_69e499_testrun run where run.TEST_CYCLE_ID = " \ "(select ID from jira.ao_69e499_testcycle cycle where cycle.NAME = %s)" \ ") as run_cycle join jira.jiraissue issue on run_cycle.TC_ID = issue.ID and issue.issuenum = %s" arg = [cycle_name, issuenum] result = DBmysql().select(select, arg) # run_id return str(result[0][0]) # pytest获取运行结果, # '2.10',测试周期参数,测试周期名称,cycle_name 测试周期名称,要求准确 def get_pytest_result(cycle_name): sql_query = "select jira_num,result from pytest_result where cycle_name=?" arg = (cycle_name,) cycle_lots = DBlite().select(sql_query, arg) # print(cycle_lot) # 遍历所有,去调用发送更新 for cycle_lot in cycle_lots: run_id = get_run_id(cycle_name, cycle_lot[0]) # 1 - 通过,2 - 失败,3 - 锁定,4 - 未执行,5 - 不适用 if cycle_lot[1] == 'passed': status = '1' elif cycle_lot[1] == 'failed': status = '2' else: status = '4' # 去执行更新 change_status(run_id, status) # 给一个执行周期号,根据周期好,查询pytest_result表,返回给jira # cycle_name = '2.10' # get_pytest_result(cycle_name) # 给我一个周期号,我需要先去查询,这个周期下有哪些用例,去mysql查询, 还需要查询出测试计划的issue号,用于生成测试报告 # 查询到用例后,我需要将用例号跟我的pytest_ready里面的用例号去关联 # 然后根据,ready表里面筛选出来的号, # 去执行 # 执行之后,更新result表cycle_name字段,记录当前用例被那些周期执行过,根据jira_num将执行结果,返回给jira,

pytest_result表结构

create table pytest_result ( id INTEGER not null constraint pytest_result_pk primary key autoincrement, file_name varchar(100), class_name varchar(50), def_name varchar(60), result varchar(10), result_time TIMESTAMP DEFAULT (datetime('now', 'localtime')), status INT default 0, create_time TIMESTAMP DEFAULT (datetime('now', 'localtime')), duration varchar(30), message TEXT, cycle_id INTEGER, jira_num_list TEXT );

标签:

【python】向Jira推送自动化用例执行成功由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【python】向Jira推送自动化用例执行成功