欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)激活碼778899分享:Postman

柚子快報(bào)激活碼778899分享:Postman

http://yzkb.51969.com/

一、接口測(cè)試就是測(cè)試系統(tǒng)組件接口之間的一種測(cè)試。

分類: 測(cè)試外部接口:測(cè)試被測(cè)系統(tǒng)和外部系統(tǒng)之間的接口。(只需要測(cè)試正例即可) 測(cè)試內(nèi)部接口: 1.內(nèi)部接口只提供給內(nèi)部系統(tǒng)使用。(預(yù)算系統(tǒng)、承保系統(tǒng),也只需要測(cè)試正例即可) 2.內(nèi)部接口提供給外部系統(tǒng)使用(測(cè)試必須非常全面,正例,各種異常場(chǎng)景,權(quán)限控制)

二、接口測(cè)試的流程及用例的設(shè)計(jì)

1.拿到接口api文檔(通過抓包工具獲?。煜そ涌跇I(yè)務(wù)、接口地址、鑒權(quán)方式、入?yún)?、出參、錯(cuò)誤碼的設(shè)置 2.編寫接口的用例及評(píng)審 思路: 正例 :輸入正常的入?yún)?,接口能夠成功返回?cái)?shù)據(jù) 反例 :鑒權(quán)反例——鑒權(quán)碼為空,鑒權(quán)碼錯(cuò)誤,鑒權(quán)碼過期,… 參數(shù)反例——參數(shù)為空,參數(shù)類型異常、參數(shù)長(zhǎng)度異?!?錯(cuò)誤碼覆蓋——根據(jù)業(yè)務(wù)來定的 其他錯(cuò)誤場(chǎng)景——接口黑名單、接口調(diào)用次數(shù)的限制、分頁場(chǎng)景 3.使用接口測(cè)試工具postman執(zhí)行接口測(cè)試 4.postman+newman+Jenkins實(shí)現(xiàn)持續(xù)集成,并且輸出測(cè)試報(bào)告并發(fā)送郵件

三、執(zhí)行接口測(cè)試

請(qǐng)求頁面: Params : get 請(qǐng)求傳參 authorization : 鑒權(quán) hearders : 請(qǐng)求頭 Body : post請(qǐng)求傳參 form-data : 既可以傳鍵值對(duì)參數(shù)也可以傳文件 x-www-from-urlencoded 只能傳鍵值對(duì)參數(shù) raw : json \ text \ xml \ html \ javascript binary : 把文件以二進(jìn)制方式傳參 pre-request-script 請(qǐng)求之前的腳本 tests 請(qǐng)求之后的斷言 cookies 用于管理cookie信息 響應(yīng)頁簽: Body 接口返回的數(shù)據(jù) … 四、接口關(guān)聯(lián) 增刪改查注意接口的閉環(huán),新增數(shù)據(jù)需要進(jìn)行清理

1.使用json提取器實(shí)現(xiàn)接口關(guān)聯(lián)

{

"data": {

"dayList": [

{

"label": "01月07日",

"value": "2024-01-07"

}

],

"weekList": [

{

"label": "01月01日-01月07日",

"value": "2024-01-01"

}

],

"monthList": [

{

"label": "12月",

"value": "2023-12-01"

}

]

},

"code": 2000,

"msg": null

}

第一個(gè)接口: //使用json提取器提取value //打印返回值 console.log(responseBody); //把返回的字符串格式的數(shù)據(jù)轉(zhuǎn)換成對(duì)象的形式 //定義一個(gè)變量進(jìn)行接收 把結(jié)果轉(zhuǎn)換成一個(gè)對(duì)象后保存在result這個(gè)變量里來 //JavaScript 中的 JSON.parse() 方法用于解析一個(gè) JSON 字符串,并將其轉(zhuǎn)換為 JavaScript 對(duì)象。 var result = JSON.parse(responseBody); console.log(result.data.dayList[0].value); //注意:要把提取出來的值放在一個(gè)變量里面去 day = result.data.dayList[0].value //再把取得的這個(gè)值設(shè)置為全局變量 pm.globals.set(“day”, day); 第二個(gè)接口: 引用變量使用雙大括號(hào) {{day}}

2.使用正則表達(dá)式提取器來實(shí)現(xiàn)接口關(guān)聯(lián)

同上例子:

// //使用正則表達(dá)式提取實(shí)現(xiàn)接口關(guān)聯(lián),match匹配

// var result= responseBody.match(new RegExp('"value":"(.*?)"','g'));

// console.log(result);

// // 定義正則表達(dá)式模式

// var regexPattern = /\d{4}-\d{2}-\d{2}/g;

// // 定義存儲(chǔ)提取值的數(shù)組

// var values = [];

// // 提取匹配的日期

// result.forEach(function(item) {

// var match = item.match(regexPattern);

// if (match) {

// values.push(match[0]);

// }

// });

// // 打印提取的日期

// console.log(values);

// //賦值day提取第一個(gè)值

// var day = values[0]

// console.log(day);

-------------------------------------------------------------------------------------

// 解析響應(yīng)體

var jsonData = JSON.parse(pm.response.text());

// 定義正則表達(dá)式模式

var regexPattern = /"value":\s*"(.*?)"/g;

// 定義存儲(chǔ)提取值的數(shù)組

var values = [];

// 提取"value"字段的值

var match;

while ((match = regexPattern.exec(pm.response.text())) !== null) {

values.push(match[1]);

}

// 獲取第一個(gè)值

var firstValue = values[0];

// 打印第一個(gè)值

console.log("First value: " + firstValue);

// 設(shè)置全局變量

pm.globals.set("firstValue", firstValue);

//結(jié)果:First value: 2024-01-07

注意:

問題1:/“value”:\s*"(.?)"/g 中的 \s是什么意思呢?

在正則表達(dá)式中,\s表示匹配任何空白字符,包括空格、制表符、換行符等。\s表示匹配零個(gè)或多個(gè)連續(xù)的空白字符。 在上述示例中,“value”:\s"(.?)“是一個(gè)正則表達(dá)式模式,用于匹配類似于"value”: “some value"這樣的文本。具體匹配規(guī)則如下: ● “value”::匹配字面字符串"value”:。 ● \s:匹配零個(gè)或多個(gè)空白字符。 ● “:匹配字面字符串”。 ● (.?):使用非貪婪模式匹配任意字符序列,并將其捕獲到匹配結(jié)果中。 ● “:匹配字面字符串”。 這個(gè)正則表達(dá)式模式的目的是提取出雙引號(hào)引起來的"value"字段的值。通過使用\s可以忽略字段名和字段值之間的任何空白字符。捕獲分組(.*?)用于提取實(shí)際的字段值,并將其添加到values數(shù)組中。 請(qǐng)注意,正則表達(dá)式中的\是一個(gè)轉(zhuǎn)義字符,用于表示特殊字符,例如\s表示空白字符。因此在正則表達(dá)式中,我們需要使用\s來表示一個(gè)普通的反斜杠字符。

問題2:regexPattern.exec() 這是什么方法?

regexPattern.exec()是JavaScript正則表達(dá)式對(duì)象的一個(gè)方法,用于在字符串中執(zhí)行正則表達(dá)式匹配。它搜索字符串中的匹配項(xiàng),并返回一個(gè)數(shù)組,其中包含匹配的結(jié)果。 在上述示例中,regexPattern是一個(gè)正則表達(dá)式對(duì)象,用于匹配"value":\s*"(.*?)"這樣的模式。exec()方法在字符串pm.response.text()中執(zhí)行正則表達(dá)式匹配,并返回匹配的結(jié)果。 如果匹配成功,則exec()方法返回一個(gè)數(shù)組,其中第一個(gè)元素是匹配的完整文本,后續(xù)元素是捕獲分組的匹配結(jié)果。如果沒有匹配的項(xiàng),則返回null。 在示例代碼中,我們使用while循環(huán)來反復(fù)調(diào)用regexPattern.exec()方法,直到?jīng)]有更多的匹配項(xiàng)為止。每次調(diào)用exec()方法,都會(huì)將下一個(gè)匹配項(xiàng)返回給match變量,并將其添加到values數(shù)組中。 請(qǐng)注意,exec()方法在每次調(diào)用時(shí)都會(huì)更新正則表達(dá)式對(duì)象的內(nèi)部狀態(tài),以便在下一次調(diào)用時(shí)繼續(xù)搜索。這樣可以實(shí)現(xiàn)迭代地獲取所有匹配項(xiàng)。

五、POSTMAN內(nèi)置動(dòng)態(tài)參數(shù)以及自定義的動(dòng)態(tài)參數(shù)

postman內(nèi)置動(dòng)態(tài)參數(shù):

{{$}} 指postman的內(nèi)置動(dòng)態(tài)參數(shù)

{{$timestamp}}生成當(dāng)前時(shí)間的時(shí)間戳

{{$randomint}}生成0-1000之間的隨機(jī)數(shù)

{{$guid}} 生成速記GUID字符串 (隨機(jī)生成字符串)

自定義動(dòng)態(tài)參數(shù) —— 自定義的動(dòng)態(tài)參數(shù)是可以進(jìn)行斷言的

var times = Date.now();//手動(dòng)的獲取時(shí)間戳

pm.globals.set("times",times);//設(shè)置為全局變量

使用時(shí)使用{{times}}

六、postman的斷言

status code :code is 200 —— 檢查返回的狀態(tài)碼是否為200 response body : contains string —— 檢查響應(yīng)中包括指定字符串 response body : json value check —— 檢查響應(yīng)中其中json的值 response body : is equal to a string —— 檢查相應(yīng)等于一個(gè)字符串 … 狀態(tài)斷言&業(yè)務(wù)斷言 狀態(tài)斷言:

pm.test("Status code is 200 檢查返回的狀態(tài)碼是否為200 ", function () {

pm.response.to.have.status(200);

});

業(yè)務(wù)斷言:

pm.test("Body matches string 檢查響應(yīng)中包含dayList", function () {

pm.expect(pm.response.text()).to.include("dayList");

});

示例: 響應(yīng)數(shù)據(jù)1:

{"tag": {

"id":4858,

"name":"好好學(xué)習(xí)123456789"

}

}

備注:其中123456789 是自定義動(dòng)態(tài)參數(shù) 【自定義動(dòng)態(tài)參數(shù) —— 自定義的動(dòng)態(tài)參數(shù)是可以進(jìn)行斷言的 var times = Date.now();//手動(dòng)的獲取時(shí)間戳 pm.globals.set(“times”,times);//設(shè)置為全局變量 使用時(shí)使用{{times}}】

pm.test("檢查響應(yīng)中的包括標(biāo)簽名", function () {

//方式一:

pm.expect(pm.response.text()).to.include("好好學(xué)習(xí)"+ pm.globals.get("times"));

});

//方式二:

pm.expect(pm.response.text()).to.include("好好學(xué)習(xí)"+ globals["times"]);

});

//方式三:

pm.expect(pm.response.text()).to.include("好好學(xué)習(xí)"+ globals.times);

});

響應(yīng)數(shù)據(jù)2:

{

"errcode":0,

"errmsg":"ok"

}

舉例說明 — response body : json value check —— 檢查響應(yīng)中其中json的值

pm.test("檢查errcode為0",function(){

var jsonData = pm.response.json();

pm.expect(jsonData.errcode).to.eql(0);

});

七、postman批量運(yùn)行測(cè)試用例

run collection 文件上傳:如下圖

八、postman數(shù)據(jù)驅(qū)動(dòng)之csv文件和json文件的處理

正例和反例 data.csv —— 用notepad++打開

備注:下圖糾正:search 同理 data.json文件 由列表+大括號(hào)構(gòu)建的數(shù)據(jù)格式

九、測(cè)試必須帶請(qǐng)求頭的接口

常見的請(qǐng)求頭: Host 請(qǐng)求的主機(jī)地址 Connection 連接方式 Accept 客戶端所接受的數(shù)據(jù)格式 X-Requested-With 異步請(qǐng)求 User-Agent 客戶端的用戶類型 Referer 來源 Cookie cookie信息 Content-Type 請(qǐng)求內(nèi)容的格式

十、postman接口mock service服務(wù)器

mock模擬 后端接口還沒有開發(fā)完成,前端的業(yè)務(wù)需要調(diào)用后端的接口。 {“error_code”:0,“msg”:“返回成功”,“data”:[]} https://6aa80496-4097-4a5d-908f-e6faff160391.mock.pstmn.io

十一、postman的cookie鑒權(quán)

什么是cookie? cookie是一小段文本,格式 key=value cookie鑒權(quán)的原理: 1.當(dāng)客戶端第一次訪問服務(wù)器的時(shí)候,那么服務(wù)器就會(huì)生成cookie信息,并且在響應(yīng)頭的set-cookie里面把生成的cookie信息發(fā)送給客戶端。 2.當(dāng)客戶端第二次-N次訪問服務(wù)器時(shí),那么客戶端就會(huì)在請(qǐng)求頭的cookie帶上cookie信息,從而實(shí)現(xiàn)鑒權(quán)。 cookie的分類: 會(huì)話cookie:保存在內(nèi)存,當(dāng)瀏覽器關(guān)閉后就會(huì)自動(dòng)化清除cookie 持久cookie:保存在硬盤里,當(dāng)瀏覽器關(guān)閉后不會(huì)清除,只有當(dāng)失效時(shí)間到了才會(huì)自動(dòng)清除 當(dāng)?shù)谝淮卧L問頁面時(shí),postman會(huì)自動(dòng)保存cookie,第二次去請(qǐng)求時(shí),則會(huì)自動(dòng)帶上cookie信息 正則表達(dá)獲取token:如下圖

十二、Newman

postman 專為接口測(cè)試而生,Newman是專為postman而生。Newman可以讓我們的postman的腳本通過非GUI(命令行)的方式去運(yùn)行。即可和Jenkins去集成 運(yùn)行命令:newman run 常用參數(shù):-e 應(yīng)用環(huán)境變量 -g 引用全局變量 -d 引用數(shù)據(jù)文件 -n 指定測(cè)試用例迭代的次數(shù) -r cli,html.json.junit --reporter-html-export 指定生成HTML的報(bào)告 新建一文件,將postman里的testcase、environment、global、data 等導(dǎo)出到該文件處,在該路徑下,cmd,運(yùn)行newman run eg: E:\postmam>newman run testcase.json -e environment.json -g globals.json -d data.json -r cli,html.json.junit --reporter-html-export report.html 注意:Newman的安裝 詳見:https://blog.csdn.net/zaxuezhe/article/details/123401627 安裝報(bào)告器:使用 npm 安裝正確的報(bào)告器 npm install -g newman-reporter-html newman run collection.json -r html -r html 指定了使用 html 報(bào)告器(對(duì)應(yīng)于 newman-reporter-html 包)。如果你想要將報(bào)告輸出到文件,可以使用 --reporter-{{reporter-name}}-export 參數(shù) 生成一個(gè)名為 report.html 的 HTML 報(bào)告文件 newman run collection.json -r html --reporter-html-export report.html

十三、Postman+Newman+Jenkins實(shí)現(xiàn)接口測(cè)試持續(xù)集成

1.新建一個(gè)項(xiàng)目 2.設(shè)置自定義工作空間 3.構(gòu)建執(zhí)行Windows的批處理命令 Execute Windows batch command 4.執(zhí)行系統(tǒng)的Groovy腳本 Execute system Groovy script 5.生成的HTML的報(bào)告集成到Jenkins

柚子快報(bào)激活碼778899分享:Postman

http://yzkb.51969.com/

參考閱讀

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19251786.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄