tft每日頭條

 > 科技

 > python接口自動化架構

python接口自動化架構

科技 更新时间:2024-08-09 16:33:20

每天進步一點點,關注我們哦,每天分享測試技術文章

本文章出自【碼同學軟件測試】

碼同學公衆号:自動化軟件測試

碼同學抖音号:小碼哥聊軟件測試

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

Python連接數據庫常見模塊
  • mysqldb
  • python2時代最火的驅動庫。基于C開發,對windows平台不友好。現在已經進入python3時代,基本不再使用
  • MysqlClient
  • mySQLdb的衍生版本,完全兼容python3.它是重量級Web開發框架Django中ORM功能依賴工具
  • Pymysql
  • 純Python實現的驅動,性能比MysqlDb差,但是安裝簡單,容易使用
  • SQLAlchemy
  • 即支持原生SQL也支持ORM的庫

我們以pymysql為例

01

Pymysql使用方法

安裝方法:pip install pymysql

Pymsyql使用流程
  • 獲取連接
  • 獲取遊标 --遊标的作用就是用于對查詢數據庫所返回的記錄進行遍曆,以便進行相應的操作
  • 執行SQL語句
  • 關閉遊标
  • 關閉連接

python接口自動化架構(Python接口自動化核心模塊)1

python接口自動化架構(Python接口自動化核心模塊)2

代碼實現:

# 創建數據庫連接對象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 連接數據庫端口号user="root":用戶名password="xxxxx":密碼charset="utf8mb4":建立連接的編碼 cursorclass=pymysql.cursors.DictCursor:設置返回數據類型 返回字典 # 建立遊标cursor = conn.cursor()# 執行核心SQL語句cursor.execute("select version();")# 關閉遊标cursor.close()# 關閉連接conn.close() 查詢訂單庫得到一個遊标對象cursor = connect.cursor()查詢庫名加表名 mtxshop_trade.es_ordercursor.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 模塊給開發者提供了非常豐富的功能。

python接口自動化架構(Python接口自動化核心模塊)3

日志級别

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

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

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

  • DEBUG
  • INFO
  • WARNING
  • ERROR
  • CRITICAL

python接口自動化架構(Python接口自動化核心模塊)4

日志輸出模式

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

python接口自動化架構(Python接口自動化核心模塊)5

日志格式

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

%(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模塊
  • 第二步:設置日志等級
  • 第三步:配置日志處理器、日志格式;日志處理器:控制日志的打印模式
  • 第四步:打印日志

免費領取 碼同學軟件測試 課程筆記 超多學習資料 完整視頻 最新面試題,可以轉發文章 私信「碼同學666」獲取資料哦

01

logging模塊處理流程

python接口自動化架構(Python接口自動化核心模塊)6

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

編寫日志配置函數代碼

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

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 logginglogging.info(" 測 試 info 級 别 的 日 志 打 印 ")logging.debug("測試debug級别的日志打印") #不會打印

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

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

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

python接口自動化架構(Python接口自動化核心模塊)7

免費領取碼同學軟件測試課程筆記 超多學習資料 學習完整視頻,可以關注我們公衆号哦:自動化軟件測試

本文著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved