金融项目实战 07|Python实现接口自动化——连接数据库和数据清洗、测试报告、持续集成

目录

一、投资模块(投资接口+投资业务)

[二、连接数据库封装 和 清洗数据](#二、连接数据库封装 和 清洗数据)

1、连接数据库

2、数据清洗

4、调用

[三、批量执行测试用例 并 生成测试报告](#三、批量执行测试用例 并 生成测试报告)

四、持续集成

1、代码上传gitee

2、Jenkin持续集成


一、投资模块(投资接口+投资业务)

略,之后有机会再补充

二、连接数据库封装 和 清洗数据

1、连接数据库

在util.py文件中添加连接数据库工具类

python 复制代码
# 连接库工具  # 数据库连接不上
def conn_mysql(sql):
    conn = None
    cursor = None
    try:
        # 1、获取连接对象
        conn = pymysql.connect(host="121.43.169.97", user="root", password="Itcast_p2p_20191228", database="czbk_member", port=3306,
                               charset="utf8", autocommit=True)

        # 2、获取游标对象
        cursor = conn.cursor()
        # 3、执行sql语句
        cursor.execute(sql)
        # 判断sql语句是否为查询
        if sql.split()[0].lower() == "select":
            # 返回所有结果
            return cursor.fetchall()
        # 否则
        else:
            # 返回受影响的行数
            return "受影响的行数:{}".format(cursor.rowcount)
    except Exception as e:
        GetLog.get_log().error(e)
        raise
    finally:
        # 4、关闭游标
        cursor.close()
        # 5、关闭连接
        conn.close()

2、数据清洗

在util.py文件中添加数据清洗工具类

该工具类实现的目的是删掉注册手机号及其关联表的关联数据,保证每次执行注册接口都能通过

python 复制代码
# 清除方法
def clear_data():
    sql1 = """
    delete i.* from mb_member_info i INNER JOIN mb_member m on i.member_id=m.id where m.phone in ("13600001111","13600001112","13600001113","13600001114")
    """
    conn_mysql(sql1)
    sql2 = """
    delete l.* from mb_member_login_log l INNER JOIN mb_member m on l.member_id=m.id where m.phone in ("13600001111","13600001112","13600001113","13600001114")
    """
    conn_mysql(sql2)
    sql3 = """
    delete from mb_member_register_log where phone in ("13600001111","13600001112","13600001113","13600001114")
    """
    conn_mysql(sql3)
    sql4 = """
    delete from mb_member where phone in ("13600001111","13600001112","13600001113","13600001114")
    """
    conn_mysql(sql4)

4、调用

建议下面的代码放在类TestRegisterLogin中的开头

python 复制代码
@classmethod
    def setUpClass(cls) -> None:
        # 清除测试数据
        clear_data()

# 提示:必须在test01_xxxx.py中类⽅法中调⽤

三、批量执行测试用例 并 生成测试报告

python 复制代码
import os
import time
import unittest
from HTMLTestRunner import HTMLTestRunner
from config import DIR_PATH

# 自动发现当前目录下的所有测试模块并运行
suite = unittest.TestSuite()
case = unittest.defaultTestLoader.discover(start_dir="./script",pattern="test*.py")

suite.addTest(case)

# 设置生成文件的路径和名字
now = time.strftime("%Y-%m-%d-%H-%M-%S")
report_path = DIR_PATH + os.sep + "report" + os.sep + f"测试报告-{now}.html" 

with open(report_path, "wb") as f:
    runner = HTMLTestRunner(stream=f,title="python自动化测试报告",description="共15+9条测试用例,1条不通过(因为无法执行数据清洗)")
    runner.run(suite)

生成报告位置

详细看这篇文章的第八部分:

Unittest02|TestSuite、TestRunner、HTMLTestRunner、处理excel表数据、邮件接收测试结果-CSDN博客

四、持续集成

1、代码上传gitee

详细看持续集成 01|Gitee介绍、Pycharm使用Gitee-CSDN博客

2、Jenkin持续集成

详细看持续集成 02|Jenkins介绍与安装、Postman集成Jenkins、代码集成Jenkins-CSDN博客

这里只展示Jenkins中项目的配置:
分支名称注意要根据gitee中相应项目的具体分支名称来填写

相关推荐
wengad8 小时前
嵌入式金融数据上链:挑战、核心问题与解决方案
大数据·金融·区块链·金融创新
骑着蜗牛撵大象3278 小时前
大模型工程化实战(十七):金融级 AI 落地——决策可追溯/可复现/可追责/不可抵赖这四件事怎么做
人工智能·金融·哈希·大模型工程化·决策可追溯·可复现
一木 之林1 天前
提示词工程学习总结:用 Few-shot 把大模型调教成金融文本分类、抽取与匹配的自动化流水线
人工智能·学习·计算机视觉·金融·分类
砚底藏山河1 天前
量化实战:截面因子有效性检验(IC 分析与分层回测)
java·python·金融·maven
砚底藏山河2 天前
量化实战:回测数据底座快照与版本管理进阶
java·大数据·python·金融·maven
垂钓的小鱼12 天前
2026 A股量化数据源选型:把 Tushare、AKShare、StockApi 一次说清(集合竞价/Level2/游资怎么选)
金融
考研保研资料分享2 天前
金融专硕保研经验:清华五道口预推免、北大汇丰夏令营与面试复盘
面试·金融
砚底藏山河3 天前
量化实战:行情数据 Schema 演进与向后兼容
java·python·金融·maven
troy1284 天前
金融财务系统 Reference Data Asset 构建指南:从模型设计到落地实践
大数据·金融·区块链
troy1284 天前
用 Cube.js 构建金融财务系统的 Semantic Layer:从架构到实战
javascript·金融·架构