Gatling 条件判断
生活随笔
收集整理的這篇文章主要介紹了
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 条件判断的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python | 线程池面试题
- 下一篇: 鼠标移到图片变化的三种写法(可移植性强、