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

embedded/2025/1/20 6:50:01/

目录

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

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

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中项目的配置:

分支名称注意要根据gitee中相应项目的具体分支名称来填写


http://www.ppmy.cn/embedded/155410.html

相关文章

2025.1.16——五、LoveSQL1 sqlmap文件类|万能密码

题目来源:BUUCTF [极客大挑战 2019]LoveSQL 1 目录 一、打开靶机,分析信息 二、sqlmap解题——文件类 step 1:通过url进行爆破 step 2:抓包并将信息保存为文件进行爆破数据库 step 3:爆表 step 4:爆…

MATLAB中regexptranslate函数用法

目录 语法 说明 示例 转换特殊字符 对替代文本中的特殊字符进行转义 转换通配符 使用正则表达式替换文本 regexptranslate函数的功能是将文本转换为正则表达式。 语法 newStr regexptranslate(op,str) 说明 newStr regexptranslate(op,str) 会将 str 转换为正则表达…

费解的开关

费解的开关 你玩过“拉灯”游戏吗? 25 盏灯排成一个 55 的方形。 每一个灯都有一个开关,游戏者可以改变它的状态。 每一步,游戏者可以改变某一个灯的状态。 游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也…

HTML-BFC+SEO+标签应用实例

文章目录 BFC语义化标签和SEO语义化标签实例页面结构类文本内容类列表类多媒体类特殊功能类 以下是<figure>和<figcaption>标签的一些应用实例&#xff1a;图片展示图表展示代码示例展示引述或诗歌展示数学公式展示多媒体内容展示 以下是<details>和<summ…

element-ui制作多颜色选择器

将颜色存储到一个数组中去。 <template><div class"color-picker-container" style"margin-top: 10px;"><!-- 显示已选颜色 --><div class"color-selection"><divv-for"(color, index) in selectedColors"…

4.若依 BaseController

若依的BaseController是其他所有Controller的基类&#xff0c;一起来看下BaseController定义了什么 1. 定义请求返回内容的格式 code/msg/data 返回数据格式不是必须是AjaxResult&#xff0c;开发者可以自定义返回格式&#xff0c;注意与前端取值方式一致即可。 2. 获取调用…

【React】class组件extends继承原理

目录 class语法基于extends实现继承 在学习React中的 class组件时&#xff0c;先巩固一下ES6中class语法和继承原理&#xff0c;后面介绍如何基于extends实现继承。 class语法 静态属性和方法是属于类本身的&#xff0c;而不是类的实例对象。静态成员通常用于描述类的特征或功…

IOS工程师

IOS工程师 职位描述 负责程序的开发测试调试工作。 负责后期维护 任职要求 有扎实的Objective-C/Swift语言基础 熟悉IOS开发技术&#xff0c;包括UI、网络等方面 熟悉IOS开发工具和相关开发测试工具的使用 熟悉多线程和网络编程&#xff0c;对高性能程序设计、架构有较多…