国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Postman 腳本的奧秘:JavaScript 的內(nèi)置對(duì)象和方法

這篇具有很好參考價(jià)值的文章主要介紹了Postman 腳本的奧秘:JavaScript 的內(nèi)置對(duì)象和方法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

postman的前后置腳本中是完全支持 JavaScript 編寫代碼,JavaScript 有很多內(nèi)置的對(duì)象和方法,可以幫助我們完成各種任務(wù),比如生成隨機(jī)數(shù)和測(cè)試響應(yīng)數(shù)據(jù)

生成隨機(jī)數(shù)

使用Math.random()方法來(lái)生成一個(gè) 0 到 1 之間的隨機(jī)小數(shù),比如:

Math.random() // 0.0-1.0之間的數(shù)字,小數(shù) 0.465413246541

生成一個(gè)指定范圍內(nèi)的隨機(jī)數(shù):

Math.random()*10  // 0.0-10.0之間的數(shù)字,小數(shù) 9.465413246541

生成一個(gè)整數(shù),可以使用Math.floor()、Math.ceil()或者Math.round()方法來(lái)對(duì)小數(shù)進(jìn)行取整:

Math.floor(Math.random()*10)  // 直接舍棄小數(shù)部分 0,1,2,3,4,5,6,7,8,9
Math.floor(9.232323123313213)=9 // 直接舍棄小數(shù)部分 9
Math.ceil(Math.random()*10)  // 進(jìn)1法,整數(shù)部分加1, 1,2,3,4,5,6,7,8,9,10
Math.ceil(9.232323233231121)=10 // 進(jìn)1法,整數(shù)部分加1, 10
Math.round(Math.random()*10) // 四舍五入法,最接近的整數(shù) 0,1,2,3,4,5,6,7,8,9,10
Math.round(9.232323233231121)=9 // 四舍五入法,最接近的整數(shù) 9
場(chǎng)景 1:隨機(jī)生成一個(gè)用戶名

生成一個(gè)用戶名,規(guī)定格式為 kira001,kira002,jkira003。

var num="";
// 循環(huán)生成3位數(shù)
for(var i=0;i<3;i++){
    num +=Math.floor(Math.random()*10);
}
// 拼接用戶名
var username = "kira" + num;
// 打印用戶名
console.log(username) // kira456
場(chǎng)景 2:隨機(jī)生成一個(gè)電話號(hào)碼

生成一個(gè)電話號(hào)碼,規(guī)定前三位為 135,138,156,181,199。

// 定義前三位列表
var list=["135","138","156","181","199"];
// 隨機(jī)獲取一個(gè)下標(biāo)
var index= Math.floor(Math.random()*list.length)
// 獲取前三位
var pre_phone3=list[index];
// 定義后八位為空字符串
var back_phone8 ="";
// 循環(huán)生成后八位數(shù)字
for(var i=0;i<8;i++){
    back_phone8 +=Math.floor(Math.random()*10);
}
// 拼接電話號(hào)碼
var phonenum = pre_phone3+back_phone8;
// 打印電話號(hào)碼
console.log(phonenum) // 15612345678
// 設(shè)置為臨時(shí)變量,請(qǐng)求直接{{phonenum}}調(diào)用
pm.variables.set('phonenum',phonenum);

請(qǐng)求數(shù)據(jù)或響應(yīng)數(shù)據(jù)處理

接口測(cè)試的時(shí)候,我們需要對(duì)請(qǐng)求數(shù)據(jù)或者響應(yīng)數(shù)據(jù)進(jìn)行一些邏輯處理和斷言,以確保數(shù)據(jù)的正確性和完整性。

方法 1:pm 對(duì)象

pm?對(duì)象是一個(gè)全局對(duì)象,它提供了一些屬性和方法來(lái)訪問(wèn)請(qǐng)求和響應(yīng)的信息。

console.log(pm.response.code)   // 提取狀態(tài)碼 200
console.log(pm.response.reason())  // 提取響應(yīng)信息 OK
console.log(pm.response.headers)  // 提取響應(yīng)頭
console.log(pm.response.responseTime)  // 提取響應(yīng)時(shí)間
console.log(pm.response.text())  // 提取響應(yīng)體,不管body是什么格式的,都可以采用這個(gè)函數(shù)來(lái)提取
console.log(pm.response.json())  // 提取json格式的響應(yīng)數(shù)據(jù),并轉(zhuǎn)化為json對(duì)象(即python字典)
方法 2:responseCode、responseTime 等對(duì)象

responseCode、responseTime?等對(duì)象是一些全局對(duì)象,它們也可以用來(lái)訪問(wèn)請(qǐng)求和響應(yīng)的信息。

var code=responseCode.code;       // 獲取響應(yīng)中的狀態(tài)碼200
var codename=responseCode.name;   // 提取響應(yīng)信息 OK
var time=responseTime;            // 提取響應(yīng)時(shí)間
var headers=postman.getResponseHeader('Content-Type');  // 提取響應(yīng)頭中的Content-Type
var cookies=postman.getResponseCookie('name').value;    // 獲取響應(yīng)cookies中的value值,括號(hào)中填寫cookies的name值
var body=getResponseBody;        // 獲取響應(yīng)正文(是字符串,如果是json格式,那就是json字符串)
var jsonData= JSON.parse(body)   // 將json字符串轉(zhuǎn)化為json對(duì)象(字典)

斷言響應(yīng)信息
pm.test()是一個(gè)全局函數(shù),用來(lái)定義一個(gè)測(cè)試用例,接受一個(gè)回調(diào)函數(shù)作為參數(shù)。

斷言狀態(tài)碼
狀態(tài)碼是指服務(wù)器對(duì)請(qǐng)求的處理結(jié)果的一種表示,如: 200 表示成功,404 表示未找到,500 表示服務(wù)器錯(cuò)誤等等。

方法 1:pm.response.to.have.status()
pm.response.to.have.status()用來(lái)判斷響應(yīng)的狀態(tài)碼。

pm.test("Status code is 200", function () {
     pm.response.to.have.status(200);
});
方法 2:pm.expect()

pm.expect()是一個(gè)全局函數(shù),用來(lái)創(chuàng)建一個(gè)期望值,并接受一個(gè)實(shí)際值作為參數(shù)。`pm.expect()還提供了一些鏈?zhǔn)椒椒?,可以用?lái)進(jìn)行各種斷言。

var code=pm.response.code;
pm.test("鏈?zhǔn)綌嘌院?jiǎn)單示例",function(){
    pm.expect(code).to.equal(200);
    pm.expect({a: 1}).to.deep.equal({a: 1});
    pm.expect({a: {b: ['x', 'y']}}).to.have.nested.property('a.b[1]');
    pm.expect({'.a': {'[b]': 'x'}}).to.nested.include({'\\.a.\\[b\\]': 'x'});
    pm.expect({a: 1}).to.have.own.property('a');
    pm.expect({a: 1, b: 2}).to.not.have.any.keys('c', 'd');
    pm.expect({a: 1, b: 2}).to.have.all.keys('a', 'b');
    pm.expect([]).to.be.an('array').that.is.empty;
});

pm.expect()有非常多的鏈?zhǔn)椒椒?,具體參考鏈接:https://www.chaijs.com/api/bdd/

方法 3:if 語(yǔ)句和 tests 對(duì)象

tests?是一個(gè)全局對(duì)象,用來(lái)存儲(chǔ)測(cè)試結(jié)果,接受一個(gè)布爾值作為參數(shù)。

var code =pm.response.code;
if(code==200){
    tests['狀態(tài)碼一致!']=true;
}else{
    tests['狀態(tài)碼不一致']=false;
}
方法 4:tests 對(duì)象和比較運(yùn)算符

比較運(yùn)算符是一種運(yùn)算符,用來(lái)比較兩個(gè)值的大小或相等性,并返回一個(gè)布爾值。

tests['狀態(tài)碼的檢驗(yàn)']=pm.response.code===200;
斷言響應(yīng)體

響應(yīng)體是指服務(wù)器返回給客戶端的數(shù)據(jù),它可以是文本、圖片、音頻、視頻等等。

方法 1:pm.expect()

全量匹配或者部分匹配

pm.test("全量匹配或者部分匹配", function () {
     var body =pm.response.text();
     pm.expect(body).to.equal('{"status":2,"msg":"請(qǐng)求成功"}');// 全量匹配
     pm.expect(body).to.include('請(qǐng)求成功');// 部分匹配
});

響應(yīng)的具體內(nèi)容不固定,但它的格式和結(jié)構(gòu)固定,則可以結(jié)構(gòu)匹配或者鍵值匹配

pm.test("響應(yīng)結(jié)構(gòu)匹配", function () {
     var jsonData = pm.response.json();
     // 結(jié)構(gòu)匹配
     pm.expect(jsonData).to.eql({
          "errcode": 0,
          "data": { "user_id": 1 }
     });
     // 鍵值匹配
     pm.expect(jsonData.status).to.equal(2);
     pm.expect(jsonData.msg).to.equal("請(qǐng)求成功");
});
方法 2:pm.response.to.have.jsonBody()
pm.test("Body is json", function () {
  //檢查響應(yīng)體是否為 json 格式。
  pm.response.to.have.jsonBody();
  //檢查響應(yīng)體中是否存在某個(gè)鍵或者某個(gè)值。  
  pm.response.to.have.jsonBody('status');// 檢查鍵是否存在
  pm.response.to.have.jsonBody(2);// 檢查值是否存在
});
方法 3:pm.response.to.have.jsonSchema()

檢查響應(yīng)體是否符合某個(gè) json 模式(schema)

,包含兩個(gè)必需的屬性 errcode(數(shù)字) 和 errmsg(字符串)。

pm.test("Body matches schema", function () {
  var schema = {
     "type": "object", // 對(duì)象
     "properties": {
          "errcode": {
               "type": "number" // 數(shù)字類型
          },
          "errmsg": {
               "type": "string" // 字符串類型
          }
     },
     "required": ["errcode", "errmsg"]  // 必須
};
  pm.response.to.have.jsonSchema(schema);
});

常見特殊場(chǎng)景斷言思路分析
場(chǎng)景 1:響應(yīng)體 json 格式的數(shù)量比較大,不能全量匹配整個(gè) json 格式,如何斷言?

只檢查響應(yīng)體中的一些關(guān)鍵的鍵或者值

場(chǎng)景 2:返回的 json 格式的數(shù)據(jù)是變化的,如何斷言?

這種情況下,使用 json 模式來(lái)檢查響應(yīng)體的結(jié)構(gòu)和約束,而不是具體的內(nèi)容。

場(chǎng)景 3:如果返回的 json 格式的 Body 數(shù)據(jù)是動(dòng)態(tài)變化的怎么辦?

首先檢查是否為 json 格式

可以只檢查 body 中是否存在期望的鍵,主要檢查哪些核心的鍵

可以檢查返回 json 結(jié)構(gòu)是否正確

最后:下方這份完整的軟件測(cè)試視頻教程已經(jīng)整理上傳完成,需要的朋友們可以自行領(lǐng)取【保證100%免費(fèi)】
Postman 腳本的奧秘:JavaScript 的內(nèi)置對(duì)象和方法,技術(shù)分享,軟件測(cè)試,javascript,開發(fā)語(yǔ)言,ecmascript

軟件測(cè)試面試文檔

我們學(xué)習(xí)必然是為了找到高薪的工作,下面這些面試題是來(lái)自阿里、騰訊、字節(jié)等一線互聯(lián)網(wǎng)大廠最新的面試資料,并且有字節(jié)大佬給出了權(quán)威的解答,刷完這一套面試資料相信大家都能找到滿意的工作。

Postman 腳本的奧秘:JavaScript 的內(nèi)置對(duì)象和方法,技術(shù)分享,軟件測(cè)試,javascript,開發(fā)語(yǔ)言,ecmascript

?Postman 腳本的奧秘:JavaScript 的內(nèi)置對(duì)象和方法,技術(shù)分享,軟件測(cè)試,javascript,開發(fā)語(yǔ)言,ecmascript文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-759326.html

到了這里,關(guān)于Postman 腳本的奧秘:JavaScript 的內(nèi)置對(duì)象和方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • JavaScript-內(nèi)置對(duì)象-筆記

    1.Math對(duì)象 Math對(duì)象: 用于進(jìn)行數(shù)字處理 自帶的對(duì)象 不是構(gòu)造函數(shù)---不需要new 屬性: Math.PI ----- 圓周率 方法: Math.floor(數(shù)字) ----- 向下取整 (只要整數(shù)位) Math.ceil(數(shù)字) ---- 向上取整(不管小數(shù)位是幾,直接進(jìn)一) Math.round(數(shù)字) ---- 四舍五入取整 Math.abs(數(shù)字) ---- 絕對(duì)值 M

    2024年01月22日
    瀏覽(20)
  • JavaScript有哪些內(nèi)置對(duì)象

    JavaScript有哪些內(nèi)置對(duì)象

    還是大劍師蘭特 :曾是美國(guó)某知名大學(xué)計(jì)算機(jī)專業(yè)研究生,現(xiàn)為航空航海領(lǐng)域高級(jí)前端工程師;CSDN知名博主,GIS領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技術(shù)開發(fā),歡迎加底部微信(gis-dajianshi),一起交流。 No. 內(nèi)容鏈接 1 Openlayers 【入門教

    2024年04月13日
    瀏覽(22)
  • 【前端|Javascript第5篇】全網(wǎng)最詳細(xì)的JS的內(nèi)置對(duì)象文章!

    【前端|Javascript第5篇】全網(wǎng)最詳細(xì)的JS的內(nèi)置對(duì)象文章!

    前言 在當(dāng)今數(shù)字時(shí)代,前端技術(shù)正日益成為塑造用戶體驗(yàn)的關(guān)鍵。我們?cè)陂_發(fā)中需要用到很多js的內(nèi)置對(duì)象的一些屬性來(lái)幫助我們更快速的進(jìn)行開發(fā)。或許你是剛踏入前端領(lǐng)域的小白,或者是希望深入了解內(nèi)置對(duì)象的開發(fā)者,不論你的經(jīng)驗(yàn)如何,本篇博客都將給你詳細(xì)的講解

    2024年02月12日
    瀏覽(57)
  • 【JavaScript】函數(shù) ⑥ ( 使用 arguments 獲取所有實(shí)參 | arguments 內(nèi)置對(duì)象 | 偽數(shù)組概念 )

    【JavaScript】函數(shù) ⑥ ( 使用 arguments 獲取所有實(shí)參 | arguments 內(nèi)置對(duì)象 | 偽數(shù)組概念 )

    在 定義 JavaScript 函數(shù) 時(shí) , 有時(shí) 不確定 形參的個(gè)數(shù) , 形參寫少了不夠用 , 寫多了又很浪費(fèi) , 這里 推薦使用 arguments 內(nèi)置參數(shù)對(duì)象 ; 在 JavaScript 的 每個(gè)函數(shù) 的 內(nèi)部都可以訪問(wèn) 內(nèi)置的 arguments 對(duì)象 , 該對(duì)象中 包含了 調(diào)用者 傳遞給函數(shù)的所有 實(shí)參 , 即使 在 函數(shù) 形參 中沒(méi)有明

    2024年04月22日
    瀏覽(26)
  • 在Postman的腳本中使用pm對(duì)象獲取接口的請(qǐng)求參數(shù)

    在Postman的腳本中使用pm對(duì)象獲取接口的請(qǐng)求參數(shù)

    query params頁(yè)面 在tests中寫腳本做后置處理:(此處以設(shè)置不同類型用戶的全局變量為例) 執(zhí)行后的響應(yīng)信息: 執(zhí)行后可在 console 中可見獲取到的print type: 執(zhí)行后可在 environment quick look 中可見變量信息: 使用雙花括號(hào)進(jìn)行引用: {{deliverToken}} 執(zhí)行后的效果: 其中tests中的關(guān)

    2024年02月09日
    瀏覽(18)
  • Postman進(jìn)階篇(十二)-在腳本中使用pm對(duì)象訪問(wèn)接口響應(yīng)數(shù)據(jù)(pm.response.*)

    Postman進(jìn)階篇(十二)-在腳本中使用pm對(duì)象訪問(wèn)接口響應(yīng)數(shù)據(jù)(pm.response.*)

    在之前的文章中介紹過(guò)postman中的兩個(gè)腳本——pre-request script或test script,在這兩個(gè)腳本中都有使用到pm對(duì)象。(pre-request script詳細(xì)介紹、Test script詳細(xì)介紹) pm對(duì)象是在postman的腳本中非常重要,也是十分常用的方法。 本篇主要介紹pm對(duì)象的使用方法操作接口返回結(jié)果。 pm對(duì)象

    2023年04月08日
    瀏覽(19)
  • 內(nèi)置對(duì)象和方法、前端基礎(chǔ)之BOM和DOM

    內(nèi)置對(duì)象和方法、前端基礎(chǔ)之BOM和DOM

    RegExp對(duì)象 Math對(duì)象 BOM(Browser Object Model)是指瀏覽器對(duì)象模型,它使 JavaScript 有能力與瀏覽器進(jìn)行“對(duì)話” DOM (Document Object Model)是指文檔對(duì)象模型,通過(guò)它,可以訪問(wèn)HTML文檔的所有元素。 一些常用的Window方法: window.innerHeight - 瀏覽器窗口的內(nèi)部高度 window.innerWidth - 瀏覽器

    2024年02月06日
    瀏覽(21)
  • JS中 Math 和 Number 內(nèi)置對(duì)象常用的一些方法

    參數(shù):num,一個(gè)需要求絕對(duì)值的數(shù)。 參數(shù):num,需要進(jìn)行上舍入的數(shù)值。 注意事項(xiàng):對(duì)于負(fù)數(shù)進(jìn)行上舍入時(shí)會(huì)出現(xiàn)一定的差錯(cuò)。 參數(shù):num,需要進(jìn)行下舍入的數(shù)值。 參數(shù):num1, num2, …, numN,需要比較的數(shù)值,可以是任意個(gè)數(shù)的參數(shù)。 注意事項(xiàng):如果傳入的參數(shù)為空,返回

    2024年02月05日
    瀏覽(15)
  • 【JavaScript】對(duì)象 ② ( 對(duì)象使用 | 調(diào)用對(duì)象屬性 | 調(diào)用對(duì)象方法 | 變量與屬性區(qū)別 | 函數(shù)與方法區(qū)別 )

    【JavaScript】對(duì)象 ② ( 對(duì)象使用 | 調(diào)用對(duì)象屬性 | 調(diào)用對(duì)象方法 | 變量與屬性區(qū)別 | 函數(shù)與方法區(qū)別 )

    使用字面量創(chuàng)建對(duì)象要點(diǎn) : 在上一篇博客 【JavaScript】對(duì)象 ① ( 對(duì)象概念 | 對(duì)象使用場(chǎng)景 | 使用字面量創(chuàng)建對(duì)象 | 空對(duì)象字面量 | 小括號(hào) / 中括號(hào) / 大括號(hào) 作用 ) 中 , 介紹了 使用 字面量 創(chuàng)建對(duì)象 , 有如下要點(diǎn) : 鍵值對(duì) : 對(duì)象字面量 中的 屬性 和 方法 都是以 \\\" 鍵值對(duì) \\\" 的形

    2024年04月14日
    瀏覽(26)
  • JavaScript—數(shù)據(jù)類型、對(duì)象與構(gòu)造方法

    JavaScript—數(shù)據(jù)類型、對(duì)象與構(gòu)造方法

    JavaScript(簡(jiǎn)稱“JS”) 是一種具有函數(shù)優(yōu)先的輕量級(jí),解釋型或即時(shí)編譯型的編程語(yǔ)言。JavaScript 基于原型編程、多范式的動(dòng)態(tài)腳本語(yǔ)言,并且支持面向?qū)ο蟆⒚钍?、聲明式、函?shù)式編程范式。 (1)腳本語(yǔ)言。js不編譯,直接解釋執(zhí)行 (2)基于對(duì)象。JavaScript是一種基于對(duì)象的

    2024年02月10日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包