进行接口测试时,连接数据库,对数据源进行备份、还原、验证操作

news2024/11/29 20:38:11

进行接口测试时,我们需要连接到数据库中,对数据源进行备份、还原、验证等操作。

一、Python连接数据库常见模块

  • MysqlDB
  • python2时代最火的驱动库。基于C开发,对windows平台不友好。现在已经进入python3时代,基本不再使用
  • MysqlClient
  • mysqldb的衍生版本,完全兼容python3.它是重量级Web开发框架Django中ORM功能依赖工具
  • Pymysql
  • 纯Python实现的驱动,性能比MysqlDb差,但是安装简单,容易使用
  • SQLAlchemy
  • 即支持原生SQL也支持ORM的库

我们以pymysql为例

二、Pymysql使用方法

安装方法:pip install pymysql

Pymsyql使用流程

  • 获取连接
  • 获取游标 --游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操作
  • 执行SQL语句
  • 关闭游标
  • 关闭连接

代码实现:

 
  1. # 创建数据库连接对象

  2. connect =

  3. pymysql.Connect(

  4. host='xxxxx',

  5. port=3306,

  6. user='root',

  7. password='XXXX',

  8. charset='utf8mb4',

  9. cursorclass=pymysql.cursors.DictCursor

  10. )

  11. connect:接收Pymysql.connect方法返回的对象,建立连接对象

  12. pymysql.Connect 建立连接方法

  13. host=XXXX 连接数据库服务器

  14. port=3306 连接数据库端口号

  15. user="root":用户名

  16. password="xxxxx":密码

  17. charset="utf8mb4":建立连接的编码

  18. cursorclass=pymysql.cursors.DictCursor:设置返回数据类型 返回字典

  19. # 建立游标

  20. cursor = conn.cursor()

  21. # 执行核心SQL语句

  22. cursor.execute("select version();")

  23. # 关闭游标

  24. cursor.close()

  25. # 关闭连接

  26. conn.close()

  27. 查询订单库

  28. 得到一个游标对象

  29. cursor = connect.cursor()

  30. 查询库名加表名

  31. mtxshop_trade.es_order

  32. cursor.execute("SELECT order_id,trade_sn FROM mtxshop_trade.es_order WHERE order_id=47050 OR order_id=47049")

  33. data = cursor.fetchall() #得到查询的所有结果

  34. cursor.close()#关闭游标对象

三、日志的基本概念

提到日志,无论是写框架代码还是业务代码,都离不开日志的记录,他能给我们定位问题带来极大的帮助,最佳的做法是使用内置的logging模块, 因为 logging 模块给开发者提供了非常丰富的功能。

日志级别

日志级别是为了控制打印日志的信息程度的

首先,配置日志模块时,需要先设置日志模块的日志等级

例如,如果设置为INFO级别,那么打印日志用DEBUG就不会输出日志。

  • DEBUG
  • INFO
  • WARNING
  • ERROR
  • CRITICAL

日志输出模式

  • 输出到控制台
  • 输出到文件

日志格式

指定输出的日志的格式和内容常见的格式有:

 
  1. %(levelno)s: 打印日志级别的数值

  2. %(levelname)s: 打印日志级别名称

  3. %(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]

  4. %(filename)s: 打印当前执行程序名

  5. %(funcName)s: 打印日志的当前函数

  6. %(lineno)d: 打印日志的当前行号

  7. %(asctime)s: 打印日志的时间

  8. %(thread)d: 打印线程ID

  9. %(threadName)s: 打印线程名称

  10. %(process)d: 打印进程ID

  11. %(message)s: 打印日志信息

logging使用流程

  • 第一步:实例化logging模块
  • 第二步:设置日志等级
  • 第三步:配置日志处理器、日志格式;日志处理器:控制日志的打印模式
  • 第四步:打印日志

logging模块处理流程

接口测试框架实现日志收集功能

编写日志配置函数代码

这个函数配置了输出日志到控制台和文件,并且设置了日志打印格式
 

  1. def logging_init():

  2. # 初始化日志器

  3. logger = logging.getLogger()

  4. # 设置日志等级

  5. logger.setLevel(logging.INFO)

  6. # 添加控制器

  7. stream_handler = logging.StreamHandler()

  8. file_handler = logging.handlers.TimedRotatingFileHandler(config.BASE_DIR + "/logs/lagou_log.log", when='h',

  9. interval=1,backupCount=3, encoding="utf-8")

  10. # 设置日志格式

  11. fmt = "%(asctime)s %(levelname)s [%(name)s] [ %(filename)s %(funcName)s % (lineno)d ] %(message)s "

  12. formatter = logging.Formatter(fmt)

  13. # 将日志格式添加到控制器

  14. stream_handler.setFormatter(formatter)

  15. file_handler.setFormatter(formatter)

  16. # 将控制器添加到日志器

  17. logger.addHandler(stream_handler)

  18. logger.addHandler(file_handler)

  19. return logger

然后在api. init .py 中调用这个函数,完成日志的初始化

  1. from utils import logging_init

  2. # 初始化日志配置函数

  3. logging_init()

  4. # 测试打印日志

  5. import logging

  6. logging.info(" 测 试 info 级 别 的 日 志 打 印 ")

  7. logging.debug("测试debug级别的日志打印") #不会打印

在api. init .py 初始化日志配置的原因:

execute执行script中的用例,script中的用例是调用api 的接口实现接口测试,按照模块语法,调用模块时,会自动执行模块下的 init .py 代码

后续,只需要在需要打印日志的模块,导入logging安装包,就可以输出我们配置好日志格式和日志等级的日志信息了

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1603110.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OPC-UA是这样在食品和饮料中应用的

什么是 OPC-UA OPC Unified Architecture,即 OPC-UA,是一种基于 TCP/IP 的协议,用于自动化工程师实时、高可靠性、高效性地在控制系统级别共享数据。 OPC-UA 的特点 安全通信: OPC-UA 使用先进的加密方法和严格的访问控制,确保数…

基于STM32的交通灯(OLED屏显示倒计时)的Proteus仿真

文章目录 一、前言二、交通灯1.题目要求2.思路3.画图正常情况模拟故障情况 4.软件 三、总结 一、前言 最近下载了Proteus仿真软件,闲来无事也试试画一个简单的仿真图。 有需要软件的朋友可以去我的另外一篇博客下载和安装。 自用Proteus(8.15)仿真下载安装过程&a…

C++进阶(2)-函数

目录 一、函数提高 1.1函数默认参数 1.2函数占位参数 1.3函数重载 1.3.1函数重载概述 1.3.2函数重载注意事项 二、类和对象 2.1封装 2.1.1封装的意义 2.1.2struct和class区别 2.1.3成员属性设置为私有 2.1.4封装案例 2.2对象的初始化和清理 2.2.1构造函数和析构函数 …

数据大爆炸:WordCount程序的多元化执行方式

文章目录 主要内容1.左方工作区右键New,选择Map文件2.再创建mymap,myreducer,mywordcount类:3.打包在linux中运行,注意处理的文件式完全分布式文件3.1打jar包步骤: 4.完成内容 主要内容 尝试使用不同的方式运行wordcount程序。 1&#xff09…

去哪网拿去花不能提现,只能用于透支消费,那么拿去花提现是怎么实现呢?

去哪网拿去花不能提现,只能用于透支消费,那么拿去花提现是怎么实现呢? 申请携程拿去花之后,有一些人就会想着把钱提现出来拿去用。一般来说,他们都是通过线下门店来提现拿去花,拿去花允许用户先消费后付款&…

Unity类银河恶魔城学习记录13-1 p142 Save system源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili FileDataHandler.cs using System; using System.IO; using UnityEngine; p…

什么地推网推拉新副业平台最值得推荐? 赚取互联网第一桶金

随着互联网的发展,新型行业层出不穷。其中地推网推拉新作为互联网行业具有收入高、门槛低、时间自由等优势,一部分人从中嗅到了商机,开始纷纷接触并加入了进来。但还是有一部分人对于地推网推拉新的了解很少,不知道如何才能加入其…

程序设计|C语言教学——C语言基础1:C语言的引入和入门

一、程序的执行 1.定义 解释:借助一个程序,那个程序能够试图理解你的程序,然后按照你的要求执行。下次执行的时候还需要从零开始解释。 编译:借助一个程序,能够像翻译官一样,把你的程序翻译成机器语言&a…

IoC与Spring

目录 IoC控制反转 现实案例 特点 目的 DI依赖注入 小总结 介绍Spring 狭义和广义上的Spring 传统编码方式的不足 需求引入 弊端分析 IoC控制反转 现实案例 1、买水果问老板各种水果的口感而不是自己去挨个尝试一遍。 2、买房子找中介而不是自己去花时间找房东。…

字节对编码 (BPE):提升语言处理的效率和有效性

原文地址:byte-pair-encoding-bpe-bridging-efficiency-and-effectiveness-in-language-processing 2024 年 4 月 12 日 介绍 在快速发展的自然语言处理 (NLP) 领域,对人类语言高效解析和理解的追求带来了重大创新。字节对编码(BPE&#x…

Windows 任务计划程序 【不管用户是否登录都要运行】执行时不显示CMD或程序窗口

任务计划程序右侧可以导出xml 「只在用户登录时运行」LogonType:InteractiveToken。 「不管用户是否登录都要运行」LogonType:Password。 用管理员运行CMD :schtasks /change /it /tn "test" 「不管用户是否登录都要运行」Logon…

邮件过滤是什么?怎么设置邮件过滤?

现在我们每天都要收发很多电子邮件。有的是朋友发来的问候,有的是工作伙伴的沟通,还有的可能是那些我们不想要的广告或垃圾邮件。这么多邮件,怎么看过来呀?其实,有一个好工具叫“邮件过滤”,它就像你的私人…

Python --- 怎么把Python当计算器用?(小白自学笔记)

怎么把Python当计算器用?(小白自学笔记) Part I:标准数学包的导入 今天刚刚装了python,打算用它来取代matlab的基本计算功能,当我的日常计算器用。(这里还有一个捷径,如果你跟我一样也是纯小白的话,直接问c…

市场复盘总结 20240417

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 二进三: 进级率 100% 最常用的二…

鸿蒙相关岗位需求突增!你具体知道都有哪些岗位吗?

1 月 18 日,鸿蒙 Next 预览版面向开发者正式开放申请。至此,鸿蒙原生应用版图已成型,这个中国自主研发的操作系统,正式走上了独立之路。 随后迎来了不少互联网公司与华为鸿蒙原生应用达成了合作,像我们常见的阿里、京…

[ ROS入门]

00ROS实现流程大致分为5步 先创建一个工作空间;再创建一个功能包;编辑源文件;编辑配置文件;编译并执行。 01创建工作空间 02进入src创建ros包并添加依赖 上述命令,会在工作空间下生成一个功能包,该功能包依…

OpenHarmony实战开发-如何使用Navigation实现多设备适配。

介绍 在应用开发时,一个应用需要适配多终端的设备,使用Navigation的mode属性来实现一套代码,多终端适配。 效果图预览 使用说明 将程序运行在折叠屏手机或者平板上观看适配效果。 实现思路 本例涉及的关键特性和实现方案如下&#xff1a…

TR-DPO:革新大模型对齐技术

这篇论文中提出的TR-DPO(Trust Region Direct Preference Optimization)方法的架构或流程设计主要侧重于改进语言模型对齐过程中的稳定性和有效性。 在传统的对齐方法中,模型在学习的时候需要尽可能地靠近一个预先设定的参考模型。这就像是给…

https加密证书

网站要出去安全模式访问,加强网络安全就需要使用HTTPS加密证书。 本文主要介绍什么是HTTPS加密证书,如何申请HTTPS加密证书,如何安装HTTPS加密证书等问题展开讨论。 什么是HTTPS加密证书? HTTPS加密证书的行业产品用语叫作SSL证…

将gidp模块、ipam集成到ultralytics项目中实现gidp-yolov8、ipam-yolov8

gdip-yolo与ia-seg都是一种将图像自适应模块插入模型前面,从而提升模型在特定数据下检测能力的网络结构。gdip-yolo提出了gdip模块,可以应用到大雾数据与低亮度数据(夜晚环境),然后用于目标检测训练;ia-seg将ia-yolo中的代码修改了一下修车了ipam模块,应用到低亮度数据(…