菜鳥postman接口測試_postman 接口測試(轉)

本文轉載自testerhome;

作者:xinxi1990 ;

原文鏈接:https://testerhome.com/topics/18719;

轉載以分享知識為目的,著作權歸原作者所有,如有侵權,請聯系刪除。

postman使用

創建用例集

啟動postman以后,會看到這個控制面板.

d5ea8e94d91aa06267b7929cc9ceda9b.png

點擊Request是創建一個Request測試請求,但是需要創建用例集保存這個請求.

b848056a4a345a9814fc320ee2db769d.png

點擊Collection是創建一個用例集來保存測試請求.

創建Collection完成后,會在左側生成用例集文件架,每次創建的測試接口都要保存到用例集中.

36b35c73660c285da614d6bcf0f10366.png

第一個接口測試

創建get請求為例,通常需要寫url、params、headers,會把params拼接到url末尾.

391552c4a19a18ba7342a694c506466b.png

點擊send按鈕并且請求成功,會展示響應結果.

ac0c367d20596ccbb629e136bc9b0cda.png

創建post請求為例,通常需要寫url、body、headers等參數,body參數格式一般是form或者json格式.具體body使用那個格式,需要按照接口文件中的參數.

736bcaa9b8ba1f69b702734313fff50c.png

接口斷言

點擊Tests編寫測試斷言

fcbd1e6a7f77643a62fa129379429279.png

斷言響應時間

pm.test("Response time is less than 200ms", function () {    pm.expect(pm.response.responseTime).to.be.below(200);});// 斷言響應事件小于200ms

斷言狀態碼

pm.test("Successful POST request", function () {    pm.expect(pm.response.code).to.be.oneOf([200,202]);});// 斷言狀態碼200-202區間

斷言響應中包含某個字符串

pm.test("Body matches string", function () {    pm.expect(pm.response.text()).to.include("ok");});// 斷言響應中包含"ok"

斷言響應中的字段等于某個值

pm.test("message test", function () {    var jsonData = pm.response.json();    pm.expect(jsonData["message"]).to.eql("ok");});// 斷言響應中"message" = ok"

斷言響應中的字段不等于某個值

var jsonData = JSON.parse(responseBody);tests["message不為bad"] = jsonData["message"] != "bad";// 斷言響應中"message" != bad"

斷言響應中的列表長度

pm.test("data list test", function () {    var jsonData = pm.response.json();    pm.expect(jsonData["data"].length).to.eql(41);});// 斷言響應中"list"的字段長度

斷言響應中的列表中第幾個元素的字段值

pm.test("data list 0 test", function () {    var jsonData = pm.response.json();    pm.expect(jsonData["data"][0]["time"]).to.eql("2018-11-28 17:27:41");});// 斷言響應中"list 0的"的time字段的值

json schema驗證

tv4是postman內置的JSON Schema驗證庫,參考:https://geraintluff.github.io/tv4/

responseBody如下==:==

{    "errCode": 0,    "errMsg": "",    "data": {        "id": 3210,        "title": "",
const customerSchema = {  "type": "object",          "properties": {    "errCode": {        "type": "integer",        "minimum": 0,        "maximum": 3,        "minLength": 2,        "maxLength": 3    },    "errMsg": {"type": "string"},  }};var customer = JSON.parse(responseBody);// console.log(customer);tests["Valid Data1"] = tv4.validate(customer, customerSchema);//驗證json中的errCode類型是integer,并且驗證最小值和最大值區間、驗證長度區間

以上是常用斷言方法,更多使用參考:https://learning.getpostman.com/docs/postman/scripts/test_scripts/

測試前準備

發送請求之前往往需要準備數據,比如設置header中參數或者計算簽名.

使用Pre-request Script可以編寫一些準備數據.

d23ee92c1427646c4995680dfb6f2c9f.png

在header頭中引入剛剛設置{{timestamps}}環境變量.

66bf1cb91b1fe1b6e92d24a1c7356be9.png

可以看到header中已經填寫了時間戳參數.

4672341be66db20142bafa22419e6d6d.png

請求前編寫加密算法

var username = "test";var pwd = "123321";var base64Str = CryptoJS.enc.Utf8.parse(username+pwd);var token = CryptoJS.enc.Base64.stringify(base64Str);postman.setGlobalVariable("token",token);console.log(token);// 使用賬號+密碼的base64位加密算法

加密生成的字符串

ec661c36adc63508bf1001fb79b39eba.png

header頭中攜帶生成加密的token變量

383ce83d6bb0aa4f4212580c14c5d40a.png

服務端使用base64位解密

02010a4e56dcb1ae0b6f895e2e6560ed.png

接口環境變量

b20309c1e04b4ac1e3b53069e9942afd.png
c5d4726487af91b77bc14b17e644e586.png
f1839d5fb35c8d3b407e3cf6e675d71a.png

接口參數化

全局變量

670e6a521fdcbffc7403798962e7d365.png

局部變量

使用{{}}作為變量

b4b46c3b6ca689a84a75f2ccb35db753.png

參數化文件

.csv文件格式,第一行是變量名,后面是具體賦值.

e9d30c2cc143c9a0fd9dfe2eee8e40f2.png

選擇參數化文件

74f3da1ec10fd2f6fbc875f14be694e2.png

接口參數傳遞

在登錄接口的響應數據中獲取token值.

394f809715b71f86f14057c565742173.png

把token傳遞給第二個接口中的header頭中.

a3296342d3a02e3049fad3eeeab5a738.png

第二個接口中的header頭中已經拿到了token.

16a8f11910c0ddb3ccd9584097fb5a4c.png

其他常用的方法

設置環境變量

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

設置全局變量

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

獲取環境變量

pm.environment.get("variable_key");

獲取全局變量

pm.globals.get("variable_key");

清除環境變量

pm.environment.unset("variable_key");

清除全局變量

pm.globals.unset("variable_key");

newman使用

官方教程

https://learning.getpostman.com/docs/postman/collection_runs/command_line_integration_with_newman/

安裝

npm install -g newman

運行

簡單運行

newman run 接口測試.postman_collection.json

打印循環次數、請求次數、斷言次數、耗時等,但是沒有輸出文件.

040d22bb49315ca090d51080b8e8435a.png

循環執行

newman run 接口測試.postman_collection.json -n 2
cc8df806377f9e689f0ef243061c7853.png

參數化

-d是參數化文件

newman run 接口參數化測試.postman_collection.json -d 參數化數據.csv
db84ca021b190f6166d5776698c1f693.png

報告

jenkins持續集成

在jenkins中創建自由風格的job

8bf6bf27657a3a0c0f90b3afd9b199ba.png

job配置

構建shell配置

newman run 文件路徑/接口測試.postman_collection.json--reporters cli,html,json,junit--reporter-json-export jsonOut.json--reporter-junit-export xmlOut.xml--reporter-html-export htmlOut.html

構建后報告配置參數

**/*.xml
2abf76bc4577b86e0ee24012c24a3391.png
3bccbaa62ce748ee73a04535518ac514.png
37031824354a9e48bf3ac8e70e762a8d.png
1aece79ac4d532ae9ca2758eec243cb9.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/394276.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/394276.shtml
英文地址,請注明出處:http://en.pswp.cn/news/394276.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

求絕對值最小的數

題目 有一個升序排列的數組&#xff0c;數組中可能有正數&#xff0c;負數或0. 求數組中元素的絕對值最小的數. 例如 數組{-10&#xff0c; 05&#xff0c; 02 &#xff0c;7&#xff0c;15&#xff0c;50} 絕對值最小的是-2 解答 #include <bits/stdc.h> using namespac…

leetcode面試題 04.02. 最小高度樹(深度優先搜索)

給定一個有序整數數組&#xff0c;元素各不相同且按升序排列&#xff0c;編寫一個算法&#xff0c;創建一棵高度最小的二叉搜索樹。 public TreeNode sortedArrayToBST(int[] nums) {if(nums.length0) return null;return BST(nums,0,nums.length-1);}public TreeNode BST(int[…

IT團隊如何贏得尊重?

本文講的是IT團隊如何贏得尊重,在傳統觀念中&#xff0c;作為企業的IT人&#xff0c;似乎都有一種揮之不去的消極情緒&#xff1a;能夠為企業帶來直接利益的業務部門才是企業核心&#xff0c;而作為技術支撐的IT部門&#xff0c;則是作為附屬而存在。 我們經常也會聽到一些企業…

mysql 官方鏡像_運行官方mysql 鏡像

//目前最新的為mysql 8sudo docker run -itd --restart unless-stopped --nethost --name mysql -p3306:3306 -e MYSQL_ROOT_PASSWORDroot mysqlmysql 官方docker 需要重新設置密碼&#xff0c;否則無法遠程連接step1 : docker exec -it [容器id] /bin/bashstep2 : 登陸mysql &…

我如何使用React,Redux-Saga和Styled Components構建NBA球員資料獲取器

by Jonathan Puc喬納森普克(Jonathan Puc) 我如何使用React&#xff0c;Redux-Saga和Styled Components構建NBA球員資料獲取器 (How I built an NBA player profile fetcher with React, Redux-Saga, and Styled Components) Hello, all! It’s been a while since I built so…

vb 數組屬性_VB中菜單編輯器的使用講解及實際應用

大家好&#xff0c;今天我們共同來學習VB中菜單方面的知識。VB中菜單的基本作用有兩個&#xff1a;1、提供人機對話的界面&#xff0c;以便讓使用者選擇應用系統的各種功能&#xff1b;2、管理應用系統&#xff0c;控制各種功能模塊的運行。在實際應用中&#xff0c;菜單可分為…

《JAVA程序設計》_第七周學習總結

一、學習內容 1.String類——8,1知識 Java專門提供了用來處理字符序列的String類。String類在java.lang包中&#xff0c;由于java.lang包中的類被默認引入&#xff0c;因此程序可以直接使用String類。需要注意的是Java把String類聲明為final類&#xff0c;因此用戶不能擴展Stri…

leetcode109. 有序鏈表轉換二叉搜索樹(深度優先搜索/快慢指針)

給定一個單鏈表&#xff0c;其中的元素按升序排序&#xff0c;將其轉換為高度平衡的二叉搜索樹。 本題中&#xff0c;一個高度平衡二叉樹是指一個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。 解題思路 先將鏈表轉換成數組&#xff0c;再構造二叉搜索樹 代碼 …

NeHe OpenGL教程 第三十七課:卡通映射

轉自【翻譯】NeHe OpenGL 教程 前言 聲明&#xff0c;此 NeHe OpenGL教程系列文章由51博客yarin翻譯&#xff08;2010-08-19&#xff09;&#xff0c;本博客為轉載并稍加整理與修改。對NeHe的OpenGL管線教程的編寫&#xff0c;以及yarn的翻譯整理表示感謝。 NeHe OpenGL第三十七…

SDN交換機在云計算網絡中的應用場景

SDN的技術已經發展了好幾年了&#xff0c;而云計算的歷史更長&#xff0c;兩者的結合更是作為SDN的一個殺手級應用在近兩年炒得火熱&#xff0c;一些知名咨詢公司的關于SDN逐年增加的市場份額的論斷&#xff0c;也主要是指SDN在云計算網絡中的應用。 關于SDN在云計算網絡中的應…

sql server 里面怎么支持數字使用雙引號_國查:用中文編寫SQL

這兩天被 文言(wenyan-lang)刷屏了&#xff0c;這個項目在于使用文言文進行編程&#xff0c;我打算蹭個熱度&#xff0c;把年初的作品再撈一撈&#xff0c;即中文SQL。1. 文言Wenyan&#xff1a;吾有一數。曰三。名之曰「甲」。為是「甲」遍。吾有一言。曰「「問天地好在。」」…

七日掌握設計配色基礎_掌握正確的基礎知識:如何設計網站的導航,搜索和首頁...

七日掌握設計配色基礎by Anant Jain通過Anant Jain 掌握正確的基礎知識&#xff1a;如何設計網站的導航&#xff0c;搜索和首頁 (Get the basics right: how to design your site’s navigation, search, and homepage) 一個7分鐘的指南&#xff0c;使這三個基礎組件正確無誤。…

python渲染光線_python模板渲染配置文件

python的mako、jinja2模板庫&#xff0c;確實好用&#xff01;這里做個筆記&#xff0c;好記性不如爛筆頭。#!/usr/bin/env python#encodingutf-8import sys,yaml # 配置文件使用yaml格式from mako.template import Template # 加載mako庫的Templat…

leetcode114. 二叉樹展開為鏈表(深度優先搜索)

給定一個二叉樹&#xff0c;原地將它展開為一個單鏈表。例如&#xff0c;給定二叉樹1/ \2 5/ \ \ 3 4 6 將其展開為&#xff1a;1\2\3\4\5\6代碼 class Solution {public void flatten(TreeNode root) {flat(root);}public TreeNode flat(TreeNode root) {if(rootnull)…

eclipse新建web項目

需要點擊File—>New—>Other…在Web文件夾下找到Dynamic Web Project—>Next修改server端口可以在啟動項目后訪問地址是端口號項目名轉載于:https://juejin.im/post/5cb4999df265da037b610545

idea tips

AltInsert 自動出現generate ,,里面有構造方法&#xff0c;getter,setter... CtrlO,重寫方法 CtrlI...自動出現接口的方法 轉載于:https://www.cnblogs.com/bin-lin/p/6247538.html

革新以太網交換機架構 全光網絡的風刮進園區

全光網絡的風正在刮進園區網&#xff0c;眾所周知&#xff0c;光纖入戶發展迅速&#xff0c;隨著PON&#xff08;無源光纖網絡&#xff09;技術在運營商通信網絡的大規模使用&#xff0c;PON相關產業鏈逐步成熟&#xff0c;這也使得PON技術逐步在企業園區網得到應用。 基于銅線…

mysql loop循環實例_MySql CURSOR+LOOP循環-使用小實例

轉載自https://blog.csdn.net/starinbrook/article/details/77078126轉載自https://blog.csdn.net/makang456/article/details/53896346/【簡介】游標實際上是一種能從包括多條數據記錄的結果集中每次提取一條記錄的機制。游標充當指針的作用。盡管游標能遍歷結果中的所有行&am…

react數據從本地讀取_如何將從Google表格讀取的React應用程序部署到Netlify

react數據從本地讀取In this tutorial, we’re going to cover how to connect to a spreadsheet hosted on Google, display that information inside a React application, and deploy it to Netlify.在本教程中&#xff0c;我們將介紹如何連接到Google托管的電子表格&#x…

leetcode743. 網絡延遲時間(迪杰斯特拉算法)

有 N 個網絡節點&#xff0c;標記為 1 到 N。 給定一個列表 times&#xff0c;表示信號經過有向邊的傳遞時間。 times[i] (u, v, w)&#xff0c;其中 u 是源節點&#xff0c;v 是目標節點&#xff0c; w 是一個信號從源節點傳遞到目標節點的時間。 現在&#xff0c;我們從某個…