postman定義公共函數這樣寫,測試組長直呼牛逼!!!

postman定義公共函數

在postman中,如下面的代碼:

1、返回元素是否與預期值一致

var assertEqual=(name,actual,expected)=>{tests[`${name}:實際結果: ${actual} , 期望結果:${expected}`]=actual===expected;};

2、返回元素是否與預期值不一致

var assertNotEqual=(name,actual,expected)=>{tests[`${name}:實際結果: ${actual} , 期望結果:${expected}`]=actual!==expected;};

以上都是自定義的斷言函數,每次在使用的時候都需要把代碼進行復制粘貼,很不方便,可以使用公共函數來實現。

eval() 函數作用

可以接受一個字符串str作為參數,并把這個參數作為腳本代碼來 執行。

舉例如下:把代碼轉成字符串并做一個變量,然后通過eval(變量名)函數轉成代碼直接調用

復制代碼?

//定義s為變量
var s = 'var a = 10; var b = 20;'
eval(s)  //把s變量的值轉成代碼;即a = 10;b = 20
tests[a+b] = true  //輸出a + b = 30//做斷言,實際結果和預期結果一致
var common_function = 'var assertEqual=(name,actual,expected)=>{tests[`${name}:實際結果:${actual} , 期望結果:${expected}`]=actual===expected;};'
eval(common_function)
assertEqual("驗證title是否正確",title,"貓_百度搜索")

復制代碼?

如下操作完成公共函數的編寫:

備注:只能使用var定義的函數,不能用const

1、把定義好的函數作為字符串存放在變量中;如下圖的common_function變量

?

2、把上一個定義的變量設置到全局變量中;

?

3、在需要使用函數的地方,使用eval()函數把全局變量中的值轉換為代碼進行執行 。

?

?4、查看執行結果

?

?自動化測試相關教程推薦:

2023最新自動化測試自學教程新手小白26天入門最詳細教程,目前已有300多人通過學習這套教程入職大廠!!_嗶哩嗶哩_bilibili

2023最新合集Python自動化測試開發框架【全棧/實戰/教程】合集精華,學完年薪40W+_嗶哩嗶哩_bilibili

測試開發相關教程推薦

2023全網最牛,字節測試開發大佬現場教學,從零開始教你成為年薪百萬的測試開發工程師_嗶哩嗶哩_bilibili

postman/jmeter/fiddler測試工具類教程推薦

講的最詳細JMeter接口測試/接口自動化測試項目實戰合集教程,學jmeter接口測試一套教程就夠了!!_嗶哩嗶哩_bilibili

2023自學fiddler抓包,請一定要看完【如何1天學會fiddler抓包】的全網最詳細視頻教程!!_嗶哩嗶哩_bilibili

2023全網封神,B站講的最詳細的Postman接口測試實戰教學,小白都能學會_嗶哩嗶哩_bilibili

通過上面的方式知道可以把函數代碼放到全局變量中,那么可以把經常用到的函數代碼一起放到全局變量中;

示例:復制代碼?

//獲取當前時間戳 毫秒
var now_time = Date.now()
pm.globals.set("now_time",now_time)//guid實現
const guid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
.replace(/x/g, () => (Math.floor(Math.random() * 16)).toString(16))
.replace(/y/g, () => (Math.floor(Math.random() * 4 + 8)).toString(16));
pm.globals.set("guid_value",guid)//隨機整數實現
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + 
min
pm.globals.set("randomInt_num",randomInt(8,15))//從多個選項中選擇實現
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + 
min
const getRandomValue = list => list[randomInt(0, list.length - 1)];
const charsInName = ['王','李','張']
pm.globals.set("people_name",getRandomValue(charsInName))//隨機手機號實現
const randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + 
min
var mobile_num = `18${randomInt(100000000, 999999999)}`;
pm.globals.set("mobile_num",mobile_num)//同步等待實現:等待5秒后開始執行
const sleep = (milliseconds) => {
const start = Date.now();
while (Date.now() <= start + milliseconds) {}
}
sleep(5000)?

把上方的代碼拼到一起如下:

var now_time = Date.now();var guid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';var randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;var randomInt = (min, max) => Math.floor(Math.random() * (max - min + 1)) + min;var getRandomValue = list => list[randomInt(0, list.length - 1)];var mobile_num = `18${randomInt(100000000, 999999999)}`;var sleep = (milliseconds) => {const start = Date.now();while (Date.now() <= start + milliseconds) {}};var assertEqual=(name,actual,expected)=>{tests[`${name}:實際結果:${actual} , 期望結果:${expected}`]=actual===expected;};

在全局變量中定義一個公共函數common_function,變量值為拼接的函數

?

?在Pre-request Script和tests頁簽中調用common_function中的函數

以隨機手機號舉例:

1、在Pre-request Script頁簽中調用公共函數common_function,并再設置一個隨機手機號的全局變量;如下圖

?

?

?

?2、在tests頁簽中做斷言

?

?3、查看執行結果

?

?

?總結:

?光學理論是沒用的,要學會跟著一起敲,要動手實操,才能將自己的所學運用到實際當中去,這時候可以搞點實戰案例來學習。

?

?

如果對你有幫助的話,點個贊收個藏,給作者一個鼓勵。也方便你下次能夠快速查找。

如有不懂還要咨詢下方小卡片,博主也希望和志同道合的測試人員一起學習進步

在適當的年齡,選擇適當的崗位,盡量去發揮好自己的優勢。

我的自動化測試開發之路,一路走來都離不每個階段的計劃,因為自己喜歡規劃和總結,

測試開發視頻教程、學習筆記領取傳送門!!

?

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

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

相關文章

2023年危險化學品經營單位主要負責人證模擬考試題庫及危險化學品經營單位主要負責人理論考試試題

題庫來源&#xff1a;安全生產模擬考試一點通公眾號小程序 2023年危險化學品經營單位主要負責人證模擬考試題庫及危險化學品經營單位主要負責人理論考試試題是由安全生產模擬考試一點通提供&#xff0c;危險化學品經營單位主要負責人證模擬考試題庫是根據危險化學品經營單位主…

Exception:Zero date value prohibited

運行了很久的系統&#xff0c;突然不能訪問&#xff0c;報錯如下&#xff1a; Error attempting to get column updated_time from result set. Cause: java.sql.SQLException: Zero date value prohibited; SQL []; Zero date value prohibited; nested exception is java.…

【追求卓越12】算法--堆排序

引導 前面幾節&#xff0c;我們介紹了有關樹的數據結構&#xff0c;我們繼續來介紹一種樹結構——堆。堆的應用場景有很多&#xff0c;比如從大量數據中找出top n的數據&#xff1b;根據優先級處理網絡請求&#xff1b;這些情景都可以使用堆數據結構來實現。 什么是堆&#xf…

【20年揚大真題】編寫程序,功能是計算1~10之間的偶數之和

【20年揚大真題】 編寫程序&#xff0c;功能是計算1~10之間的偶數之和 #include<stdio.h> int main() {int i 1;int sum 0;for (i 1;i < 10;i){if (i % 2 0){sum i;}}printf("%d", sum); }

Java核心知識點整理大全9-筆記

目錄 null文章瀏覽閱讀9w次&#xff0c;點贊7次&#xff0c;收藏7次。Java核心知識點整理大全https://blog.csdn.net/lzy302810/article/details/132202699?spm1001.2014.3001.5501 Java核心知識點整理大全2-筆記_希斯奎的博客-CSDN博客 Java核心知識點整理大全3-筆記_希斯…

FindMy技術用于充電寶

充電寶是一種便捷的充電器&#xff0c;方便個人隨身攜帶&#xff0c;能夠自行儲備電能&#xff0c;為主流電子設備提供充電服務。它廣泛應用于沒有外部電源供應的場所&#xff0c;例如旅行、戶外活動或緊急情況下&#xff0c;為用戶的手持設備提供持續的電力支持&#xff0c;確…

spring boot加mybatis puls實現,在新增/修改時,對某些字段進行處理,使用的@TableField()或者AOP @Before

1.先說場景&#xff0c;在對mysql數據庫表數據插入或者更新時都得記錄時間和用戶id 傳統實現有點繁瑣&#xff0c;這里還可以封裝一下公共方法。 2.解決方法&#xff1a; 2.1&#xff1a;使用aop切面編程&#xff08;記錄一下&#xff0c;有時間再攻克&#xff09;。 2.1.1&am…

讀書筆記:彼得·德魯克《認識管理》第30章 管理溝通

一、章節內容概述 我們知道&#xff0c;組織中的溝通是感知&#xff0c;也是期望&#xff0c;會產生要求&#xff0c;并且與信息不同&#xff0c;二者是對立的卻相互依賴。 我們知道&#xff0c;下行溝通沒有效果&#xff0c;只有上行溝通才能達到目的&#xff0c;并且 我們還…

軟件工程第十二周

軟件作坊、軟件危機、軟件過程控制、重型控制、敏捷、DevOps 這些術語概括了軟件開發歷史和實踐中的幾個重要概念和階段。讓我們逐一解析它們&#xff1a; 軟件作坊&#xff08;Software Craftsmanship&#xff09;&#xff1a;這是軟件開發的早期模式&#xff0c;強調個人技能…

【面試題】for...in 和 for...of 的區別

給大家推薦一個實用面試題庫 1、前端面試題庫 &#xff08;面試必備&#xff09; 推薦&#xff1a;★★★★★ 地址&#xff1a;web前端面試題庫 JavaScript 是一門強大而靈活的編程語言&#xff0c;提供了多種迭代對象的方式。兩個常見的迭代方式是 for...in 和…

Boost獲取當前時間并格式化為字符串

格式化為字符串 時間轉字符串有兩種方法 #include <boost/date_time/posix_time/posix_time.hpp> #include <iostream>std::string getCurrentTime() {boost::posix_time::ptime currentTime boost::posix_time::microsec_clock::local_time(); std::string …

centos 安裝k8s教程(一鍵安裝k8s)

第一步 準備幾臺機器 第二步 K8s Manager 服務器中添加docker支持 安裝教程請查看這個博客 docker 安裝詳細教程 點我 第三步安裝 KuboardSpray 教程在這里 第四步 下載k8s資源包 第五步 安裝k8s 點擊安裝后 顯示如下&#xff1a;等待完成

arduino入門一:點亮第一個led

void setup() { pinMode(12, OUTPUT);//12引腳設置為輸出模式 } void loop() { digitalWrite(12, HIGH);//設置12引腳為高電平 delay(1000);//延遲1000毫秒&#xff08;1秒&#xff09; digitalWrite(12, LOW);//設置12引腳為低電平 delay(1000); }

電腦桌面便簽工具選擇哪一款?

隨著互聯網時代的不斷發展&#xff0c;電腦成為日常工作及辦公中必不可少的工具&#xff0c;通過電腦這款工具&#xff0c;大家可以更好的進行工作、學習等方面的交流&#xff1b;電腦桌面便簽由于可以為大家整合一些工作及學習方面的備忘事項及筆記等&#xff0c;因而深受大家…

獲取驗證碼在倒計時未完成前清除驗證碼

場景&#xff1a; 在點擊獲取驗證碼后&#xff0c;驗證碼開始倒計時&#xff0c;在點擊登錄后&#xff0c;出現彈窗不跳轉頁面。因此在出現彈窗后&#xff0c;即使倒計時沒有結束&#xff0c;也要將倒計時的文字變為重新獲取驗證碼。 template代碼 <div class"form-b…

【Vue】Node.js的下載安裝與配置

目錄 一.下載安裝 官網&#xff1a; 二.環境變量的配置 三.設置全局路徑和緩存路徑 四.配置淘寶鏡像 五.查看配置 六.使用npm安裝cnpm ? 一.下載安裝 官網&#xff1a; https://nodejs.org/en/download 下載完之后&#xff0c;安裝的時候一直點next即可&#xff0c…

FlinkCDC實現主數據與各業務系統數據的一致性(瀚高、TIDB)

文章末尾附有flinkcdc對應瀚高數據庫flink-cdc-connector代碼下載地址 1、業務需求 目前項目有主數據系統和N個業務系統,為保障“一數一源”,各業務系統表涉及到主數據系統的字段都需用主數據系統表中的字段進行實時覆蓋,這里以某個業務系統的一張表舉例說明:業務系統表Ta…

BQL是什么如何使用?

BQL是什么如何使用&#xff1f; BQL來源于Business Query Language &#xff0c;是一種業務查詢語言。是北京碩迪制信科技有限公司根據以往統計分析案例研發的一種語言。特點是通過可視化界面對業務語言進行查詢、聚合、排序等操作&#xff0c;通過BQL引擎轉換為數據庫可執行的…

CSGO游戲搬磚市場下跌分析,是跑還是入?

CSGO市場下跌分析&#xff0c;是跑還是入&#xff1f; 以下所有都是阿陽本人最近幾年觀察市場和踩坑的一點經驗&#xff0c;由于篇幅不長所以肯定會很淺薄&#xff0c;大伙下嘴輕點 。 首先現在真的是CSGO市場最低點嗎&#xff1f;后續還會跌嗎&#xff1f;我們究竟是該繼續觀…

Course1-Week1:機器學習簡介

Course1-Week1&#xff1a;機器學習簡介 文章目錄 Course1-Week1&#xff1a;機器學習簡介1. 課程簡介1.1 課程大綱1.2 Optional Lab的使用 (Jupyter Notebooks)1.3 歡迎參加《機器學習》課程 2. 機器學習簡介2.1 機器學習定義2.2 有監督學習2.3 無監督學習 3. 線性回歸模型3.1…