当前位置:网站首页>Jmeter——ForEach Controller&Loop Controller
Jmeter——ForEach Controller&Loop Controller
2020-11-06 01:29:04 【itread01】
今天來分享下Jmeter中的2款迴圈控制器,ForEach Controller和Loop Controller,在使用上還是有所區別。 # ForEach Controller ## ForEach Controller簡介 ForEach Controller可以理解為迭代器(iterator),就是遍歷當前符合條件的所有資料,可用於Jmeter指令碼中的引數化。 我們直接看圖來說,如下所示:  如上所示,就是ForEach Controller的配置介面,介面有如下引數,一一講解: - Name:控制器名稱,可根據使用者需要任意填寫,也可不填 - Comments:使用者可根據需要任意填寫,也可不填 - Input variable prefix:輸入變數字首,資料來源:①使用者可以在“使用者自定義變數”中定義一組變數,迴圈控制器可以從中獲取到變數對應值,然後作為迴圈條件;②使用者可將提取的引數作為迴圈條件 - Start index for loop(exclusive): 開始迴圈欄位,迴圈變數下標起點(不包含) - End index for loop(inclusive):迴圈變數下標終點(包含) - Output variable name:輸出變數名稱,迴圈控制器生成的變數名稱,引用時填寫的引數名稱與輸出變數名稱一致 - Add "\_"before number?:數字之前加上下劃線“\_”,變數字首是否加“_”作為分隔符 ## ForEach Controller使用 我們直接通過案例來看,ForEach Controller如何使用。如上所述,變數的來源,取自於2種情況,那我們就一一瞭解下。不過在操作之前,各自要有Jmeter環境哦,環境配置可以參考以前博文。 ### 使用者定義變數 使用者定義變數是配置元件中的一個元件,可定義引數,便於後續介面直接使用,也是引數化的一種方式。元件新增入口如下所示:  我們來定義一組資料,我就以自己的部落格為例了,配置引數後,如下所示:  我們可以看出,變數名稱是有規律可循的,都是以wd_number開頭。或許有疑問,為什麼要這樣來設定,繼續往下看,馬上就能知道其作用了。 引數來源我們配置好後,這就需要在ForEach Controller配置對應資料了,跟上節奏一起來。 我們在之前ForEach Controller簡介中瞭解到,有個引數是`Input variable prefix 輸入變數字首`,在這裡輸入的內容就是`wd_number`。因為我們在使用者定義變數的元件中,配置的一組資料都是以此開頭的。 `Start index for loop(exclusive)`和`End index for loop(inclusive)`可以不配置,非必填資料。如果配置的話,需要注意的是,起始位是不包含的,這個到時候具體看案例截圖就清楚。 `Output variable name`輸出變數,這個引數是用於後續引數的引用名稱,比如我們平時用到的正則提取器,也是需要定義一個變數的,同一個意思。 `Add "\_"before number` 這個是看各自定義的變數名稱是怎樣的,變數間有`_`,則需要勾選,沒有的話,不勾選即可。 配置結果如下所示:  我們再用`outwd`變數引用到對應介面引數中即可,如下所示:  到現在為止,已經完成了配置步驟,我們直接來執行指令碼,看下執行結果,如下所示:  從執行的結果可以看出,我們並沒有設定迴圈次數,可為什麼是5次了,是因為我們設定的變數只有5個,並且是依次替換變數請求介面,這不就是普通的引數化嘛,是不是很簡單。 剛才的結果,我們沒有配置迴圈的起止位,現在我們配置上起止位,配置如下:  再次執行指令碼,看下是什麼個結果,如下所示:  從上圖執行的結果可以很清楚明瞭的看出其作用,起始位是`不包含`的,結束位是`包含`,配置為1和3,所以執行結果是取2和3的引數來請求介面。 ### 提取引數 提取引數同樣以部落格為例,每個人的部落格都有三個列表,閱讀排行榜、最新評論、推薦排行榜,剛好可以用於此demo。 可以看下資料,都是一個a標籤,如下所示:  通過使用者定義變數的方式,大家肯定有思路,提取引數如何實現了。 我們通過正則,將15條資料提取,並把對應引數配置到ForEach Controller即可。 那我們就先實現正則匹配這一步,正則相關知識自己另外補充,也可以參考我以前的博文,今天就不贅述了。我們觀察要提取的資料,都是有規律可循的,新增正則提取器,並配置如下所示:  這裡需要注意的是,`Match No.`,我們在這裡配置為`-1`,因為需要符合條件的所有值: - 配置為0,表示隨機值; - 配置為正整數,表示取匹配到的第幾個資料; - 配置為-1,表示取匹配到的所有資料。 正則配置好後,可以執行指令碼,看下是否正常提取到了資料,除錯也是寫指令碼的一部分工作。 我們再來配置ForEach Controller,如下所示:  再將輸出變數引用到對應介面引數中,如下所示:  我們來執行指令碼,看下整體效果,如下所示:  如上所示,分別請求了15次介面,使用起來是不是很方便,到此,是不是已經可以上手使用起來了,引數化就是這麼簡單。 # Loop Controller ## Loop Controller簡介 Loop Controller,功能擴充套件性不強,只能配置為無限迴圈和具體迴圈次數,主要用於測試介面重複呼叫的情況。 我們通過配置介面來了解下,如下所示:  根據上圖,來了解下引數配置: - Loop Controller:元件名稱 - Name:控制器名稱 - Comments:註釋 - Loop Count:設定執行次數,Infinite 勾選表示為永久執行 ## Loop Controller使用 Loop Controller使用很簡單,我們看了配置介面就很清楚,無非就是配置迴圈次數,或者一直無限迴圈。 ### 指定迴圈次數 我們通過案例來直觀的看下效果,我們配置迴圈次數為2,並執行指令碼,執行結果如下所示:  我們從上圖可知,迴圈次數為2,每個介面呼叫了2次。比如有些業務,後端介面有做重複呼叫校驗的,就可以通過這種方式來驗證了。 ### 無限迴圈 配置為無限迴圈的話,顧名思義,那肯定是一直會執行指令碼,除非手動停止,指令碼才會停止執行。 好了,今天的2種迴圈控制器就介紹到這裡,綜上所述,如果用於引數化的話,大家肯定會使用ForEach Controller。2種控制器,各有功能,各取所需,希望對有需要的博友有所
版权声明
本文为[itread01]所创,转载请带上原文链接,感谢
https://www.itread01.com/content/1604584805.html
边栏推荐
- C++ 数字、string和char*的转换
- C++学习——centos7上部署C++开发环境
- C++学习——一步步学会写Makefile
- C++学习——临时对象的产生与优化
- C++学习——对象的引用的用法
- C++编程经验(6):使用C++风格的类型转换
- Won the CKA + CKS certificate with the highest gold content in kubernetes in 31 days!
- C + + number, string and char * conversion
- C + + Learning -- capacity() and resize() in C + +
- C + + Learning -- about code performance optimization
猜你喜欢
-
C + + programming experience (6): using C + + style type conversion
-
Latest party and government work report ppt - Park ppt
-
在线身份证号码提取生日工具
-
Online ID number extraction birthday tool
-
️野指针?悬空指针?️ 一文带你搞懂!
-
Field pointer? Dangling pointer? This article will help you understand!
-
HCNA Routing&Switching之GVRP
-
GVRP of hcna Routing & Switching
-
Seq2Seq实现闲聊机器人
-
【闲聊机器人】seq2seq模型的原理
随机推荐
- LeetCode 91. 解码方法
- Seq2seq implements chat robot
- [chat robot] principle of seq2seq model
- Leetcode 91. Decoding method
- HCNA Routing&Switching之GVRP
- GVRP of hcna Routing & Switching
- HDU7016 Random Walk 2
- [Code+#1]Yazid 的新生舞会
- CF1548C The Three Little Pigs
- HDU7033 Typing Contest
- HDU7016 Random Walk 2
- [code + 1] Yazid's freshman ball
- CF1548C The Three Little Pigs
- HDU7033 Typing Contest
- Qt Creator 自动补齐变慢的解决
- HALCON 20.11:如何处理标定助手品质问题
- HALCON 20.11:标定助手使用注意事项
- Solution of QT creator's automatic replenishment slowing down
- Halcon 20.11: how to deal with the quality problem of calibration assistant
- Halcon 20.11: precautions for use of calibration assistant
- “十大科学技术问题”揭晓!|青年科学家50²论坛
- "Top ten scientific and technological issues" announced| Young scientists 50 ² forum
- 求反转链表
- Reverse linked list
- js的数据类型
- JS data type
- 记一次文件读写遇到的bug
- Remember the bug encountered in reading and writing a file
- 单例模式
- Singleton mode
- 在这个 N 多编程语言争霸的世界,C++ 究竟还有没有未来?
- In this world of N programming languages, is there a future for C + +?
- es6模板字符
- js Promise
- js 数组方法 回顾
- ES6 template characters
- js Promise
- JS array method review
- 【Golang】️走进 Go 语言️ 第一课 Hello World
- [golang] go into go language lesson 1 Hello World