数据库操作包,引用前面创建的py文件,【sqlite】python操作sqlite3(含测试)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2025-02-11 8:45
# @Author : duxiaowei
# @File : get_filename.py
# @Software: 这个文件是 : 将编写的pytest自动测试用例,中所有用例路径名,存储到pytest_ready表中
import os
import re
from datetime import datetime
from com.connect_sqllite import DBlite
"""
1. 获取所有用例名称
2. 将所有用例名称存到表pytest_ready表
"""
# 获取所有用例名称
def 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, "")
# 洗出来,文件名中jira号,如果没有jira号,输入''
numbers = re.findall(r'\d+', path)
if len(numbers) == 0:
# # 如果用例名称解析不出数组,输入''
matching_files.append((path, ''))
elif len(numbers) == 1:
matching_files.append((path, numbers[0]))
else:
# 如果用例名称解析出多个数字,输入2
matching_files.append((path, '2'))
# 打印符合条件的文件列表
return matching_files
def insert_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 = ?"
arg = (jira[0],)
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) values (?,?,?)"
arg = (jira[0], jira[1], current_time)
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=?"
arg = (current_time, jira[0])
DBlite().change(sql_update, arg)
#
# 获取所有用例名称
# 插入数据库,pytest_ready
# insert_pytest_ready()
建表语句
create table pytest_ready_dg_tmp
(
id INTEGER
primary key autoincrement,
filename VARCHAR(100),
jira_num VARCHAR(20),
updatetime TIMESTAMP,
createtime TIMESTAMP,
status INTEGER default 0
);