当前位置: 首页 > news >正文

金融项目实战 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中项目的配置:

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

http://www.lryc.cn/news/523838.html

相关文章:

  • (快速入门)保姆级详细的 Midjourney 基础教程
  • leetcode——找到字符串中所有字母异位词(java)
  • 大文件上传服务-后端V1V2
  • Single-Model and Any-Modality for Video Object Tracking——2024——cvpr-阅读笔记
  • 阳振坤:AI 大模型的基础是数据,AI越发达,数据库价值越大
  • Linux磁盘空间不足,12个详细的排查方法
  • Spring Web MVC综合案例
  • 微软预测 AI 2025,AI Agents 重塑工作形式
  • lvgl性能调优
  • CSS实现实现票据效果 mask与切图方式
  • STL--list(双向链表)
  • ZooKeeper 中的 ZAB 一致性协议与 Zookeeper 设计目的、使用场景、相关概念(数据模型、myid、事务 ID、版本、监听器、ACL、角色)
  • “深入浅出”系列之C++:(11)推荐一些C++的开源项目
  • 《重生到现代之从零开始的C++生活》—— 类和对象2
  • “UniApp的音频播放——点击视频进入空白+解决视频播放器切换视频时一直加载的问题”——video.js、video-js.css
  • 【Pandas】pandas Series transform
  • 【博客之星2024年度总评选】年度回望:我的博客之路与星光熠熠
  • 飞牛 使用docker部署Watchtower 自动更新 Docker 容器
  • 【Block总结】TAdaConv时序自适应卷积,轻量高效的时间建模卷积|即插即用
  • Spring Boot 项目启动报错 “找不到或无法加载主类” 解决笔记
  • CSS 网络安全字体
  • Linux高并发服务器开发 第十五天(fork函数)
  • 【人工智能】Python中的自动化机器学习(AutoML):如何使用TPOT优化模型选择
  • 探秘自然地理:从太阳到地球的奇妙之旅与灾害预警
  • go语言zero框架通过chromedp实现网页在线截图的设计与功能实现
  • AI发展困境:技术路径与实践约束的博弈
  • [前端算法]排序算法
  • Zemax STAR 模块的入门设置
  • 知识图谱的语义叙事:构建智慧的连贯之路
  • Oracle graph 图数据库体验-安装篇