初步研究gatling脚本(4)

配置运行细节

通过调用继承类的setUp方法配置要启动的用户类
通过调用用户群的inject方法来设定注入的用户数量及注入方式
设定注入用户后调用protocols方法来指定用户群请求的Http Head

setUp(
	scn.inject(atOnceUsers(10))		// 调用用户类的inject方法
	.protocols(httpProtocol)
)

一个简单的完整示例

import io.gatling.core.Predef._
import io.gatling.http.Predef._

class test extends Simulation {

  val httpProtocol = http.baseUrl("http://localhost:4311")

  val scn = scenario("blog request").repeat(10){exec(http("get index").get("/"))}

  setUp(scn.inject(atOnceUsers(10)).protocols(httpProtocol))
  
}

setUp()传入的参数类型为PopulationBuilder
inject()protocols()方法返回值为PopulationBuilder类成员
inject()ScenarioBuilder的类方法
protocols()是属于PopulationBuilder的类方法
scnScenarioBuilder类成员,可以直接调用inject方法但不能直接调用protocols方法
因此必须先调用inject()再调用protocols() —— 链式调用所决定的

gatling官方文档提供了以下注入用户方式的API:

nothingFor(4):暂停4s
atOnceUsers(10):一次性注入10个用户
rampUsers(10) during(10):在10秒内将用户增加至10个(线性增加)
constantUsersPerSec(10) during(20):每秒注入10个用户 执行20秒 即共注入200个用户
constantUsersPerSec(10) during(20) randomized:每秒注入10个用户 在毫秒级别随机 如 1.234注入10个 2.981注入10个
rampUsersPerSec(10) to (20) during(20):在20秒内 用户从每秒注入10个逐渐均匀增加到每秒注入20个
rampUsersPerSec(10) to (20) during(20 ):在20秒内 用户从每秒注入10个以随机速度逐渐增加到每秒注入20个

注意:假如rampUsers(10) during(10) 增加用户的时间超过了定义用户群during的时间,则实际运行的时间则会比二者定义的都要长

val scn = scenario("blog request")
    .during(10){
      exec(http("get index").get("/"))
}

// 实际运行时间约为10+50s
setUp(scn.inject(rampUsers(10) during(50)).protocols(httpProtocol))

可以多次声明注入方式,注入顺序为编写顺序,不会同时执行互相干扰:

import io.gatling.core.Predef._
import io.gatling.http.Predef._

class test extends Simulation{
    val httpProtocol = http.baseUrl("http://localhost:4311")

    val scn = scenario("blog request")

        .during(20){
            exec(http("post login").post("/login")
				.body(StringBody("{\"name\":\"node\",\"password\":\"passWord\"}")).asJson   // josn发送要这样写 效果等同于上面两个
                
            )
        }

    setUp(scn.inject(
    	constantUsersPerSec(5)during(5),
    	atOnceUsers(100)
    	).protocols(httpProtocol))
}

上面代码用户注入结果如图:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值