最便宜做公司網(wǎng)站app營(yíng)銷策劃方案
斷言
概念:讓程序代替人判斷測(cè)試用例執(zhí)行的結(jié)果是否符合預(yù)期的一個(gè)過程
特點(diǎn):
-
postman斷言使用js編寫,斷言寫在postman的tests中
-
tests腳本在發(fā)送請(qǐng)求之后執(zhí)行,會(huì)把斷言的結(jié)果最終在testresult中進(jìn)行展示
-
常用的postman提供的斷言片段有以下幾個(gè):
- status code is 200:斷言響應(yīng)狀態(tài)碼是否為200
- JSON value check:斷言響應(yīng)體json數(shù)據(jù)校驗(yàn)
- contains string:斷言響應(yīng)體是否包含字符串
- euqal to a string:斷言響應(yīng)體是否等于指定字符串
案例:
/* pm.test是postman內(nèi)置對(duì)象pm對(duì)外提供的一種名稱為test的方法,他的功能是使用pm.test來編寫測(cè)試腳本時(shí),即使方法內(nèi)部處理內(nèi)容出現(xiàn)錯(cuò)誤也不會(huì)影響后續(xù)自動(dòng)化腳本的運(yùn)行。 */
?
/* 斷言響應(yīng)狀態(tài)碼是否是200 */
pm.test("響應(yīng)狀態(tài)碼", function () {pm.response.to.have.status(200);
});
?
/* 斷言響應(yīng)的json數(shù)據(jù) */
pm.test("Your test name", function () {var jsonData = pm.response.json();pm.expect(jsonData.message).to.eql("用戶已存在"); ?/* jsondata就是后端返回給前端的json數(shù)據(jù),是js中的對(duì)象,獲取數(shù)據(jù)通過點(diǎn)點(diǎn)點(diǎn)的方式 */
});
?
/* "判斷響應(yīng)體是否和預(yù)期一致" */
pm.test("判斷響應(yīng)體是否和預(yù)期一致", function () {pm.response.to.have.body('{"code": 400, "message": "用戶已存在"}');
});
請(qǐng)求前置腳本-Pre-request-Script
概念:在postman的pre-request-script中,用于在請(qǐng)求發(fā)送之前做一些操作,比如設(shè)置環(huán)境變量或者全局變量
全局變量和環(huán)境變量
概念:
- 全局變量:是全局唯一的,不可以被重復(fù)定義
- 環(huán)境變量:可以有多套環(huán)境,如開發(fā)環(huán)境、測(cè)試環(huán)境、生產(chǎn)環(huán)境等,每個(gè)環(huán)境之間相互隔離,每個(gè)環(huán)境中可以定義多個(gè)環(huán)境變量,多個(gè)環(huán)境變量之間變量可以重復(fù),但是一個(gè)環(huán)境變量?jī)?nèi)變量不能重復(fù)。
- 注意:在使用環(huán)境變量時(shí),postman必須現(xiàn)將環(huán)境切換到環(huán)境變量下才可以使用對(duì)應(yīng)的環(huán)境變量,另外環(huán)境變量的優(yōu)先級(jí)是高于全局變量的。
設(shè)置變量:
-
全局變量
- 手動(dòng)設(shè)置
- 在請(qǐng)求前置腳本中通過代碼設(shè)置。
pm.globals.set("ip", "127.0.0.1"); pm.environment.set("port", "8000");
-
環(huán)境變量
- 手動(dòng)設(shè)置:需要先創(chuàng)建一個(gè)環(huán)境變量,然后在環(huán)境變量中進(jìn)行設(shè)置
- 在請(qǐng)求前置腳本中設(shè)置
pm.environment.set("name", "aaa");
獲取變量:
-
請(qǐng)求參數(shù)中獲取
- 獲取全局變量/環(huán)境變量:{{變量名稱}}
-
代碼中獲取:在請(qǐng)求前置腳本中獲取
pm.globals.get("variable_key"); /*獲取全局變量*/ pm.environment.get("variable_key"); /*獲取環(huán)境變量*/
接口關(guān)聯(lián)
實(shí)際場(chǎng)景中,很多接口之間都是有關(guān)聯(lián)的,意思就是另一個(gè)接口需要的數(shù)據(jù)來自于其他的接口,最典型的場(chǎng)景就是很多接口都需要登錄才能夠正常請(qǐng)求。
實(shí)現(xiàn)接口關(guān)聯(lián)的方式就是通過環(huán)境變量,步驟如下:
- 在tests也就是請(qǐng)求之后執(zhí)行的腳本中獲取接口返回?cái)?shù)據(jù),獲取接口返回?cái)?shù)據(jù)
var jsonData **=** pm.response.json();
- 將需要的接口數(shù)據(jù)添加到環(huán)境變量中。
- 在其他接口中使用環(huán)境變量即可。
讀取外部csv文件實(shí)現(xiàn)參數(shù)化
當(dāng)一個(gè)接口的測(cè)試數(shù)據(jù)非常多時(shí),可以使用csv文件進(jìn)行批量測(cè)試。
首先需要準(zhǔn)備csv文件。
使用csv文件中的數(shù)據(jù)時(shí),在請(qǐng)求中使用通過{{變量名}}
直接使用,在代碼斷言中需要借助postman內(nèi)置的data
方法獲取數(shù)據(jù),比如data.passwd
,data
表示的就是文件。
在批量運(yùn)行時(shí),選擇文件即可,postman會(huì)自動(dòng)讀取文件然后進(jìn)行測(cè)試
newman生成測(cè)試報(bào)告
newman是一款基于nodejs開發(fā)的可以運(yùn)行Postman腳本的工具,并且可以生成測(cè)試報(bào)告。
安裝newman之前需要先安裝node.js,安裝完成之后在安裝Newman,通過npm install -g newman
進(jìn)行安裝,最后安裝newman-reporter-html,同樣通過npm install -g newman-reporter-html
安裝。
安裝完成之后,就可以使用newman生成測(cè)試報(bào)告了,生成測(cè)試報(bào)告步驟如下:
- 導(dǎo)出測(cè)試集
- 導(dǎo)出環(huán)境變量
- 導(dǎo)出全局變量
- 建議將這三個(gè)文件放在同一個(gè)目錄下
- 最后執(zhí)行命令生成測(cè)試報(bào)告
newman run 測(cè)試腳本文件 -e 環(huán)境變量文件 -g 全局變量文件 -d 測(cè)試數(shù)據(jù)文件 -r html --reporter-html-export report.html
最后感謝每一個(gè)認(rèn)真閱讀我文章的人,禮尚往來總是要有的,這些資料,對(duì)于【軟件測(cè)試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉(cāng)庫(kù),雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:
這些資料,對(duì)于【軟件測(cè)試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉(cāng)庫(kù),這個(gè)倉(cāng)庫(kù)也陪伴上萬個(gè)測(cè)試工程師們走過最艱難的路程,希望也能幫助到你!?