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

Postman接口自動(dòng)化測(cè)試實(shí)例

這篇具有很好參考價(jià)值的文章主要介紹了Postman接口自動(dòng)化測(cè)試實(shí)例。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一.實(shí)例背景?

  在實(shí)際業(yè)務(wù)中,經(jīng)常會(huì)出現(xiàn)讓用戶輸入用戶密碼進(jìn)行驗(yàn)證的場(chǎng)景。而為了安全,一般都會(huì)先請(qǐng)求后臺(tái)服務(wù)器獲取一個(gè)隨機(jī)數(shù)做為鹽值,然后將鹽值和用戶輸入的密碼通過前端的加密算法生成加密后串傳給后臺(tái)服務(wù)器,后臺(tái)服務(wù)器接到到請(qǐng)求后,先獲取校驗(yàn)原來的隨機(jī)數(shù)是否有效合法,如合法后,再做解密,并根據(jù)約定的規(guī)則把隨機(jī)數(shù)鹽值剔除等后續(xù)處理。

  也就是說先有一個(gè)獲取隨機(jī)數(shù)的接口請(qǐng)求,然后有一個(gè)驗(yàn)證密碼的請(qǐng)求。

二.基于Postman來自動(dòng)化這種場(chǎng)景的測(cè)試

  獲取隨機(jī)數(shù)的接口每次請(qǐng)求返回的隨機(jī)數(shù)是不一樣的,那么這種情況下,要實(shí)現(xiàn)接口的自動(dòng)化,就要用到postman中設(shè)置環(huán)境變量這個(gè)功能。

1.腳本編寫

  在這里,為了防止別人用工具對(duì)接口發(fā)起請(qǐng)求,除做了token校驗(yàn)外,還簡(jiǎn)單對(duì)請(qǐng)求時(shí)間做了校驗(yàn),即服務(wù)器會(huì)校驗(yàn)客戶端的請(qǐng)求時(shí)間前后不能相差1分鐘,如超過,說明是有問題的請(qǐng)求,將直接拒絕。

  腳本要能自動(dòng)運(yùn)行,就必須在Postman上實(shí)現(xiàn)一個(gè)獲取當(dāng)前時(shí)間的功能,每次請(qǐng)求前獲得當(dāng)前時(shí)間。在Postman中是在Pre-request Script中編寫,獲得后臺(tái)約定的日期格式,然后通過

postman.setEnvironmentVariable將其設(shè)置到環(huán)境變量中,如下所示:

Postman接口自動(dòng)化測(cè)試實(shí)例,接口自動(dòng)化測(cè)試,postman,lua,測(cè)試工具,自動(dòng)化測(cè)試,python,軟件測(cè)試

  完整代碼如下:

var currentTime = new Date();

function PrefixInteger(num, length) {
 return (Array(length).join('0') + num).slice(-length);
}
Date.prototype.toMyDateStr = function() {
    return this.getFullYear() + "-" + PrefixInteger((this.getMonth() + 1),2) + "-" + PrefixInteger(this.getDate(),2) + " " + PrefixInteger(this.getHours(),2) + ":" + PrefixInteger(this.getMinutes(),2) + ":" + PrefixInteger(this.getSeconds(),2);
};

postman.setEnvironmentVariable("reqTime", currentTime.toMyDateStr());

  這樣就可以在請(qǐng)求體中通過{{}}方式進(jìn)行引用。

Postman接口自動(dòng)化測(cè)試實(shí)例,接口自動(dòng)化測(cè)試,postman,lua,測(cè)試工具,自動(dòng)化測(cè)試,python,軟件測(cè)試

  注意的是,我這時(shí)的請(qǐng)求是application/json格式,且是UTF-8編碼格式的,所以在Headers中還有如下配置。

Postman接口自動(dòng)化測(cè)試實(shí)例,接口自動(dòng)化測(cè)試,postman,lua,測(cè)試工具,自動(dòng)化測(cè)試,python,軟件測(cè)試

  接下來就是最重要的一塊了,就是對(duì)請(qǐng)求響應(yīng)的判斷(判斷是否成功)及成功后根據(jù)返回的隨機(jī)數(shù)用加密算法對(duì)密碼進(jìn)行加密處理。

Postman接口自動(dòng)化測(cè)試實(shí)例,接口自動(dòng)化測(cè)試,postman,lua,測(cè)試工具,自動(dòng)化測(cè)試,python,軟件測(cè)試

  接下來在驗(yàn)證密碼的接口中,就可以通過{{radomNumCode}}、{{pwdSM2}}方式進(jìn)行變量的引用。

Postman接口自動(dòng)化測(cè)試實(shí)例,接口自動(dòng)化測(cè)試,postman,lua,測(cè)試工具,自動(dòng)化測(cè)試,python,軟件測(cè)試

  在這個(gè)驗(yàn)密請(qǐng)求中,Pre-request Script和Headers中的配置和上面的獲取隨機(jī)因子的配置是一樣的,下面我們?cè)賮砜匆豢碩ests中的內(nèi)容。

Postman接口自動(dòng)化測(cè)試實(shí)例,接口自動(dòng)化測(cè)試,postman,lua,測(cè)試工具,自動(dòng)化測(cè)試,python,軟件測(cè)試

  Tests中其實(shí)也是對(duì)http請(qǐng)求的返回碼和響應(yīng)體的返回碼、返回消息進(jìn)行判斷。?

2.運(yùn)行效果

  先運(yùn)行獲取隨機(jī)因子的請(qǐng)求,在Test Results中看到都是和預(yù)期值一致的,也就是全是PASS的。

Postman接口自動(dòng)化測(cè)試實(shí)例,接口自動(dòng)化測(cè)試,postman,lua,測(cè)試工具,自動(dòng)化測(cè)試,python,軟件測(cè)試

  再運(yùn)行第二個(gè)真正驗(yàn)證密碼的請(qǐng)求,如下所示,發(fā)現(xiàn)所有響應(yīng)都符合預(yù)期,都是PASS。

Postman接口自動(dòng)化測(cè)試實(shí)例,接口自動(dòng)化測(cè)試,postman,lua,測(cè)試工具,自動(dòng)化測(cè)試,python,軟件測(cè)試

  這時(shí),我們來簡(jiǎn)單修改其中一個(gè)預(yù)期值,讓其不通過,執(zhí)行效果如下。

Postman接口自動(dòng)化測(cè)試實(shí)例,接口自動(dòng)化測(cè)試,postman,lua,測(cè)試工具,自動(dòng)化測(cè)試,python,軟件測(cè)試

三.postman常用方法集合

1.設(shè)置環(huán)境變量

postman.setEnvironmentVariable("key", "value");
pm.environment.get("key", "value");//postman  5.0以上版本設(shè)置環(huán)境變量的方法
2.設(shè)置全局變量

postman.setGlobalVariable("key", "value");
pm.globals.set("variable_key", "variable_value");//postman 5.0以上版本設(shè)置全局變量方法
3.檢查response body中是否包含某個(gè)string

tests["Body matches string"] = responseBody.has("string_you_want_to_search");

pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});//5.0以上版本方法

4.檢測(cè)JSON中的某個(gè)值是否等于預(yù)期的值

var data = JSON.parse(responseBody);
tests["Your test name"] = data.value === 100;

  JSON.parse()方法,把json字符串轉(zhuǎn)化為對(duì)象。parse()會(huì)進(jìn)行json格式的檢查是一個(gè)安全的函數(shù)。?

  如:檢查json中某個(gè)數(shù)組元素的個(gè)數(shù)(這里檢測(cè)programs的長(zhǎng)度)

var data = JSON.parse(responseBody);
tests["program's lenght"] = data.programs.length === 5;
5.轉(zhuǎn)換XML body為JSON對(duì)象

var jsonObject = xml2Json(responseBody);

tests["Body is correct"] = responseBody === "response_body_string";
6.檢查response body是否與某個(gè)string相等

7.測(cè)試response Headers中的某個(gè)元素是否存在(如:Content-Type)

//getResponseHeader()方法會(huì)返回header的值,如果該值存在
tests["Content-Type is present"] = postman.getResponseHeader("Content-Type"); 

tests["Content-Type is present"] = responseHeaders.hasOwnProperty("Content-Type");

  上面的方法,不區(qū)分大小寫。下面的方法,要區(qū)分大小寫。?

8.驗(yàn)證Status code的值

tests["Status code is 200"] = responseCode.code === 200;

pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});//5.0以上版本方法

9.驗(yàn)證Response time是否小于某個(gè)值

tests["Response time is less than 200ms"] = responseTime < 200;

//5.0以上版本方法
pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});

10.name是否包含某個(gè)值

tests["Status code name has string"] = responseCode.name.has("Created");

//5.0以上版本方法
pm.test("Status code name has string", function () {
    pm.response.to.have.status("Created");
});

11.POST 請(qǐng)求的狀態(tài)響應(yīng)碼是否是某個(gè)值

tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;

//5.0以上版本方法
pm.test("Successful POST request", function () {
    pm.expect(pm.response.code).to.be.oneOf([201,202]);
});

12.很小的JSON數(shù)據(jù)驗(yàn)證器文章來源地址http://www.zghlxwxcb.cn/news/detail-681186.html

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);
13.獲取request值:

var Json = JSON.parse(request.data); 
data {object}:
this is a dictionary of form data for the request. (request.data["key"]=="value")

headers {object}:
this is a dictionary of headers for the request (request.headers["key"]=="value")

method {string}:
GET/POST/PUT etc.

url {string}:
the url for the request.

  假設(shè)requestBody中有"version":"1.0";這個(gè)值,如果想獲取到version的value值,代碼如下

var Json = JSON.parse(request.data); 
var version = Json["version"];
14.JSON.parse()和JSON.stringify()
JSON.parse()【從一個(gè)字符串中解析出json對(duì)象】--把string轉(zhuǎn)對(duì)象
JSON.stringify()【從一個(gè)對(duì)象中解析出字符串,主要針對(duì)[object object]類型數(shù)據(jù)的轉(zhuǎn)換】--把對(duì)象轉(zhuǎn)String

var data={name:'goatling'}

JSON.parse(data)
結(jié)果是: '{"name":"goatling"}'

JSON.stringify(data)
結(jié)果是:name:"goatling"
15.判斷字段值是否為空typeof()

var Jsondata = JSON.parse(responseBody);
if( typeof(Jsondata.data) != "undefined" )
 

到了這里,關(guān)于Postman接口自動(dòng)化測(cè)試實(shí)例的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(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)文章

  • Postman —— 實(shí)現(xiàn)接口自動(dòng)化測(cè)試!

    Postman —— 實(shí)現(xiàn)接口自動(dòng)化測(cè)試!

    目錄 postman使用 postman進(jìn)行簡(jiǎn)單壓力測(cè)試 1、新建一個(gè)fodder,在fodder下添加要進(jìn)行壓力測(cè)試的接口: 2、post接口測(cè)試,參數(shù)從txt導(dǎo)入 3、設(shè)置 Pre-request-Script 參數(shù) 4、設(shè)置test(便于觀察測(cè)試結(jié)果) 5、保存請(qǐng)求,點(diǎn)擊runner,按如下設(shè)置 6、設(shè)置Iteration 7、測(cè)試結(jié)果 參考: 返回目錄

    2024年03月09日
    瀏覽(33)
  • postman做接口自動(dòng)化測(cè)試

    postman做接口自動(dòng)化測(cè)試

    可能是目前最好用的web接口調(diào)試工具 無需注冊(cè)(注冊(cè)后可多終端同步用例) 免費(fèi)(每年付費(fèi)$60可用云服務(wù),30天免費(fèi)試用) 保存歷史記錄 支持錄制請(qǐng)求 基于Chrome的V8引擎,支持JS腳本(基本支持ES6,瀏覽器相關(guān)對(duì)象和API和require() import等除外) 同樣的代碼和用例可用于自動(dòng)化

    2024年02月03日
    瀏覽(27)
  • postman從接口測(cè)試到接口自動(dòng)化

    postman從接口測(cè)試到接口自動(dòng)化

    目錄 1.postman發(fā)送請(qǐng)求 (1)HTTP請(qǐng)求 (2)HTTP響應(yīng) (3)postman發(fā)送get請(qǐng)求 ??(4)發(fā)送post請(qǐng)求 1 以表單形式發(fā)送請(qǐng)求 2.以json格式發(fā)送請(qǐng)求 2.postman的斷言 3.全局變量和環(huán)境變量 1.手動(dòng)設(shè)置全局變量和環(huán)境變量 2.代碼設(shè)置全局變量和環(huán)境變量 3.查看和編輯 ?4.全局變量和環(huán)境變量的

    2023年04月09日
    瀏覽(32)
  • Postman如何做接口自動(dòng)化測(cè)試?

    Postman如何做接口自動(dòng)化測(cè)試?

    前言 什么是自動(dòng)化測(cè)試 把人對(duì)軟件的測(cè)試行為轉(zhuǎn)化為由機(jī)器執(zhí)行測(cè)試行為的一種實(shí)踐。 例如GUI自動(dòng)化測(cè)試,模擬人去操作軟件界面,把人從簡(jiǎn)單重復(fù)的勞動(dòng)中解放出來。 本質(zhì)是用代碼去測(cè)試另一段代碼,屬于一種軟件開發(fā)工作,已經(jīng)開發(fā)完成的用例還必須隨著被測(cè)試對(duì)象的

    2024年04月10日
    瀏覽(28)
  • postman接口自動(dòng)化測(cè)試框架實(shí)戰(zhàn)!

    postman接口自動(dòng)化測(cè)試框架實(shí)戰(zhàn)!

    把人對(duì)軟件的測(cè)試行為轉(zhuǎn)化為由機(jī)器執(zhí)行測(cè)試行為的一種實(shí)踐。 例如GUI自動(dòng)化測(cè)試,模擬人去操作軟件界面,把人從簡(jiǎn)單重復(fù)的勞動(dòng)中解放出來。 本質(zhì)是用代碼去測(cè)試另一段代碼,屬于一種軟件開發(fā)工作,已經(jīng)開發(fā)完成的用例還必須隨著被測(cè)試對(duì)象的改變而更新,因此,還

    2024年02月11日
    瀏覽(36)
  • 接口自動(dòng)化測(cè)試:Postman實(shí)戰(zhàn)教程!

    接口自動(dòng)化測(cè)試:Postman實(shí)戰(zhàn)教程!

    (1)服務(wù)器端(server): 在使用別人的服務(wù)器上,例如微信APP客戶端,服務(wù)端在騰訊的服務(wù)端上,微信上的賬號(hào)信息,聊天記錄均存儲(chǔ)在服務(wù)端上;用戶A發(fā)送1條信息到服務(wù)端上,服務(wù)端再把這條信息轉(zhuǎn)發(fā)到用戶B上。 服務(wù)器使用的語言分別為:Java、Python、PHP、Go、C、C++等等

    2024年04月28日
    瀏覽(28)
  • 使用Postman進(jìn)行接口自動(dòng)化測(cè)試

    使用Postman進(jìn)行接口自動(dòng)化測(cè)試

    ?我們先思考一下,如果需要達(dá)到自動(dòng)化接口測(cè)試的效果,那么我們?cè)诨镜哪M請(qǐng)求上還需要做哪些呢? 以下我粗略概括為 3 個(gè)問題(歡迎更多補(bǔ)充與建議): 如何判斷接口是否請(qǐng)求成功 如何進(jìn)行接口批量、定期測(cè)試 如何處理依賴接口問題(比如商品下單的接口必須要求

    2024年01月18日
    瀏覽(60)
  • Postman實(shí)戰(zhàn):輕松搞定接口自動(dòng)化測(cè)試

    Postman實(shí)戰(zhàn):輕松搞定接口自動(dòng)化測(cè)試

    隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,接口自動(dòng)化測(cè)試已經(jīng)成為軟件測(cè)試領(lǐng)域中不可或缺的一部分。而作為最流行的API開發(fā)工具之一,Postman憑借其簡(jiǎn)單易用、功能強(qiáng)大的特點(diǎn)贏得了越來越多開發(fā)者和測(cè)試人員的青睞。 想要掌握Postman的接口自動(dòng)化測(cè)試技能,只需要花費(fèi)少量時(shí)間學(xué)習(xí)即可輕

    2024年02月15日
    瀏覽(18)
  • 測(cè)試中使用Postman實(shí)現(xiàn)接口自動(dòng)化

    測(cè)試中使用Postman實(shí)現(xiàn)接口自動(dòng)化

    1.創(chuàng)建一個(gè)工作區(qū) 2.按照自己的需求去命名創(chuàng)建 1按照步驟去創(chuàng)建環(huán)境及表格的【變量】:VARIABLE 和【當(dāng)前值】:CURRENT VALUE TEST_3 就是剛剛創(chuàng)建的環(huán)境 host就不用多說了都明白 Globals 這個(gè)就是來改變我們?cè)谡?qǐng)求接口時(shí)候賦值 全局變量 通用的 用法就不細(xì)說了往下看?。?! 在第一

    2024年02月11日
    瀏覽(23)
  • Postman 做接口自動(dòng)化測(cè)試 - 入門篇

    可能是目前最好用的web接口調(diào)試工具 無需注冊(cè)(注冊(cè)后可多終端同步用例) 免費(fèi)(每年付費(fèi)$60可用云服務(wù),30天免費(fèi)試用) 保存歷史記錄 支持錄制請(qǐng)求 基于Chrome的V8引擎,支持JS腳本(基本支持ES6,瀏覽器相關(guān)對(duì)象和API和 require() import 等除外) 同樣的代碼和用例可用于自動(dòng)

    2024年02月09日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包