package com.threesixtytraining.lms
import scala.concurrent.duration._
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import io.gatling.jdbc.Predef._
class LoginTest extends Simulation {
val rampRateInj = atOnceUsers(50)
val rampRateInj2 = atOnceUsers(100)
val rampRateInj4 = atOnceUsers(150)
object HomePage {
val random = new scala.util.Random
val feeder = csv(“LearnerLogins.csv”).random
val uri1 = “https://qa-lms.com”
val uri2 = “qa-lms.com”
val headers_accept = Map(“Accept” → “text/css,/;q=0.1”)
val home = exec(
http(“initial_open_request”).get("/lms/login.do")
).pause(401 milliseconds)
.exec(
http(“Initial_open”).get(“http://” + uri2 + “/lms/login.do”).headers(headers_accept)
.check(css("#j_username").find(0).exists)
).pause(4)
.feed(feeder).pause(3)
}
object LoginPage {
val uri2 = "qa-lms.com
val login =
exec(http(“Login_request”).post("/lms/j_spring_security_check")
.formParam(“spring-security-redirect”, “/interceptor.do”)
.formParam(“j_username”, “${username}”)
.formParam(“j_password”, “*********”)
).pause(2)
}
object MainPage {
val uri1 = “https://qa-lms.com”
val verifyMainPage =
exec(http(“HomePage_request_view”).get("/lms/lrn_widgetDashboard.do")
.check(css("#introText").find(0).exists)
).pause(2)
}
object MyCourses {
val uri1 = “https://qa-lms.com”
val verifyMyCoursePage =
exec (http(“MyCourses_request_View”).get("/lms/lrn_myCourses.do")
.check(css("#page-heading").find(0).exists)
).pause(6)
}
object MyProfile {
val uri1 = “https://qa-lms.com”
val verifyMyProfilePage =
exec (http(“MyProfile_request_View”).get("/qa-lms.com")
.check(css("#page-heading").find(0).exists)
).pause(4)
}
object LogOut {
val uri2 = “qa-lms.com”
val headers_accept = Map(“Accept” → “text/css,/;q=0.1”)
val Logout = exec(
http(“Logout_request”).get("/lms/login.do")
).pause(910 milliseconds)
.exec(
http(“Log_out”).get(“http://” + uri2 + “/lms/login.do”).headers(headers_accept)
.check(css("#j_username").find(0).exists)
).pause(4)
}
val httpProtocol = http
.baseURL(“https://qa-lms.com”)
.inferHtmlResources(BlackList( “”"..js""", “”"..css""", “”"..gif""", “”"..jpeg""", “”"..jpg""", “”"..ico""", “”"..woff""", “”"..(t|o)tf""", “”"..png"""), WhiteList())
.acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,/*;q=0.8")
.disableAutoReferer
.acceptEncodingHeader(“gzip, deflate”)
.acceptLanguageHeader(“en-US,en;q=0.5”)
.connection(“keep-alive”)
.contentTypeHeader(“application/x-www-form-urlencoded”)
.userAgentHeader(“Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:33.0) Gecko/20100101 Firefox/33.0”)
// val loginUsers = scenario(“LearnerLogin”).exec(HomePage.home, LoginPage.login,MainPage.verifyMainPage
// ,MyCourses.verifyMyCoursePage,MyProfile.verifyMyProfilePage,LogOut.Logout)
val loginUsers50 = scenario(“loginUsers50”).exec(HomePage.home, LoginPage.login,MainPage.verifyMainPage)
val loginUsers100 = scenario(“loginUsers100”).exec(HomePage.home, LoginPage.login,MainPage.verifyMainPage)
val loginUsers150 = scenario(“loginUsers150”).exec(HomePage.home, LoginPage.login,MainPage.verifyMainPage)
val UsersAccessCourse100 = scenario(“UsersAccessCourse100”).exec(HomePage.home, LoginPage.login,MainPage.verifyMainPage,
MyCourses.verifyMyCoursePage)
val UsersAccessCourse200 = scenario(“UsersAccessCourse200”).exec(HomePage.home, LoginPage.login,MainPage.verifyMainPage,
MyCourses.verifyMyCoursePage)
val UsersAccessProfile100 = scenario(“UsersAccessProfile100”).exec(HomePage.home, LoginPage.login,MainPage.verifyMainPage
,MyProfile.verifyMyProfilePage)
val UsersAccessProfile200 = scenario(“UsersAccessProfile200”).exec(HomePage.home, LoginPage.login,MainPage.verifyMainPage
,MyProfile.verifyMyProfilePage)
setUp(
loginUsers50.inject(rampRateInj),
loginUsers100.inject(rampRateInj2),
loginUsers150.inject(rampRateInj4)
).protocols(httpProtocol)
}