日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Gatling 条件判断

發布時間:2023/12/13 综合教程 25 生活家
生活随笔 收集整理的這篇文章主要介紹了 Gatling 条件判断 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在使用Gatling的過程中,當前置接口異常,無法獲取到數據作為其他接口的請求參數室,接口是不能請求的。或者通過feeder獲取的數據要區分不同的情況請求不同的接口。此時,使用gatling的判斷語句來處理相應的請求, 組成完整的請求鏈。之前提到過,feeder和check中的saveAs都會將參數設置到session中,這里將使用session中保存的參數值作為判斷依據

函數 解釋
doif 在判斷成立的情況下執行特定的操作鏈
doIfEquals 判斷兩個值相等
doIfOrElse和doIfEqualsOrElse 判斷成立執行第一個操作鏈,判斷不成了是執行第二個操作鏈
doSwitch、doSwitchOrElse 條件判斷
randomSwitch和randomSwitchOrElse 設置的概率值必須小于100%,命中概率不相等
uniformRandomSwitch 隨機執行,命中概率相等
roundRobinSwitch 循環執行

腳本案例:

eg:doif

  val demo_test = scenario("test")
      .exec(_.set("status",0))
      .exec(_.set("OpenID","start-open-end"))
      .doIf( session=>session("status").as[Int]==0 ){
 
        //判斷status成功
        exec()
      }
      .doIf(session=>session("OpenID").as[String].equals("start-open-end")){
 
       //判斷OpenID成功
        exec()
      }
      .doIf(session=>session("OpenID").as[String].startsWith("start")){
 
        //判斷OpenID 是以start開頭
        exec()
      }
      .doIf(session=>session("OpenID").as[String].contains("open")){
 
        //判斷OpenID 包含 open
        exec()
      }

  eg:doIfEquals

 val demo_test = scenario("test")
      .exec(_.set("status",0))
      .exec(_.set("OpenID","start-open-end"))
      .doIfEquals( "${status}", 0 ){
 
        //判斷status等于0
        exec()
      }
      .doIfEquals("${OpenID}","start-open-end"){
 
        //判斷OpenID等于start-open-end
        exec()
      }

  eg:doIfOrElse和doIfEqualsOrEls

val demo_test = scenario("test")
      .exec(_.set("status",0))
      .exec(_.set("OpenID","start-open-end"))
      .doIfOrElse(session=>session("OpenID").as[String].endsWith("start")){
//      判斷成立時執行
        exec()
      }{
//      判斷不成立是執行
        exec()
      }
      .doIfEqualsOrElse( "${status}", 1 ){
 
        exec()
      }{
        exec()
      }

  eg:doSwitch、doSwitchOrElse

  val array_feeder = Array(
    Map("status" -> 1),
    Map("status" -> 2),
    Map("status" -> 3),
    Map("status" -> 4)
  ).random
 
 
  val demo_test = scenario("test")
      .feed(array_feeder)
      .doSwitch("${status}")(
        1 -> exec(),
        2 -> exec()
      )
      .doSwitchOrElse("${status}")(
        3 -> exec(),
        4 -> exec()
      )(
        exec()
      )

  eg:randomSwitch和randomSwitchOrElse

 val demo_test = scenario("test")
      .randomSwitch(
        50d -> exec(session=>{
          println("50% 概率 執行")
          session
        }),
        30d -> exec(session=>{
          println("30% 概率 執行")
          session
        })
      ).randomSwitchOrElse(
        1d -> exec(session=>{
          println("1% 概率 執行此處")
          session
        })
      )(
          exec(session=>{
            println("99% 概率 執行此處")
            session
          })
      )

  eg:uniformRandomSwitch

val demo_test = scenario("test")
    .uniformRandomSwitch(
          exec(),
          exec(),
          exec()
      )

  eg:roundRobinSwitch

val demo_test = scenario("test")
    .roundRobinSwitch(
          exec(),
          exec(),
          exec()
      )

  

總結

以上是生活随笔為你收集整理的Gatling 条件判断的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。