前言
在實際工作中,當使用JMeter做性能腳本或者接口腳本時,當遇到需要對不同的條件做不同的操作時,我們可以使用JMeter中if控制器來實現
我們先來了解一下if控制器,含義:根據判斷條件決定是否執行該控制器內的請求,如果是字符串比較條件,參數和字符串 都需要加引號
條件格式:${__jexl3(條件表達式)}:
== 是否等於,如${__jexl3(${VAR}==1,)},判斷${VAR}變量是否等於1
!=不等於,如${__jexl3(${VAR}!=1,)},判斷${VAR}變量是否不等於1
!非,如${__jexl3(!(${VAR}!=1),)}對${VAR}!=1的結果取反
&&或||且與或,如 ${__jexl3(${VAR}==1 && ${name} != "heima",)}
> 或者>== 大於等於,如${__jexl3(${count}>=10,)}
Interpret Condition as Variable Expression?:選中這一項時表示:判斷變量值是否等於字符串true(不區分大小寫)
Evaluate for all children:如果選中這一項,在每個子結點執行前都會計算表達式
需求:如果商品信息接口返回參數skuId的參數值為1,則執行登錄接口,否則不執行
一:添加商品信息接口,寫入正確的接口地址和參數,添加后置處理器-JSON提取器,獲取skuId的值,變量名稱為mySkuId
三:打開函數助手,選擇__jexl3函數,引用JSON提取器的變量名mySkuId
四:添加邏輯控制器-如果(if)控制器,寫入${__jexl3(${mySkuId}=="1",)}
或者不勾選Interpret Condition as Variable Expression?選項,設置條件為mySkuId等於1,進行執行
五:在如果(if)控制器下添加登錄http請求,寫入正確的接口地址和參數
六:添加監聽器-察看結果樹,點擊運行,查看執行結果