金融项目实战 07|Python实现接口自动化——连接数据库和数据清洗、测试报告、持续集成
目录
一、投资模块(投资接口+投资业务)
二、连接数据库封装 和 清洗数据
1、连接数据库
2、数据清洗
4、调用
三、批量执行测试用例 并 生成测试报告
四、持续集成
1、代码上传gitee
2、Jenkin持续集成
一、投资模块(投资接口+投资业务)
略,之后有机会再补充
二、连接数据库封装 和 清洗数据
1、连接数据库
在util.py文件中添加连接数据库工具类
# 连接库工具 # 数据库连接不上
def conn_mysql(sql):conn = Nonecursor = Nonetry:# 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)raisefinally:# 4、关闭游标cursor.close()# 5、关闭连接conn.close()
2、数据清洗
在util.py文件中添加数据清洗工具类
该工具类实现的目的是删掉注册手机号及其关联表的关联数据,保证每次执行注册接口都能通过
# 清除方法
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中的开头
@classmethoddef setUpClass(cls) -> None:# 清除测试数据clear_data()# 提示:必须在test01_xxxx.py中类⽅法中调⽤
三、批量执行测试用例 并 生成测试报告
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中项目的配置:

相关文章:
金融项目实战 07|Python实现接口自动化——连接数据库和数据清洗、测试报告、持续集成
目录 一、投资模块(投资接口投资业务) 二、连接数据库封装 和 清洗数据 1、连接数据库 2、数据清洗 4、调用 三、批量执行测试用例 并 生成测试报告 四、持续集成 1、代码上传gitee 2、Jenkin持续集成 一、投资模块(投资接口投资业务…...
Ceph与RAID在存储中的协同工作过程
本文将结合架构图,详细讲解Ceph与RAID如何在存储环境中相互配合,共同提供高效且可靠的存储服务。 架构概述 从上图中可以看到,Ceph的架构主要分为四个层次: 客户端和服务接口层:这一层包括客户端访问存储应用的接口…...
《重生到现代之从零开始的C++生活》—— 类和对象2
类的默认成员函数 默认成员函数就是用户没有显示实现,编译器会自动生成的成员函数,一个类会默认生成6个成员函数 构造函数 构造函数时特殊的成员函数,构造函数的初始化对象 函数名与类名相同 没有返回值 对象实例化的时候胡自动调用构造…...
MFC 使用 32位带Alpha通道的位图
最近需要做一个MFC界面上的图片,众所周知,MFC 好像只支持 bmp 格式的! 先看我的原始24位图片,RGB 三个颜色各占8位 (256色), 所以是24位。 如果放到MFC界面上,是这个很丑的效果 它是一个正方形图片,周围的白色可以看见。 解下来,进入今天的主题: 32位带 Alpha 通…...
QT:子控件VLC播放视频时,父控件无法截取鼠标事件
具体来说: 反复验证,结论正确。只要是播放区(即传递给VLC的窗口区域),就无法点击。 比如WidgetA,新建一个WidgetB,设置位置时留有一点边框。这个时候WidgetA的边框区是能收到鼠标事件的。 这…...
力扣 739. 每日温度
🔗 https://leetcode.cn/problems/daily-temperatures 题目 给定一个数组,表示每天的天气返回一个数组,index i 表示几天后比当前的温度要高,没有则为 0 思路 维护一个单调递减栈,若当前的温度比栈顶大,…...
蓝桥杯 阶乘的和(C++完整代码+详细分析)
题目描述 原题链接 阶乘的和 问题描述 给定 n 个数 Ai,问能满足 m! 为 ∑(Ai!) 的因数的最大的 m 是多少。其中 m! 表示 m 的阶乘,即 123⋯m。 输入格式 输入的第一行包含一个整数 n。 第二行包含 n 个整数,分别表示 Ai,相…...
OpenAI进军实体机器人:GPT赋能的智能未来
近年来,人工智能技术飞速发展,深刻地改变着我们的生活。而OpenAI作为人工智能领域的领军者,其最新动作更是引人注目:进军实体机器人领域!这不仅标志着人工智能技术应用场景的重大拓展,也预示着未来智能机器…...
【Python运维】用Python管理Docker容器:从`docker-py`到自动化部署的全面指南
《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在现代软件开发和运维过程中,Docker容器化技术因其高效、轻量和可移植性而被广泛应用。Python作为一种灵活且功能强大的编程语言,通过doc…...
【机器学习实战入门项目】MNIST数字分类机器学习项目
Python 深度学习项目:手写数字识别 为了使机器更加智能,开发者们正在深入研究机器学习和深度学习技术。人类通过不断练习和重复来学习执行某项任务,从而记住如何完成这些任务。然后,大脑中的神经元会自动触发,他们能够…...
【统计信号处理基础——估计与检测理论】Vol1.Ch1 引言
文章目录 1. 信号处理中的估计2. 估计的数学问题3. 估计量性能评估习题1.11.21.31.41.5 1. 信号处理中的估计 从离散时间波形或一组数据集中提取参数的问题。我们有 N N N点数据集 { x [ 0 ] , x [ 1 ] , ⋯ , x [ N − 1 ] } \{x[0],x[1],\cdots,x[N-1]\} {x[0],x[1],⋯,x[N−…...
Linux 存储设备和 Ventoy 启动盘制作指南
一、Linux 存储设备基础知识 1. 设备路径(/dev) 设备路径是 Linux 系统中物理存储设备的唯一标识,类似设备的"身份证号"。 命名规则解析 /dev/sda: /dev:device(设备)的缩写&…...
第14章:Python TDD应对货币类开发变化(一)
写在前面 这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间 Cursor 软件后,我突然思考,对于测试开发工程师来说,什么才更有价值呢?如何让 AI 工具更好地辅助自己写代码,或许…...
网络协议入门:OSI模型与TCP/IP栈
在网络通信的世界中,数据从一台设备传输到另一台设备,需要遵循一系列规则,这些规则统称为网络协议。OSI模型和TCP/IP协议栈作为网络通信的基石,帮助我们理解数据传输的全流程。这篇文章将深入解析它们的结构、功能和实际应用&…...
pthread_exit函数
pthread_exit 是 POSIX 线程库(pthread)中的一个函数,用于显式地终止调用线程。与 exit 函数不同,pthread_exit 仅影响调用它的线程,而不是整个进程。使用 pthread_exit 可以确保线程在退出时能够正确地释放线程相关的…...
从语音识别到图像识别:AI如何“看”和“听”
引言 随着人工智能技术的不断进步,AI的“听”和“看”能力正变得越来越强大。从语音识别到图像识别,AI不仅能够通过声音与我们互动,还能通过视觉理解和分析周围的世界。这些技术不仅改变了我们与机器的交互方式,也在各行各业中带…...
UML-对象图(Object Diagram)
定义 在UML(统一建模语言)中,对象图用于描述在某一时刻,一组对象以及它们之间关系的图形。它是系统详细状态在某一时刻的快照,常用于表示复杂的类图的一个实例。关联、依赖和继承是对象图中常见的三种关系,下面将对这三种关系进行详细说明,并阐述它们之间的区别。 Pla…...
Pytorch - YOLOv11自定义资料训练
►前言 本篇将讲解目前最新推出的YOLOv11搭配Roboflow进行自定义资料标注训练流程,透过Colab上进行实作说明,使大家能够容易的了解YOLOv11的使用。 ►YOLO框架下载与导入 ►Roboflow的资料收集与标注 进行自定义资料集建置与上传 透过Roboflow工具进行…...
大模型GUI系列论文阅读 DAY2续2:《使用指令微调基础模型的多模态网页导航》
摘要 自主网页导航的进展一直受到以下因素的阻碍: 依赖于数十亿次的探索性交互(通常采用在线强化学习),依赖于特定领域的模型设计,难以利用丰富的跨领域数据进行泛化。 在本研究中,我们探讨了基于视觉-语…...
Docker 搭建mysql 连接超时问题,xxl-job启动mysql连接报错,禁用dns
1.本地连接Navicat报错信息,猜测是navicat默认连接超时导致的,后面换成idea一个插件虽然慢但连接上了 2013 - Lost connection to MySQL server at reading initial communication packet 2.启动xxl-job会报错,网上有人mysql驱动与数据库不匹…...
SSM课设-学生管理系统
【课设者】SSM课设-学生管理系统 技术栈: 后端: SpringSpringMVCMybatisMySQLJSP 前端: HtmlCssJavaScriptEasyUIAjax 功能: 学生端: 登陆 学生信息管理 个人信息管理 老师端: 多了教师信息管理 管理员端: 多了班级信息管理 多了年级信息管理 多了系统用户管理...
JavaScript笔记APIs篇03——DOM节点Bom操作本地存储正则表达式
黑马程序员视频地址:黑马程序员前端JavaScript入门到精通全套视频教程https://www.bilibili.com/video/BV1Y84y1L7Nn?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p78https://www.bilibili.com/video/BV1Y84y1L7Nn?…...
JS 有哪些模块化规范
一、CommonJS 规范 1. 主要应用场景 主要用于服务器端开发,尤其是 Node.js 环境。 2. 核心思想 使用 require() 函数来引入模块,使用 module.exports 或 exports 对象来导出模块中的内容。 // math.js 模块const add (a, b) > a b;const subtr…...
摘录人工智能面试笔试题汇总
一、人工智能面试问答题汇总 1、什么是人工智能? 人工智能(AI)是一种计算机科学,它增强了像人类一样工作和反应的智能机器。机器模拟人类智能行为的能力。人工智能通常用于各种应用,如决策、语音识别、感知、认知能力…...
【PCIe 总线及设备入门学习专栏 6.1 -- PCIe MCTP】
文章目录 1 什么是 MCTP?2 MCTP 消息在 PCIe 中的传输特点3 PCIe MCTP 的局限性(1) 出站(Outbound)MCTP 消息分解的限制(2) 入站(Inbound)MCTP 消息组装的限制4 MCTP 消息的实际使用流程发送端处理流程接收端处理流程5 实际使用场景例 1:管理命令传输例 2:监控数据报告例…...
RabbitMQ集群安装rabbitmq_delayed_message_exchange
1、单节点安装rabbitmq安装延迟队列 安装延迟队列rabbitmq_delayed_message_exchange可以参考这个文章: rabbitmq安装延迟队列-CSDN博客 2、集群安装rabbitmq_delayed_message_exchange 在第二个节点 join_cluster 之后,start_app 就会报错了 (CaseC…...
doris 2.1 Queries Acceleration-Hints 学习笔记
1 Hint Classification 1.1 Leading Hint:Specifies the join order according to the order provided in the leading hint. 1.2 Ordered Hint:A specific type of leading hint that specifies the join order as the original text sequence. 1.3 Distribute Hint:Speci…...
【网络协议】【http】【https】TLS解决了HTTP存在的问题-加密通信+摘要,数字签名+CA证书
【网络协议】【http】【https】TLS解决了HTTP存在的问题-加密通信摘要数字签名CA证书 ps:TLS前期发送的密码套件里面主要就是约定:密钥交换算法,签名算法,对称加密算法,摘要算法 1加密通信 一般选择非对称加密交换密钥 对称加密…...
某讯一面,感觉问Redis的难度不是很大
前不久,有位朋友去某讯面试,他说被问到了很多关于 Redis 的问题,比如为什么用 Redis 作为 MySQL 的缓存?Redis 中大量 key 集中过期怎么办?如何保证缓存和数据库数据的一致性?我将它们整理出来,…...
【json_object】mysql中json_object函数过长,显示不全
问题:json只显示部分 解决: SET GLOBAL group_concat_max_len 1000000; -- 设置为1MB,根据需要调整如果当前在navicat上修改,只有效本次连接和后续会话,重新连接还是会恢复默认值1024 在my.ini配置文件中新增或者修…...
【KOA框架】koa框架基础入门
koa是express的一层封装,语法比express更加简洁。所以有必要了解下koa的相关开发方法。 代码实现 package.json {"name": "koapp","version": "1.0.0","main": "index.js","scripts": {&…...
kubernetes 集群 YAML 文件详解
Kubernetes 是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。在 Kubernetes 中,YAML 文件扮演着至关重要的角色,因为它们是用来定义资源对象(如 Pods、Deployments、Services 等)的配置文件。正确…...
【STM32G4xx的CAN驱动记录】
STM32G4xx的CAN驱动记录 CAN说明CAN的波特率计算数据测试总结 本文主要记录了基于STM32G4xx的CAN接口解析某型号雷达数据遇到的问题及规避方法,CAN总线波特率500Kbps,采样点要求80%附近。 注意CAN总线同步段的时间!!! …...
VSCode下EIDE插件开发STM32
VSCode下STM32开发环境搭建 本STM32教程使用vscode的EIDE插件的开发环境,完全免费,有管理代码文件的界面,不需要其它IDE。 视频教程见本人的 VSCodeEIDE开发STM32 安装EIDE插件 Embedded IDE 嵌入式IDE 这个插件可以帮我们管理代码文件&am…...
HTML之拜年/跨年APP(改进版)
目录: 一:目录 二:效果 三:页面分析/开发逻辑 1.页面详细分析: 2.开发逻辑: 四:完整代码(不多废话) index.html部分 app.json部分 二:效果 三:页面…...
解决 WSL 2 中 Ubuntu 22.04 安装 Docker 后无法启动的问题
问题场景 安装Docker后,执行sudo service docker start启动Docker,提示启动成功 rootDev:~# sudo service docker start * Starting Docker: docker [ OK ]执行su…...
Chrome 132 版本新特性
Chrome 132 版本新特性 一、Chrome 132 版本浏览器更新 1. 在 iOS 上使用 Google Lens 搜索 在 Chrome 132 版本中,开始在所有平台上推出这一功能。 1.1. 更新版本: Chrome 126 在 ChromeOS、Linux、Mac、Windows 上:在 1% 的稳定版用户…...
《贪心算法:原理剖析与典型例题精解》
必刷的贪心算法典型例题! 算法竞赛(蓝桥杯)贪心算法1——数塔问题-CSDN博客 算法竞赛(蓝桥杯)贪心算法2——需要安排几位师傅加工零件-CSDN博客 算法(蓝桥杯)贪心算法3——二维数组排序与贪心算…...
CSS笔记基础篇02——浮动、标准流、定位、CSS精灵、字体图标
黑马程序员视频地址: 前端Web开发HTML5CSS3移动web视频教程https://www.bilibili.com/video/BV1kM4y127Li?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p70https://www.bilibili.com/video/BV1kM4y127Li?vd_source…...
Golang Gin系列-6:Gin 高级路由及URL参数
在本章中,我们将深入研究使用Gin框架的高级路由和URL参数。我们将介绍如何创建和使用路由组、应用中间件、提取路径参数、处理查询字符串、处理静态文件以及使用HTML模板。 路由分组 为什么要使用路由组? 使用路由组有助于保持代码结构整洁有序。当路由…...
重温STM32之环境安装
缩写 CMSIS:common microcontroller software interface standard 1,keil mdk安装 链接 Keil Product Downloads 安装好后,开始安装平台软件支持包(keil 5后不在默认支持所有的平台软件开发包,需要自行下载&#…...
web应用引入cookie机制的用途和cookie技术主要包括的内容
web应用引入cookie机制,用于用户跟踪。 (1)HTTP响应报文中的Cookie头行:set-Cookie (2)用户浏览器在本地存储、维护和管理的Cookie文件 (3)HTTP请求报文中的Cookie头行:…...
Visual Studio Code + Stm32 (IAR)
记录一下, 以前看别人在 vsc 下配置 stm32 工程非常麻烦。 最近,突然发现, iar 官方出了两个插件, iar build 、 iar C-Spy 安装之后,配置一下 iar 软件路径。 然后,直接打开工程目录,编译…...
小程序获取微信运动步数
1、用户点击按钮,在小程序中触发getuserinfo方法,获取用户信息 <scroll-view class"scrollarea" scroll-y type"list"><view class"container"><button bind:tap"getLogin">获取</button&…...
嵌入式Linux驱动开发之platform
关键词:rk3399 嵌入式驱动 Linux platform 前言 前面的嵌入式Linux驱动都是描述从特定的SOC与特定设备之间的直接两两通信。而Linux不是为单一某一SOC结构而设计的操作系统,它可以运行在X86、ARM等多种架构多种SOC平台上,如果驱动程序按照S…...
【蓝桥杯】43693.日期问题
题目描述 小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在 1960 年 1 月 1 日至 2059 年 12 月 31 日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用…...
opengrok_windows_多工程的同步
多工程的目录 工程代码下载和log配置 工程代码下载 在每个工程的src目录下,下载工程代码,以下载pulseaudio的代码为例。 git clone gitgithub.com:pulseaudio/pulseaudio.git log配置文件 拷贝D:\opengrok\opengrok-…...
Redis的安装和使用--Windows系统
Redis下载地址: windows版本readis下载(GitHub): https://github.com/tporadowski/redis/releases (推荐使用) https://github.com/MicrosoftArchive/redis/releases 官网下载(无Windows版本…...
【odbc】odbc连接kerberos认证的 hive和spark thriftserver
hive odbc驱动,以下两种都可以 教程:使用 ODBC 和 PowerShell 查询 Apache HiveHive ODBC Connector 2.8.0 for Cloudera Enterprise spark thriftserver本质就是披着hiveserver的外壳的spark server 完成kerberos认证: (1)可以…...
亚博microros小车-原生ubuntu支持系列:1 键盘控制
背景:电脑配置不太行,我在ubuntu再运行vmware,里面运行亚博官方的虚拟机镜像ubuntu,系统很卡。基本上8G内存给打满了。还是想把亚博官方的代码迁移出来,之前售后就说除了官方镜像虚拟机,需要自己摸索迁移。…...