大家好~我是
米洛
!
這是一個完整的接口測試平臺系列教程
,希望能和大家一起學習,從0到1打造一個開源平臺潮瓶。
歡迎關(guān)注我的龔仲耗測試開發(fā)坑貨
,獲取最新文章教程!
回顧
上一篇我們已經(jīng)基本結(jié)束
了對測試報告相關(guān)的處理工作闺鲸,其實博主最近在考慮怎么去優(yōu)化用例編寫/運行相關(guān)的地方筋讨,因為發(fā)現(xiàn)之前寫的過于辣雞了,用例還是不能完全依附
于項目摸恍,得有自己的生存之道呀!
于是我決定把項目
和用例在頁面上進行拆分,但是仍然保持樹的形式立镶。目前還沒有想到很好的UI展示效果壁袄,想到的話也得周末花時間去做了,所以我們先做數(shù)據(jù)庫相關(guān)的數(shù)據(jù)構(gòu)造器
工作媚媒。
為什么要做這塊嗜逻?
我們知道,在接口測試中缭召,經(jīng)常要拿數(shù)據(jù)庫的數(shù)據(jù)進行斷言操作
或者查詢數(shù)據(jù)
栈顷,可能有一些同學不會去db里面進行校驗,這個爭議咱們先不管嵌巷,但我是支持去db里面校驗數(shù)據(jù)的萄凤。
那么操作db,就得有db的一些連接信息搪哪。因為本人從未用過Oracle靡努,所以很禮貌地拒絕支持Oracle
。
選定好常見的關(guān)系型數(shù)據(jù)庫: Mysql+Postgresql即可晓折。我們不但有sql惑朦,還會支持Redis
。
本節(jié)內(nèi)容
- 設(shè)計好數(shù)據(jù)表存放的核心信息
- 完成數(shù)據(jù)庫配置的
增刪改查
功能
設(shè)計數(shù)據(jù)庫配置表
首先給它取個名字: pity_database_info
漓概,一目了然可以知道它是數(shù)據(jù)庫配置相關(guān)的表漾月。
id
env
sql_type
(數(shù)據(jù)庫類型, 0: mysql 1:postgres)name
(數(shù)據(jù)庫配置的名稱,比如: 訂單表)host
port
username
password
database
create_user
update_user
created_at
updated_at
-
deleted_at
基本上我們通過host:port/database@username:password就可以連接上咱們的數(shù)據(jù)庫胃珍,能連上了梁肿,咱們還怕操作不了數(shù)據(jù)庫嗎?
編寫DbConfigDao.py
首先編寫查詢功能
栈雳,我們可以根據(jù)env環(huán)境
,name別名
,database數(shù)據(jù)庫名
3個維度來查詢,至于后續(xù)需不需要host缔莲,待定哥纫,要加也很方便。
注意痴奏,不論是我們從Flask
切換到了FastApi
蛀骇,還是我們從同步切換到異步
,確實都需要一個過程读拆。但大家也不要驚慌擅憔,其實對我們來說,異步是一個提速
的過程檐晕。
重點是掌握async/await的寫法暑诸,去掉這2個關(guān)鍵字之后蚌讼,有沒有發(fā)現(xiàn)異步和同步代碼基本一致?所以个榕,我們要克服一下篡石,未來異步必定是Python
的趨勢。
query是咱們的查詢條件西采,當name存在凰萨,就以它為查詢條件。簡單解釋下: if name
在Python里面械馆,如果if后的對象不是bool對象的話胖眷,會自動進行轉(zhuǎn)義
,包括while也是霹崎。
比如大家熟悉的while 1:
,之所以能一直循環(huán)下去珊搀,是因為1被轉(zhuǎn)義為了True,效果等同于while True:
仿畸,這樣判斷比較簡潔
食棕,但存在一些陷阱
。
接著說這個功能错沽,選擇好對象的查詢條件了之后簿晓,我們就調(diào)用session.execute方法,查找出數(shù)據(jù)千埃,最后返回憔儿。
如果遇到異常
,我們直接拋出放可,給router處理谒臼。
編寫新增/刪除/修改功能
其實要注意的點是,我們使用了async with session.begin()
耀里,并在代碼塊里面繼續(xù)操作蜈缤。
這里博主
還沒有完全去研究,只是知道需要這么使用冯挎,大膽揣測一下是因為with...begin方法結(jié)束后會自動提交
數(shù)據(jù)庫的變更底哥,但不確定是不是這樣,有興趣的朋友可以去研究下房官。
編寫Router
這邊我封裝了專門的Response翰守,這樣以后就不需要一直手寫dict(code=0,msg="success")
這樣的返回了孵奶。
測試一下
后端這塊內(nèi)容并沒有結(jié)束,目前我們只是能夠把數(shù)據(jù)庫配置管理起來蜡峰,還達不到使用的效果了袁。
下一篇
將介紹如何在線執(zhí)行SQL并返回
朗恳,并用于case數(shù)據(jù)構(gòu)造器之中。篇幅可能會比較長早像,而我也需要做一部分前端
的內(nèi)容僻肖。
今天的內(nèi)容到這兒就結(jié)束啦卢鹦,感謝大家的觀看
。如果大家感興趣的話劝堪,可以和我一起敲起來冀自。我也會盡快給一個可用的版本
。