postman接口自動化測試

?Postman除了前面介紹的一些功能,還有其他一些小功能在日常接口測試或許用得上。今天,我們就來盤點一下,如下所示:

1.數據驅動
????想要批量執行接口用例,我們一般會將對應的接口用例放在同一個Collection中,然后再通過Runner批量執行。這種方式適用于接口用例參數固定的情況下,但也存在另一個問題,如果每次運行時,接口參數都在變化,該如何操作了?

????認真看過前面文章的童鞋可能已經猜到,將變量參數化就可以了。但這種方式,存在也存在另外一個問題,就是需要每次將參數提前設置好,比如在Pre-request Script中設置如下:

pm.environment.set("username","Surpass")
pm.environment.set("password","Surpass")

使用Pre-request Script設置環境變量并進行賦值不論運行多少次,其實還是用固定的的數據進行測試。

?既然以上兩種方式都不能解決我們的問題,那將數據寫到文件中,然后從文件中讀取是不是可以?在Postman中其實也提供了這種方式。

這種用于存放測試數據的文件,一般稱之為測試數據集??

在Postman中測試數據集支持兩種格式csvjson

  • csv格式
username,password
Surpass,Surpass
Kevin,Kevin
Diana,Diana
...
  • json格式
[{"username": "Surpass","password": "Surpass"},{"username": "Kevin","password": "Kevin"},{"username": "Diana","password": "Diana"}
]

數據格式類似于表格,第一行對應變量名,后面數據對應相應的測試數據?

? 下面來看看操作步驟:

  • 1、打開Run Collection界面,填寫運行次數、導入測試數據集,最后點擊Run Collection

  • 2、運行結果如下所示:

2.定期任務

? ? Postman提供了一個Monitor功能,支持提交具有定時功能的測試任務,可以按設置的定時器執行接口用例,操作如下所示:

3.接口依賴
????接口依賴就是在執行一個接口時,其數據會依賴于其他接口,其本質上是一個接口數據傳遞的問題。例如:比如在刪除用戶時,必須要求攜帶相應的token,而token則是在用戶登錄后才會產生。

3.1 接口執行順序

1.默認執行順序
????在Postman中默認的執行順序,是按照在Collection中的目錄順序執行,即從上到下依次執行。

2.自定義執行順序
????如果按默認的目錄順序執行,通常無法其業務需求,好在Postman提供了一個函數 postman.setNextRequest("你要跳轉的接口名"),支持跳轉到指定接口執行。例如:在執行完接口用戶查詢后,跳過接口用戶新增,直接跳轉執行修改密碼,示例如下所示:

1、在用戶查詢接口Tests中添加如下代碼:

if(pm.response.code == 200 && pm.response.text().toString().indexOf("username")!=-1 ){// 如果 響應碼為 200 且 返回body中包含username,則代表查詢成功pm.test["query"] = true;var responseBody=pm.response.json()var username=responseBody.args.usernamevar password=responseBody.args.passwordpm.environment.set("modifyUsername",username)pm.environment.set("modifyPassword",password)console.log("go to request : 修改密碼")postman.setNextRequest("修改密碼")}
else{pm.test["query"] = false
}
  • 2、在修改密碼接口中Tests中添加如下所示:
console.log("run 修改密碼接口")
var responseBody=pm.response.json()var username=responseBody.form.username
var password=responseBody.form.passwordconsole.log("修改密碼接口 - username",username,"修改密碼接口 - password",password)
  • 3、查看運行結果如下所示:

??在使用自定義接口執行順序時,需要注意以下幾點:

postman.setNextRequest()僅在運行集合測試時生效,即在Run Collection時才生效,單獨運行接口時不生效?

postman.setNextRequest()在運行時,在跳轉時會忽略跳轉時中間包含的接口,跳轉后的接口如果仍然有接口則繼續運行后續接口,即如果有接口A/B/C/D/E/F,如果設置的跳轉條件為A->D,則最終執行的接口順序為A->D->E->F,B和C接口被忽略??

跳轉指定的接口必須位于同一個Collection內??

postman.setNextRequest()函數不管在Tests腳本中何處被調用,它都只在當前腳本最后才被真正執行。??

總結:

感謝每一個認真閱讀我文章的人!!!

作為一位過來人也是希望大家少走一些彎路,如果你不想再體驗一次學習時找不到資料,沒人解答問題,堅持幾天便放棄的感受的話,在這里我給大家分享一些自動化測試的學習資源,希望能給你前進的路上帶來幫助

軟件測試面試文檔

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

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

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

相關文章

unity 2d 入門 飛翔小鳥 Cinemachine 鏡頭跟隨小鳥 多邊形碰撞器 解決鏡頭不會穿模問題(十二)

1、安裝 window->package manager 2、創建Cinemachine 右鍵->Cinemachine->2D Carmera 3、創建空對象和多邊形控制器如圖 記得勾選 is Trigger 空對象位置記得要和小鳥保持一致,不然等下寫完腳本后,鏡頭一開始會移動一下 4、將多邊形觸…

代碼隨想錄算法訓練營第四十天|139.單詞拆分,多重背包,背包問題

139. 單詞拆分 - 力扣(LeetCode) 給你一個字符串 s 和一個字符串列表 wordDict 作為字典。請你判斷是否可以利用字典中出現的單詞拼接出 s 。 注意:不要求字典中出現的單詞全部都使用,并且字典中的單詞可以重復使用。 示例 1&a…

【Delphi】FMX開發 ios 和 android 異同點(踩坑記)

目錄 一、前言 二、補充下基礎知識 1. APP程序事件:TApplicationEvent 2. APP內置Web服務器或者UDP服務端或者TCP服務端 三、iOS 和 android 平臺的不同點 1. TApplicationEvent的不同點:以下不同點,請仔細閱讀! 2. APP內置…

AI 繪畫 | Stable Diffusion 人物換臉

前言 這篇文章教會你如何使用Stable Diffusion WEB UI擴展插件ReActor輕松實現圖片中的人物換臉。ReActor 是 Stable Diffusion WebUI 的擴展,它允許在圖像中非常簡單準確地進行人臉替換(人臉交換)。 安裝環境準備 安裝 Visual Studio 2022(例如,社區版本 - 需要此步驟來…

十八、FreeRTOS之FreeRTOS任務通知

本節需要掌握以下內容: 1、任務通知的簡介(了解) 2、任務通知值和通知狀態(熟悉) 3、任務通知相關API函數介紹(熟悉) 4、任務通知模擬信號量實驗(掌握) 5、任務通知…

智能無人零售:革新零售消費體驗的未來

智能無人零售:革新零售消費體驗的未來 在當今數字化時代,智能無人零售正以驚人的速度改變著我們的購物方式和消費體驗。這一新興領域的發展,為消費者帶來了前所未有的便利和個性化選擇。 智能無人零售是指利用先進的智能技術和自動化系統&…

【面試題:對象引用在內存中存在何處?基于何種計算機原理獲取對象的值?】

嗨,小伙伴們!小米在這里啦,今天給大家分享一個超有趣的話題——面試題:對象引用是存在內存哪,基于什么計算機原理獲取對象的值?廢話不多說,讓我們一起深入了解一下這個充滿技術魅力的問題吧&…

Java 安全框架shiro初探之一

1.Java安全框架除了spring家族另一個就是shiro框架 不過最近還有一個國產框架很好用:Sa-Token 添加鏈接描述,想了解的小伙伴可以去look look shiro 官方文檔 (https://shiro.apache.org/) 1. 學習教程 參考 (https://www.w3cschool.cn/shiro/) Apac…

2024濟南大健康展會,第六屆中國國際健康產業博覽會5月舉辦

大力發展全國健康事業 助力健康中國行動戰略 DJK 2024第6屆中國(濟南)國際大健康產業博覽會 The 2024 sixth China (Jinan) International Big Health Industry Expo 時間:2024年05月27日—29日 場館:中國濟南黃河國際會展中心 …

java中實現線程池的方式有哪些?

在 Java 中,實現線程池的方式主要有兩種: ThreadPoolExecutor 類: ThreadPoolExecutor 是 Java 提供的靈活、強大的線程池實現類。通過創建 ThreadPoolExecutor 對象,可以自定義線程池的各種參數,包括核心線程數、最大…

JavaScript-節點操作

節點操作 DOM節點 DOM節點:DOM樹里每一個內容都稱之為節點 節點類型: 元素節點 所有的標簽 比如body、divhtml時跟節點 屬性節點 所有的屬性,比如href 文本節點 所有的文本 其他 查找節點 節點的關系:針對的找親戚返回的都是…

java_springboot_ssm流浪寵物救助報名管理系統

用戶: 注冊登錄 寵物百科:提供一些養寵物的專業知識、養寵前的注意事項等等 寵物信息:包括寵物圖片、品種、性別、年齡、疫苗、領取要求等內容 寵物領養:領養人自己的詳細住址、收入情況、有無養過寵物的記錄(有則出示…

學習Java第64天,請求轉發和響應重定向

請求轉發和響應重定向 概述 什么是請求轉發和響應重定向 請求轉發和響應重定向是web應用中間接訪問項目資源的兩種手段,也是Servlet控制頁面跳轉的兩種手段 請求轉發通過HttpServletRequest實現,響應重定向通過HttpServletResponse實現 請求轉發生活舉例: 張三找李四借錢,李四…

人工智能原理復習--搜索策略(二)

文章目錄 上一篇啟發式搜索與或圖搜索博弈下一篇 上一篇 人工智能原理復習–搜索策略(一) 啟發式搜索 提高一般圖搜索效率的關鍵是優化OPEN表中節點的排序方式 最理想的情況是每次排序OPEN表表首n總在解答路徑上 全局排序–對OPEN表中的所有節點進行…

vue實例事件

實例方法 / 事件 vm.$on 監聽當前實例上的自定義事件。事件可以由 vm.$emit 觸發。回調函數會接收所有傳入事件觸發函數的額外參數。 vm.$on(test, function (msg) {console.log(msg) }) vm.$emit(test, hi) // > "hi"vm.$once( event, callback ) 監聽一個自定義…

Vue筆記(二)基本語法

基本語法 <style> table {border-collapse: collapse;margin:0 auto; } strong {color: rgb(235, 51, 100); }td, th {padding-left: 6px; } table tr td:first-child {width:150px } table tr td:nth-child(2) {width:300px } </style> <template><tabl…

mysql面試題——MVCC

一&#xff1a;什么是MVCC&#xff1f; 多版本并發控制&#xff0c;更好的方式去處理讀-寫沖突&#xff0c;就是為了查詢一些正在被另一個事務更新的行&#xff0c;并且可以看到它們被更新之前的值&#xff0c;這樣在做查詢的時候就不用等待另一個事務釋放鎖。 二&#xff1a…

萬界星空科技mes系統中看板管理

我們很多企業現在都有大屏&#xff0c;那到底萬界星空科技低代碼云mes系統管理中看板管理有什么作用&#xff1f;我總結了幾條: 1.提高車間的生產效率 2.有效的監控設備運行狀況 3.控制生產線運行 4.增加和改善用戶體驗 5.提高工作效率和工作安全性

Zabbix監控騰訊云VPC

一、簡介 私有網絡&#xff08;Virtual Private Cloud&#xff0c;VPC&#xff09;是騰訊云上一塊由用戶自定義的邏輯隔離網絡空間&#xff0c;為云服務器、云數據庫等資源提供安全可控的網絡環境。通過構建邏輯隔離的、用戶自定義配置的網絡空間&#xff0c;用戶能夠提升其云…

vue組件插槽

組件的插槽 組件本身就是一個容器&#xff0c;也可以是一個vue對象&#xff0c;也是一個虛擬DOM 普通插槽 組件本身是一個容器&#xff0c;這個容器本身是空的&#xff0c;當我們把需要封裝的html結構裝進去之后&#xff0c;我們可以認為這個容器被塞滿了&#xff0c;那就意…