大家好理卑,我是米洛翘紊,一個(gè)
測(cè)試開(kāi)發(fā)
博主,world很大藐唠, 你應(yīng)該去看看帆疟!
歡迎大家關(guān)注我的龔仲耗: 測(cè)試開(kāi)發(fā)坑貨。
這篇文章閱讀需要一定的耐心宇立,如果看的不爽可以點(diǎn)個(gè)贊
提醒一下博主鸯匹。
回顧
上篇已經(jīng)找到了一個(gè)可測(cè)
的項(xiàng)目,但是遇到了需要登錄的問(wèn)題泄伪。正常來(lái)說(shuō),我們?nèi)绻麑?xiě)代碼的話匿级,肯定很方便,在setUp這類(lèi)方法里咔咔咔
登錄一下,存儲(chǔ)對(duì)應(yīng)的JSESSIONID捌朴,然后測(cè)試函數(shù)就能夠用JSESSIONID暢通無(wú)阻訪問(wèn)項(xiàng)目了蛉幸。
找個(gè)例子
下面我們來(lái)看一個(gè)簡(jiǎn)單
的例子:
如圖所示孤页,我想測(cè)試一個(gè)獲取用戶列表的接口
尔苦,對(duì)應(yīng)這個(gè)頁(yè)面。因?yàn)槲覀儠簳r(shí)沒(méi)有整理出對(duì)應(yīng)的接口文檔,只能自己看代碼或者抓包
去了解這個(gè)請(qǐng)求允坚。
好在這個(gè)請(qǐng)求比較簡(jiǎn)單魂那,是個(gè)GET,并且接受一個(gè)nickname
字段稠项。根據(jù)經(jīng)驗(yàn)
涯雅,這個(gè)接口可以根據(jù)對(duì)應(yīng)的用戶名查詢對(duì)應(yīng)的用戶信息。
平臺(tái)化思路
那么平臺(tái)化的話展运,應(yīng)該怎么做呢活逆?我們剛才梳理了具體的過(guò)程。
- 設(shè)計(jì)用例
- 調(diào)用login接口拗胜,獲取到憑據(jù)(token/cookie等)
- 根據(jù)憑據(jù)請(qǐng)求
獲取用戶列表接口
- 根據(jù)對(duì)應(yīng)的用例制造不同的請(qǐng)求參數(shù)(nickname)
- 根據(jù)用例編寫(xiě)對(duì)應(yīng)的斷言信息
熟悉Python+excel的朋友蔗候,可能會(huì)在excel添加了好多條測(cè)試數(shù)據(jù)和期望結(jié)果了,其實(shí)平臺(tái)化
也是類(lèi)似埂软。
我們只需要關(guān)心一個(gè)用例的真正執(zhí)行過(guò)程:
- 登錄獲取憑據(jù)
- 通過(guò)憑據(jù)請(qǐng)求接口
明白這點(diǎn)的話锈遥,我們就開(kāi)始改造我們的Executor
類(lèi)了。所以我們要做的就是先執(zhí)行登錄用例
仰美,再執(zhí)行測(cè)試用例
迷殿。換句話說(shuō),登錄用例是該測(cè)試用例的前置條件
(setUp/初始化數(shù)據(jù)操作)咖杂,我這里給他取了個(gè)名兒: 數(shù)據(jù)構(gòu)造器
庆寺,因?yàn)槲覀兂Uf(shuō)的接口之間的依賴(lài),常常是數(shù)據(jù)引起诉字,如果登錄后能拿到憑據(jù)懦尝,那么我們對(duì)登錄的依賴(lài)就被解決了。
我們執(zhí)行用例的時(shí)候壤圃,是這樣的順序陵霉,如果用例有數(shù)據(jù)構(gòu)造器
,那么我們先執(zhí)行數(shù)據(jù)構(gòu)造器
方法伍绳,目的就是把依賴(lài)數(shù)據(jù)
拿到踊挠。
Constructor表
id,deleted_at,created_at,create_user,update_user這些字段都是老生常談了,不贅述了冲杀。
-
type
我們的數(shù)據(jù)可能來(lái)自一次http請(qǐng)求效床,redis操作,sql查詢权谁,其它測(cè)試用例等等剩檀。我暫時(shí)定了3個(gè)最常見(jiàn)的:
0: testcase 1: sql 2: redis
其他的我們后續(xù)遇到再補(bǔ)充,肯定會(huì)有的旺芽,比如py腳本等等
沪猴。 name:構(gòu)造器的描述
-
enable: 是否開(kāi)啟
比如某天你暫時(shí)不需要進(jìn)行這個(gè)操作了辐啄,你可以臨時(shí)關(guān)閉,后續(xù)可以打開(kāi)运嗜。
public: 是否公開(kāi)壶辜,不公開(kāi)就只能你自己舒服別人不能舒服
case_id: 這個(gè)構(gòu)造器所屬的case_id
-
value: 構(gòu)造器的返回值
這個(gè)大家能理解吧,我構(gòu)造了數(shù)據(jù)洗出,是為了
讓自己再取出來(lái)
士复。比如我set woody="帥哥",后續(xù)我是要用這個(gè)帥哥的
翩活,那么此時(shí)的woody就是value了阱洪,或者叫return_value更方便理解。 -
constructor_json: 構(gòu)造json
由于我們不同的數(shù)據(jù)菠镇,對(duì)應(yīng)不同的數(shù)據(jù)格式冗荸。舉個(gè)例子,如果我是個(gè)sql類(lèi)型利耍,我可能需要jdbcUrl(數(shù)據(jù)庫(kù)連接地址)蚌本,sql等關(guān)鍵信息,其實(shí)這種情況我們用
mongo
當(dāng)數(shù)據(jù)庫(kù)會(huì)更舒服隘梨。只不過(guò)為了降低系統(tǒng)復(fù)雜度程癌,盡量少引入新的組件,能忍就忍了轴猎。
定義造數(shù)器請(qǐng)求參數(shù)
編寫(xiě)新增數(shù)據(jù)構(gòu)造器功能
頁(yè)面操作
- 為對(duì)應(yīng)的用例添加構(gòu)造器
-
選擇測(cè)試用例類(lèi)型
最后的效果就是嵌莉,查詢所有用戶列表
用例擁有了一個(gè)用戶正常登錄
的數(shù)據(jù)構(gòu)造器。
這期的內(nèi)容就到這里了捻脖,太多了我自己都消化不良锐峭。
在線演示地址: https://pity.fun/
前端代碼倉(cāng)庫(kù): https://github.com/wuranxu/pityWeb
后端代碼倉(cāng)庫(kù): https://github.com/wuranxu/pity