接口測試之postman斷言方法(五)

postman是一款功能強(qiáng)大的網(wǎng)頁調(diào)試和HTTP請求的Chrome插件。postman里提供完整的斷言方法,無需我們會寫,只要我們能夠使用即可。就像我們不用了解空調(diào)的內(nèi)部結(jié)構(gòu),只要會使用就好。

postman->Tests->右側(cè)單擊所需斷言方法即可添加成功,再進(jìn)行修改使用。

斷言結(jié)果PASS和FAIL


下面具體介紹斷言方法,并結(jié)合具體的接口實(shí)例。

查詢發(fā)布會接口URL:http://127.0.0.1:8000/api/get_event_list/?eid=6&name='ipad發(fā)布會',response body如下:

1、設(shè)置/清除一個(gè)全局變量 (Set/Clear a global variable)

? ? 對應(yīng)腳本:

? ? pm.globals.set("variable_key", "variable_value");

? ? postman.clearGlobalVariable("variable_key");

? ? 參數(shù):需要設(shè)置/清除的變量的key,需要設(shè)置的變量value

2、設(shè)置/清除一個(gè)環(huán)境變量(需要在多個(gè)環(huán)境測試同一個(gè)接口)

? ? Set/Clear an environment variable

? ? 對應(yīng)腳本:

? ? pm.environment.set("variable_key", "variable_value");

? ? pm.environment.unset("variable_key");

? ? 參數(shù):需要清除的環(huán)境變量的key,需要設(shè)置的變量value

3、response包含內(nèi)容(Response body:Contains string)

對應(yīng)腳本如下面兩種:

//發(fā)布會查詢接口response body包含name字段,注意斷言名稱可自行定義,tests["自定義"]

pm.test("Body matches name", function () {? pm.expect(pm.response.text()).to.include("name");});

//簡化方法,發(fā)布會查詢接口response body的limit字段是否包含1000

tests["校驗(yàn)limit是否為1000"] =responseBody.has("1000");

4、將xml格式的response轉(zhuǎn)換成son格式( Response body:Convert XML body to a JSON Object)

對應(yīng)腳本:? var jsonObject = xml2Json(responseBody);

5、response等于預(yù)期內(nèi)容( Response body:Is equal to a string)

對應(yīng)腳本:

? ? tests["Body is correct"] = responseBody === "response_body_string";

? ? 參數(shù):預(yù)期response

6、json解析key的值進(jìn)行校驗(yàn)(Response body:JSON value check)

? ? 對應(yīng)腳本:

? ? tests["Args key contains argument passed as url parameter"] = 'test' in responseJSON.args

? ? 參數(shù):test替換被測的值,args替換被測的key

7、檢查response的header信息是否有被測字段

? ? Response headers:Content-Type header check

? ? 對應(yīng)腳本:tests["Content-Type is present"] = postman.getResponseHeader("Content-Type");

? ? 參數(shù):預(yù)期header

8、響應(yīng)時(shí)間判斷

? ? Response time is less than 200ms

? ? 對應(yīng)腳本: tests["Response time is less than 200ms"] = responseTime < 200;

? ? 參數(shù):響應(yīng)時(shí)間

9、判斷狀態(tài)碼

? ? ? Status code:Code is 200

? ? ? 對應(yīng)腳本:tests["Status code is 200"] = responseCode.code != 400;

? ? ? 參數(shù):狀態(tài)碼

10、檢查code name 是否包含內(nèi)容

? ? ? Status code:Code name has string

? ? ? 對應(yīng)腳本: tests["Status code name has string"] = responseCode.name.has("Created");

? ? ? 參數(shù):預(yù)期code name包含字符串


11、成功的post請求

? ? ? Status code:Successful POST request

? ? ? 對應(yīng)腳本:? tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;

12、微小驗(yàn)證器

? ? ? Use Tiny Validator for JSON data? ? ? ? ? ?

? ? ? 對應(yīng)腳本:

? ? ? ? var schema = {

? ? ? ? "items": {

? ? ? ? "type": "boolean"

? ? ? ? ? ? }

? ? ? ? };

? ? ? ? var data1 = [true, false];

? ? ? ? var data2 = [true, 123];

? ? ? ? console.log(tv4.error);

? ? ? ? tests["Valid Data1"] = tv4.validate(data1, schema);

? ? ? ? tests["Valid Data2"] = tv4.validate(data2, schema);

? ? ? ? 參數(shù):可以修改items里面的鍵值對來對應(yīng)驗(yàn)證json的參數(shù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 清除一個(gè)全局變量 Clear a global variable 對應(yīng)腳本: postman.cle...
    明小五閱讀 1,105評論 0 0
  • 【Tests】例子 在發(fā)送請求并從服務(wù)器收到響應(yīng)后運(yùn)行測試腳本。 讓我們看一下Postman-Tests模塊的一些...
    小娟_bb93閱讀 790評論 0 0
  • 內(nèi)置腳本說明 1.清除一個(gè)全局變量 Clear a global variable 對應(yīng)腳本: postman.c...
    MR_LiY閱讀 2,022評論 0 1
  • 簡介 Postman 使一款可以方便我們調(diào)用API的工具,通過Postman 與 Newman結(jié)合我們還可以批量運(yùn)...
    公子小白123閱讀 2,727評論 0 3
  • 時(shí)過境遷 時(shí)輪難阻蒼大千, 過往柔情已經(jīng)年, 境心豈是轉(zhuǎn)瞬事, 遷流暮雨意無眠。
    流年_逝水閱讀 331評論 1 2

友情鏈接更多精彩內(nèi)容