程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python接口自動化核心模塊 - 數據庫操作和日志

編輯:Python

進行接口測試時,我們需要連接到數據庫中,對數據源進行備份、還原、驗證等操作。

Python連接數據庫常見模塊
MysqlDB

python2時代最火的驅動庫。基於C開發,對windows平台不友好。現在已經進入python3時代,基本不再使用

MysqlClient

它是重量級Web開發框架Django中ORM功能依賴工具

Pymysql

純Python實現的驅動,性能比MysqlDb差,但是安裝簡單,容易使用

SQLAlchemy

即支持原生SQL也支持ORM的庫

我們以pymysql為例

01
Pymysql使用方法

安裝方法:pip install pymysql

Pymsyql使用流程
獲取連接

獲取游標 --游標的作用就是用於對查詢數據庫所返回的記錄進行遍歷,以便進行相應的操作

執行SQL語句

關閉游標

關閉連接


代碼實現:

創建數據庫連接對象

connect =

pymysql.Connect(

 host='xxxxx',
port=3306,
user='root',
password='XXXX',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor

)

connect:接收Pymysql.connect方法返回的對象,建立連接對象

pymysql.Connect 建立連接方法

host=XXXX 連接數據庫服務器

port=3306 連接數據庫端口號

password=“xxxxx”:密碼

charset=“utf8mb4”:建立連接的編碼

cursorclass=pymysql.cursors.DictCursor:設置返回數據類型 返回字典

建立游標

cursor = conn.cursor()

執行核心SQL語句

關閉游標

cursor.close()

關閉連接

conn.close()

查詢訂單庫

得到一個游標對象

cursor = connect.cursor()

查詢庫名加表名

mtxshop_trade.es_order

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

data = cursor.fetchall() #得到查詢的所有結果

cursor.close()#關閉游標對象

02
日志的基本概念

提到日志,無論是寫框架代碼還是業務代碼,都離不開日志的記錄,他能給我們定位問題帶來極大的幫助,最佳的做法是使用內置的logging模塊, 因為 logging 模塊給開發者提供了非常豐富的功能。

日志級別

日志級別是為了控制打印日志的信息程度的

首先,配置日志模塊時,需要先設置日志模塊的日志等級

例如,如果設置為INFO級別,那麼打印日志用DEBUG就不會輸出日志。

DEBUG

INFO

WARNING

ERROR

CRITICAL

日志輸出模式

輸出到控制台

輸出到文件

日志格式

指定輸出的日志的格式和內容常見的格式有:

%(levelno)s: 打印日志級別的數值

%(levelname)s: 打印日志級別名稱

%(pathname)s: 打印當前執行程序的路徑,其實就是sys.argv[0]

%(filename)s: 打印當前執行程序名

%(funcName)s: 打印日志的當前函數

%(lineno)d: 打印日志的當前行號

%(asctime)s: 打印日志的時間

%(thread)d: 打印線程ID

%(threadName)s: 打印線程名稱

%(process)d: 打印進程ID

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

logging使用流程

第一步:實例化logging模塊

第二步:設置日志等級

第三步:配置日志處理器、日志格式;日志處理器:控制日志的打印模式

第四步:打印日志

01
logging模塊處理流程

接口測試框架實現日志收集功能

編寫日志配置函數代碼

這個函數配置了輸出日志到控制台和文件,並且設置了日志打印格式

def logging_init():

初始化日志器

logger = logging.getLogger()

設置日志等級

logger.setLevel(logging.INFO)

添加控制器

stream_handler = logging.StreamHandler()

file_handler = logging.handlers.TimedRotatingFileHandler(config.BASE_DIR + “/logs/lagou_log.log”, when=‘h’,

interval=1,backupCount=3, encoding=“utf-8”)

設置日志格式

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

formatter = logging.Formatter(fmt)

將日志格式添加到控制器

stream_handler.setFormatter(formatter)

file_handler.setFormatter(formatter)

將控制器添加到日志器

logger.addHandler(stream_handler)

logger.addHandler(file_handler)

return logger

然後在api. init .py 中調用這個函數,完成日志的初始化

from utils import logging_init

初始化日志配置函數

logging_init()

測試打印日志

import logging

logging.debug(“測試debug級別的日志打印”) #不會打印

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

execute執行script中的用例,script中的用例是調用api 的接口實現接口測試,按照模塊語法,調用模塊時,會自動執行模塊下的 init .py 代碼

後續,只需要在需要打印日志的模塊,導入logging安裝包,就可以輸出我們配置好日志格式和日志等級的日志信息了


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved