做網(wǎng)站的實(shí)踐報(bào)告怎樣制作一個(gè)網(wǎng)站
什么時(shí)候會(huì)用到參數(shù)化
比如:一個(gè)模塊要用多組不同數(shù)據(jù)進(jìn)行測(cè)試? == 驗(yàn)證業(yè)務(wù)的正確性
Login模塊:正確的用戶(hù)名,密碼 ===成功;錯(cuò)誤的用戶(hù)名,正確的密碼 === 失敗
postman實(shí)現(xiàn)參數(shù)化
在實(shí)際的接口測(cè)試中,部分參數(shù)每次發(fā)送請(qǐng)求時(shí)都要唯一(比如注冊(cè)), 這時(shí)可采用postman把測(cè)試數(shù)據(jù)進(jìn)行參數(shù)化處理
postman設(shè)置參數(shù)的形式主要 有三種:
- 內(nèi)建變量實(shí)現(xiàn)
- Pre-request Script頁(yè)簽中使用代碼實(shí)現(xiàn) (推薦)
- 外部文件的方式實(shí)現(xiàn);如csv文件/json格式文件
一、內(nèi)建變量實(shí)現(xiàn)
Postman有以下三種內(nèi)建變量,適合一次性使用;缺點(diǎn):內(nèi)鍵變量不能做精確對(duì)比
{{$guid}}:生成GUID;如下圖:
{{$timestamp}}:當(dāng)前時(shí)間戳;如下圖
可通過(guò)在線時(shí)間戳轉(zhuǎn)換工具查看時(shí)間:https://tool.lu/timestamp/
{{$randomInt}}:0-1000的隨機(jī)整數(shù)
?二、Pre-request Script頁(yè)簽中使用代碼實(shí)現(xiàn)(推薦)
Pre-request Script為執(zhí)行接口請(qǐng)求之前要做的操作,而tests是執(zhí)行完請(qǐng)求要 做的操作。內(nèi)建變量一般放在Request里,我們也可以用代碼在Pre-request Script中實(shí)現(xiàn),用代碼實(shí)現(xiàn)的好處是可以復(fù)用。
Pre-request Script 與test 一樣 支持javascript語(yǔ)法
?在Pre-request Script中實(shí)現(xiàn)的幾種參數(shù)化;如下圖
//獲取當(dāng)前時(shí)間戳 毫秒 var now_time = Date.now() pm.globals.set("now_time",now_time)//guid實(shí)現(xiàn) const guid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' .replace(/x/g, () => (Math.floor(Math.random() * 16)).toString(16)) .replace(/y/g, () => (Math.floor(Math.random() * 4 + 8)).toString(16)); pm.globals.set("guid_value",guid)//隨機(jī)整數(shù)實(shí)現(xiàn) const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min pm.globals.set("randomInt_num",randomInt(8,15))//從多個(gè)選項(xiàng)中選擇實(shí)現(xiàn) const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min const getRandomValue = list => list[randomInt(0, list.length - 1)]; const charsInName = ['王','李','張'] pm.globals.set("people_name",getRandomValue(charsInName))//隨機(jī)手機(jī)號(hào)實(shí)現(xiàn) const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min var mobile_num = `18${randomInt(100000000, 999999999)}`; pm.globals.set("mobile_num",mobile_num)//同步等待實(shí)現(xiàn):等待5秒后開(kāi)始執(zhí)行 const sleep = (milliseconds) => { const start = Date.now(); while (Date.now() <= start + milliseconds) {} } sleep(5000)
實(shí)戰(zhàn)示例:通過(guò)Pre-request Script編寫(xiě)代碼可以在隨機(jī)參數(shù)中做斷言的精確比對(duì)
1、在Pre-request Script中編寫(xiě)代碼
?2、在請(qǐng)求中引用變量;{{變量名}}
?3、在tests中做斷言,驗(yàn)證實(shí)際結(jié)果和預(yù)期結(jié)果是否一致
?4、查看執(zhí)行結(jié)果
三、外部文件方式實(shí)現(xiàn)參數(shù)化
在postman中,除了上述兩種方法實(shí)現(xiàn)參數(shù)化,還可以利用外部數(shù)據(jù)文件 (支持csv文件和包含json格式文本的數(shù)據(jù))。外部數(shù)據(jù)文件目前是通過(guò)Runner 頁(yè)簽可以進(jìn)行導(dǎo)入。
csv文件格式舉例:
csv文件要在Collection Runner中工作,第一行必須是在request中要使用的 變量名,每一行是一條用例,并表示一次迭代。
1、先準(zhǔn)備csv文件,編碼是UTF-8;如上圖
2、在postman中引用變量名,如下圖中的百度搜索中wd的參數(shù)引入了{(lán){search_word}},tests頁(yè)簽中做斷言引用了data.expected_result
?自動(dòng)化測(cè)試相關(guān)教程推薦:
2023最新自動(dòng)化測(cè)試自學(xué)教程新手小白26天入門(mén)最詳細(xì)教程,目前已有300多人通過(guò)學(xué)習(xí)這套教程入職大廠!!_嗶哩嗶哩_bilibili
2023最新合集Python自動(dòng)化測(cè)試開(kāi)發(fā)框架【全棧/實(shí)戰(zhàn)/教程】合集精華,學(xué)完年薪40W+_嗶哩嗶哩_bilibili
測(cè)試開(kāi)發(fā)相關(guān)教程推薦
2023全網(wǎng)最牛,字節(jié)測(cè)試開(kāi)發(fā)大佬現(xiàn)場(chǎng)教學(xué),從零開(kāi)始教你成為年薪百萬(wàn)的測(cè)試開(kāi)發(fā)工程師_嗶哩嗶哩_bilibili
postman/jmeter/fiddler測(cè)試工具類(lèi)教程推薦
講的最詳細(xì)JMeter接口測(cè)試/接口自動(dòng)化測(cè)試項(xiàng)目實(shí)戰(zhàn)合集教程,學(xué)jmeter接口測(cè)試一套教程就夠了!!_嗶哩嗶哩_bilibili
2023自學(xué)fiddler抓包,請(qǐng)一定要看完【如何1天學(xué)會(huì)fiddler抓包】的全網(wǎng)最詳細(xì)視頻教程!!_嗶哩嗶哩_bilibili
2023全網(wǎng)封神,B站講的最詳細(xì)的Postman接口測(cè)試實(shí)戰(zhàn)教學(xué),小白都能學(xué)會(huì)_嗶哩嗶哩_bilibili
?3、點(diǎn)擊Runner按鈕,勾選需執(zhí)行的請(qǐng)求,在設(shè)置循環(huán)次數(shù),導(dǎo)入csv文件,點(diǎn)擊run執(zhí)行;如下圖
?4、查看執(zhí)行結(jié)果
json文件你需要確保你的文件有鍵/值對(duì)數(shù)組。數(shù)組中的每個(gè)元素是鍵值對(duì)對(duì) 象,代表一次迭代。key作為request中要使用的變量名,value作為key的取值。
json文件實(shí)現(xiàn)參數(shù)化步驟:
1、準(zhǔn)備要使用的json格式測(cè)試數(shù)據(jù)文件;
?2、在postman腳本中,HTTP requests中使用{{ key }}去引用,在script中使用 data. key 或者 data[“key”] 去引用;
?3、打開(kāi)Runner窗口,點(diǎn)擊Data旁邊的Select File按鈕,導(dǎo)入jsondata參數(shù)化文件; 點(diǎn)擊Data File Type類(lèi)型選擇application/json后,點(diǎn)擊Preview按鈕,檢查數(shù)據(jù)正確
?4、查看執(zhí)行結(jié)果
??總結(jié):
?光學(xué)理論是沒(méi)用的,要學(xué)會(huì)跟著一起敲,要?jiǎng)邮謱?shí)操,才能將自己的所學(xué)運(yùn)用到實(shí)際當(dāng)中去,這時(shí)候可以搞點(diǎn)實(shí)戰(zhàn)案例來(lái)學(xué)習(xí)。
如果對(duì)你有幫助的話,點(diǎn)個(gè)贊收個(gè)藏,給作者一個(gè)鼓勵(lì)。也方便你下次能夠快速查找。
如有不懂還要咨詢(xún)下方小卡片,博主也希望和志同道合的測(cè)試人員一起學(xué)習(xí)進(jìn)步
在適當(dāng)?shù)哪挲g,選擇適當(dāng)?shù)膷徫?#xff0c;盡量去發(fā)揮好自己的優(yōu)勢(shì)。
我的自動(dòng)化測(cè)試開(kāi)發(fā)之路,一路走來(lái)都離不每個(gè)階段的計(jì)劃,因?yàn)樽约合矚g規(guī)劃和總結(jié),
測(cè)試開(kāi)發(fā)視頻教程、學(xué)習(xí)筆記領(lǐng)取傳送門(mén)!!