简体   繁体   English

如何每次使用加特林登录随机用户?

[英]How to Login with Random users everytime with gatling?

my scenario is like, I have to create a script for which randomly takes 10 users for login and logout . 我的情况是,我必须创建一个脚本, 脚本随机需要​​10个用户进行登录和注销 The code I have written logins same user 10 times it does not take random number. 我写的代码登录同一用户10次,不需要随机数。 How to do this? 这个怎么做?

Below is my code outputs same user login 10 times instead of taking different users. 下面是我的代码输出同一用户登录10次而不是使用不同的用户。

// Login and Logout random users
import scala.concurrent.duration._
import java.util.concurrent.ThreadLocalRandom
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import io.gatling.jdbc.Predef._

class random extends Simulation {

 val testServerUrl = System.getProperty("Url", "https://url")
 val username = System.getProperty("username", "TestUser")
 val password = System.getProperty("password", "password")
 val userCount = Integer.getInteger("userCount", 10).toInt
 val startNum = Integer.getInteger("EndNumber", 1).toInt
 val endNum = Integer.getInteger("EndNumber", 100).toInt

 val httpProtocol = http
 .baseURL(testServerUrl)

 val scn = scenario("random")
 .exec(http("Login")
 .post("/security_check")
 .headers(headers_9)
 .formParam("j_username", username + ThreadLocalRandom.current.nextInt(startNum, endNum))
 .formParam("j_password", password)
 .resources(
 http("Fetch_IDs")
 .get("/desktop/s_nav.jsp")
 .check(regex("""current_account_id=(\d+)""").saveAs("accountID"))
 .check(regex("""current_workspace_id=(\d+)""").saveAs("workspaceID"))
 .headers(headers_5)
 ))

 .exec(http("Logout")
 .post("/logoutcontroller")
 .headers(headers_9)
 .formParam("action", "logout")
 .formParam("undefined", "")
 .formParam("current_account_id", "${accountID}")
 .formParam("current_workspace_id", "${workspaceID}"))

 setUp(scn.inject(atOnceUsers(userCount))).protocols(httpProtocol)
}
.formParam("j_username", session => username +  ThreadLocalRandom.current.nextInt(endNum))

The problem is that your random generator inside the scenario val is only called once when the scenario is generated. 问题在于,场景val中的随机生成器仅在生成场景时被调用一次。

What you want to do is use a feeder, that injects random values in each execution of your scenario. 您要做的是使用一个供稿器,该供稿器在方案的每次执行中都会注入随机值。

Gatling has a very nice documentation with examples for feeder which you can find here: http://gatling.io/docs/2.0.0-RC2/session/feeder.html 加特林(Gatling)有一个很好的文档,其中包含有关Feeder的示例,您可以在此处找到: http : //gatling.io/docs/2.0.0-RC2/session/feeder.html

and here (step 03): http://gatling.io/docs/2.0.0-RC2/advanced_tutorial.html 此处(第03步): http : //gatling.io/docs/2.0.0-RC2/advanced_tutorial.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM