フィーダからのデータがセッションに追加されないように見える問題があります。ユーザーが役割を持つシステム(つまりユーザーまたは管理者)をテストしており、役割に応じてさまざまなテストを実行する必要があります。高度なチュートリアルの後、私は自分のチェーンを別々のオブジェクト(各オブジェクトはそれぞれ独自のファイル)に分割しました。オブジェクトの1つには、ユーザーロールに関係なく同じログインプロシージャが含まれています。私はこれをもう一度使うのではなく、異なるフィーダーを使っています。フィーダからのデータがシナリオで利用できません
csvフィーダーを使用してユーザー名とパスワードを読み込みますが、シミュレーション実行時にFailed to build request Submit user/password: No attribute named 'password' is defined
が表示されるため、セッションにデータを追加できないようです。ここで
は、複数のファイルに分割された私のコードです:今、CSVファイルがあるために
Simulation.scala
import io.gatling.core.Predef._
import io.gatling.http.Predef._
class Simulation extends Simulation {
val httpProtocol = http
.baseURL("baseURI")
val admins = scenario("Admins")
.feed(csv("admins.csv"))
.exec(Login.login)
.exec(TaskA.taskA)
val users = scenario("Users")
.feed(csv("users.csv"))
.exec(
Login.login,
TaskB.taskB,
TaskC.taskC
)
setUp(
admins.inject(atOnceUsers(1))/*,
users.inject(atOnceUsers(1))*/
).protocols(httpProtocol)
}
Login.scala
object Login {
val login = group("Login") {
exec(http("Get form")
.get("/login/login.php")
.check(form("""form[name="relay"]""").saveAs("passwordForm")))
.pause(10 seconds)
.exec(http("Submit user/password")
.post("/login/authenticate.php")
.form("${passwordForm}")
.formParam("pass", "${password}") //TODO: get from feeder
.formParam("user", "${username}") //TODO: get from feeder
)
}
}
同じ:
username,password
user,user
.feed(csv("admins.csv"))
をLogin.scalaに移動すると不思議に思えますが、ユーザー用に再利用することはできません。