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 条件判断的更多相关文章
- C# if中连续几个条件判断
C# if中连续几个条件判断 1.if (条件表达式1 && 条件表达式2) 当条件表达式1为true时 using System; using System.Collections. ...
- js条件判断时隐式类型转换
Javascript 中,数字 0 为假,非0 均为真 在条件判断运算 == 中的转换规则是这样的: 如果比较的两者中有布尔值(Boolean),会把 Boolean 先转换为对应的 Number,即 ...
- 5-3 bash脚本编程之二 条件判断
1. 条件测试的表达式 1. [ expression ] :注意这个中括号的前后都有一个空格 2. [[ expression ]] 3. test expression 2.条件判断的类型 1. ...
- 第10章 Shell编程(3)_字符处理命令和条件判断
3. 字符处理命令 3.1 排序命令:sort (1)sort命令:#sort [选项] 文件名 选项 作用 -f 忽略大小写 -n 以数值型进行排序,默认使用字符串型排序 -r 反向排序 -t 指定 ...
- Nginx if 条件判断
Nginx if 条件判断: 1.公司网站上线有这样的需求: 由于公司网站域名从http到https的转移,在测试阶段需要公司内部进行测试,公司内部局域网访问时强制访问加密的https服务,外部用户访 ...
- shell条件判断与流程控制
一 条件判断式语句 1.按文件类型进行判断 测试类型 作用 -b 文件 判断文件是否存在,并且是否为块设备文件(是块设备文件为真) -c 文件 判断文件是否存在,并且是否为字符设备文件(是字符设备设备 ...
- 为什么说在使用多条件判断时switch case语句比if语句效率高?
在学习JavaScript中的if控制语句和switch控制语句的时候,提到了使用多条件判断时switch case语句比if语句效率高,但是身为小白的我并没有在代码中看出有什么不同.去度娘找了半个小 ...
- wordpress 函数、条件判断以及文件的总结
WordPress基本模板文件 一套完整的WordPress模板应至少具有如下文件: style.css : CSS(样式表)文件 index.php : 主页模板 archive.php : Arc ...
- 【重点】Shell入门教程:流程控制(2)条件判断的写法
第三节:条件判断的写法 if条件判断中,if的语法结构中的“条件判断”可以有多种形式.测试结果是真是假,就看其传回的值是否为0. 条件测试的写法,有以下10种: 1.执行某个命令的结果 这里的命令,可 ...
随机推荐
- 洛谷 P3870 [TJOI2009]开关 题解
原题链接 前置知识: 线段树的单点.区间的修改与查询. 一看,我们需要维护两个操作: 区间取反: 区间求和. (因为区间 \(1\) 的个数,就是区间的和) 典型的 线段树 . 如果你只会线段树的 区 ...
- 【科创人独家】PingCAP黄东旭:想告诉图灵这个世界现在的样子
创业是投己所好 科创人:作为技术圈内著名艺术青年,哪个瞬间会让您更开心,完成一段优美的代码或者乐谱?还是得到来自外界的欢呼与掌声? 黄东旭:在创业之前的很长一段时间里,完成一段代码.写完一首好曲子那一 ...
- 更新statsmodels出现的一系列问题
在statsmodels的开发12版本文档上正好看到使用三因子模型进行rolling regression,但是代码来自最新版本,而我的是老版本,运行下列代码会出现这个问题: No module na ...
- office2010安装与破解,笔者亲测可用!!!!!!
我们首先需要准备office2010安装包与破相应的破解软件.软件包的获取方式:扫码关注[猿成长],,回复 office2010安装,即可获取,下载解压后文件目录结构如下图所示: 打开安装程序文件夹, ...
- NEKO's Maze Game - Codeforces 题解
题目 NEKO#ΦωΦ has just got a new maze game on her PC! The game's main puzzle is a maze, in the forms o ...
- 并查集例题02.带权并查集(poj1182)
Description 动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形.A吃B, B吃C,C吃A.现有N个动物,以1-N编号.每个动物都是A,B,C中的一种,但是我们并不知道它到底 ...
- iOS 编程之UIWindow切换
由于最近项目需要制作一个可定制的底部弹窗效果,因此研究了一下UIActionSheet,打算重写一个自定义的弹窗,在写demo的时候出于偷懒的原因,直接在新建项目的 - (void)viewDidLo ...
- python:匿名函数lambda
看个例子: a=list(map(lambda x:x*x,(1,2,3))) print(a) 输出:[1, 4, 9] lambda实际上就是匿名函数,相当于: def f(x): return ...
- 【PHP】数组
一.生活中的数组: a) 教室的座位:第一天来教室的时候,每个座位上都有自己的一个名字,我们可以通过这个名字快速定位到自己的座位在什么位置! b) 电影院的座位:我们买了电影票之后,能够通 ...
- 将wxpy的登录二维码放到网页上登录
from flask import Flask, Response from flask.views import MethodView from threading import Thread fr ...