【python】解析自動化腳本文件并按照=測試周期=存儲記錄

【python】連接Jira獲取token以及jira對象
【python】解析自動化腳本文件并按照=測試周期=存儲記錄
【python】向Jira推送自動化用例執行成功
【python】向Jira測試計劃下,附件中增加html測試報告

將已編寫的自動化測試用例按照jira號解析出來,并按照測試計劃,測試周期,存儲到pytest_ready表中,方便接下來調用使用

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2025-02-12 8:45
# @Author  : duxiaowei
# @File    : save_case_name_db.py
# @Software:  將編寫的pytest自動測試用例,中所有用例路徑名,存儲到pytest_ready表中import os
from datetime import datetimefrom com.connect_sqllite import DBlitedef find_int_convertible(lst):'''從 一個 字符串list中,找到可以轉換成int的值有哪些'''def is_int_convertible(item):try:int(item)return Trueexcept ValueError:return Falsereturn list(map(int, filter(is_int_convertible, lst)))def parse_filename(filename):"""解析pytest文件名,中的jira號"""name_list = filename.split('&')# print(name_list)jira_num_list = []if len(name_list) == 1:l_list = name_list[0].split("_")f_list = find_int_convertible(l_list)jira_num_list.append(str(f_list[0]))return jira_num_listelse:first = name_list[0].split("_")[-1]jira_num_list.append(first)# 再對最后一個處理last = name_list[-1].split("_")[0]jira_num_list.append(last)# 刪除第一個跟最后一個元素,重新拼接name_list.pop(0)name_list.pop()jira_num_list.extend(name_list)return jira_num_listdef get_test_files(current_dir):""" 獲取所有用例名稱,"""matching_files = []# 遍歷當前目錄下的所有文件和文件夾for root, dirs, files in os.walk(current_dir):for file in files:# 檢查文件是否以 .py 結尾,并且以 test_ 開頭或以 _test 結尾if file.endswith('.py') and (file.startswith('test_') or file.endswith('_test.py')):# 文件名path = os.path.join(root, file).replace(current_dir, "")# print(path)name_list = parse_filename(path)for i in name_list:p_list = []p_list.append(path)p_list.append(i)matching_files.append(p_list)return matching_filesdef insert_pytest_ready(cycle_id, plan_id):'''將本項目中,所有用例【所有人,已經編寫的自動化測試用例】名稱存到表pytest_ready表'''folder_path = os.path.abspath('..')test_files = get_test_files(folder_path)for jira in test_files:# 先查詢是否有記錄sql_select = "select count(1) from pytest_ready where filename = ? and jira_num= ? and cycle_id=? and plan_num=?"arg = (jira[0], jira[1], cycle_id, plan_id)result = DBlite().select(sql_select, arg)if result[0][0] == 0:current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")sql_insert = "insert into pytest_ready(filename, jira_num, createtime, cycle_id, plan_num) values (?,?,?,?,?)"arg = (jira[0], jira[1], current_time, cycle_id, plan_id)DBlite().change(sql_insert, arg)else:current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")sql_update = "update pytest_ready set updatetime=? where filename=? and jira_num= ? and cycle_id=? and plan_num=?"arg = (current_time, jira[0], jira[1], cycle_id, plan_id)DBlite().change(sql_update, arg)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/70526.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/70526.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/70526.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux驅動開發之音頻驅動與基礎應用編程

目錄 CODEC芯片 音頻編碼 I2S總線接口 數字音頻接口(DAI) 設備樹配置 ALSA 音頻相關概念 應用程序編寫 運行測試 CODEC芯片 音頻若想被CPU“聽到”,就必須轉換為CPU能夠“聽懂”的語言,即二進制數據的0和1。在信號處理領域,聲音是模…

在 Java 中解析 JSON 數據

例子解析以下JSON數據 {"code":0,"msg":"成功","data": [{ "host":"1068222.com", "port":"", "m_token":"490e20e70e7de5f21a24b14c12a393f6", "categ…

python——集合(一)

文章目錄 集合 set創建集合訪問集合項in關鍵字添加集合元素刪除集合元素復制集合使用操作符對集合進行交集、并集、差集、對稱差集使用方法對集合進行交集、并集、差集、對稱差集子集和超集 frozenset 凍結集合? 不可變集合! 集合 set 什么是集合&#…

DeepSeek 與網絡安全:AI 在網絡安全領域的應用與挑戰

📝個人主頁🌹:一ge科研小菜雞-CSDN博客 🌹🌹期待您的關注 🌹🌹 1. 引言 在當今數字化時代,網絡安全已成為國家、企業和個人面臨的重要挑戰。從傳統的病毒、木馬攻擊,到高…

【Blender】二、建模篇--05,陣列修改器與晶格形變

陣列修改器是bender里面一個比較常用的修改器,所以我們單獨開口來講,我們會先從幾片樹葉出發,然后我們用陣列修改器把這幾片樹葉變成這樣的造型和這樣的造型。這兩個造型分別就代表著陣列修改器最常用的兩種偏移方法,我們現在就開始我們先來做幾個樹葉。 1.樹葉建模 首先…

【Python 專題】數據結構 樹

LeetCode 題目104. 二叉樹的最大深度(gif 圖解)方法一:后序遍歷(DFS)方法二:層序遍歷(BFS)872. 葉子相似的樹(DFS 遍歷)1448. 統計二叉樹中好節點的數目(DFS 遍歷)437. 路徑總和 III(前綴和 + DFS 回溯)1372. 二叉樹中的最長交錯路徑(DFS)236. 二叉樹的最近公共…

Linux下基本指令(4)

Linux權限的概念 Linux下有兩種用戶:超級用戶(root)、普通用戶。 超級用戶:可以再linux系統下做任何事情,不受限制 普通用戶:在linux下做有限的事情。 超級用戶的命令提示符是“#”,普通用戶…

ubuntu部署小筆記-采坑

ubuntu部署小筆記 搭建前端控制端后端前端nginx反向代理使用ubuntu部署nextjs項目問題一 如何訪問端口號配置后臺運行該進程pm2 問題二 包體過大生產環境下所需文件 問題三 部署在vercel時出現的問題需要魔法訪問后端api時,必須使用https協議電腦端訪問正常&#xf…

【聯盛德 W803-Pico 試用】簡介、工程測試

【聯盛德 W803-Pico 試用】簡介、工程測試 本文介紹了聯盛德微電子 W803-Pico 開發板的基本信息、環境搭建、工程測試等內容。簡介包含開發板功能、主控參數及特點、開發板原理圖等信息,工程測試包括 Blink、串口打印等方案的演示。 活動詳情:聯盛德問答…

cursor使用記錄

一、如何查看自己登錄的是哪個賬號 操作路徑:Cursor -- 首選項 -- Cursor Setting (有快捷鍵) 二、狀態修改為豎排(默認是橫排) 默認如圖展示,想要像vscode、idea等等在左側豎著展示 操作路徑&#xff1…

gitlab 解決雙重認證無法登錄remote: HTTP Basic: Access denied.

問題:gitlab開啟了雙因素認證 如進行了 OAuth configuration 在進行git操作時如下提示 remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead o…

C語言基礎學習指南:從零入門到實戰應用——適合零基礎學習者與進階鞏固

目錄 一、C語言概述與開發環境搭建 二、核心語法與數據類型 三、控制結構與運算符 四、函數與模塊化編程 五、指針與內存管理 六、實踐建議與資源推薦 結語 一、C語言概述與開發環境搭建 C語言是一種高效、靈活的通用編程語言,廣泛應用于系統開發、嵌入式系…

C# 委托——lambda

lambda表達式不簡化寫起來和匿名函數很像,而匿名函數通常賦值給委托,通過委托進行調用。以下我們對lambda和委托的基本規則與使用進行整理,同時為了加深理解和記憶,我們整理了委托是如何一步步演化到lambda。 1. 委托 委托是一個…

【每日論文】TESS 2: A Large-Scale Generalist Diffusion Language Model

下載PDF或閱讀論文,請點擊:LlamaFactory - huggingface daily paper - 每日論文解讀 | LlamaFactory | LlamaFactory 摘要 我們推出了TESS 2,這是一種通用的指令跟隨擴散語言模型,其性能優于當代的指令調整擴散模型,有…

conda 配置源

無論是Anaconda vs Miniconda vs Miniforge 中的哪個,只要使用conda就涉及源,換源的目的是為了加速包的獲取 修改配置文件 通過修改用戶目錄下的 .condarc 文件來使用 不同系統下的 .condarc 目錄如下: Linux: ${HOME}/.condarcmacOS: ${…

AI大模型發展對語音直播交友系統源碼開發搭建的影響

近年來,AI大模型技術突飛猛進,為語音直播交友系統的源碼開發搭建帶來了深遠影響。本文將從技術發展層面,探討AI大模型如何賦能語音直播交友系統,并分析其對開發流程、功能實現和用戶體驗等方面帶來的變革。 一、技術賦能&#xff…

C++面試題,TCP和UDP方面(1)

個人主頁 : 個人主頁 個人專欄 : 《數據結構》 《C語言》《C》《Linux》《網絡》 《redis學習筆記》 文章目錄 前言TCP和UDP的區別UDP如何實現可靠TCP滑動窗口原理TCP流量控制TCP超時重傳總結 前言 這是個人總結的C方向的面試題,TCP和UDP方面&#xff0…

Huatuo熱更新--如何使用

在安裝完huatuo熱更新插件后就要開始學習如何使用了。 1.創建主框漸Main 新建文件夾Main(可自定義),然后按下圖創建文件,注意名稱與文件夾名稱保持一致 然后新建場景(Init場景),添加3個空物體…

Springboot + Ollama + IDEA + DeepSeek 搭建本地deepseek簡單調用示例

1. 版本說明 springboot 版本 3.3.8 Java 版本 17 spring-ai 版本 1.0.0-M5 deepseek 模型 deepseek-r1:7b 需要注意一下Ollama的使用版本: 2. springboot項目搭建 可以集成在自己的項目里,也可以到 spring.io 生成一個項目 生成的話,如下…

如何在 macOS 上配置 MySQL 環境變量

如何在 macOS 上配置 MySQL 環境變量 步驟 1: 查找 MySQL 安裝路徑 打開終端,使用以下命令查找 mysql 的可執行文件路徑: which mysql如果該命令沒有返回結果,可以使用 find 命令: sudo find / -name "mysql" 2>/de…