0
我已經使用gatling記錄了一個scala腳本,它在scala文件中記錄了「opentoken」。這scala文件工作正常incase一個用戶,因爲如果增加沒有用戶它不記錄,因爲SSo令牌,所以有什麼辦法可以爲scala文件生成sso令牌登錄。
那麼如何動態生成下面的scala文件的opentoke?使用scala腳本進行SSO登錄
import scala.concurrent.duration._
import io.gatling.core.Predef._
import io.gatling.http.Predef._
import io.gatling.jdbc.Predef._
class RecLoginLogoutP extends Simulation {
val httpProtocol = http
.baseURL("https://mywebsite.com")
.inferHtmlResources(BlackList(""".*\.css.*|.*\.js.*|.*\.png.*|.*\.gif.*|.*\.jpeg.*|.*\.ico.*"""), WhiteList())
.acceptHeader("""text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8""")
.acceptEncodingHeader("""gzip, deflate""")
.acceptLanguageHeader("""en-US,en;q=0.5""")
.connection("""keep-alive""")
.contentTypeHeader("""application/ocsp-request""")
.userAgentHeader("""Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0""")
val uri1 = """http://somewebsite.com/gsalphasha2g2"""
val uri2 = """https://mywebsite.com:443"""
val uri3 = """sso-mywebsite.com"""
val uri4 = """www.mywebsite.com"""
val uri5 = """cloudsso-test.mywebsite.com"""
val scn = scenario("RecLoginLogoutP")
.exec(http("request_0")
.get("""/"""))
.pause(1)
.exec(http("request_1")
.post(uri1 + """""")
.body(RawFileBody("RecLoginLogoutP_request_0001.txt"))
.resources(http("request_2")
.post(uri1 + """""")
.body(RawFileBody("RecLoginLogoutP_request_0002.txt"))))
.pause(1)
.exec(http("request_3")
.get("""/sp/startSSO.ping?PartnerIdpId=cloudsso-test.mywebsite.com&TargetResource=https://mywebsite.com/"""))
.pause(24)
.exec(http("request_4")
.post("https://" + uri3 + """:443/autho/login/loginaction.html""")
.formParam("""userid""", """userName""")
.formParam("""password""", """password""")
.formParam("""target""", """""")
.formParam("""smauthreason""", """""")
.formParam("""smquerydata""", """""")
.formParam("""smagentname""", """""")
.formParam("""postpreservationdata""", """""")
.formParam("""SMENC""", """""")
.formParam("""SMLOCALE""", """"""))
.pause(2)
.exec(http("request_5")
.get("https://" + uri5 + """:443/idp/Y61KXp/SSOServer.ping""")
.resources(http("request_6")
.post(uri2 + """/""")
**.formParam("""opentoken""", """YKHHMSLKKSJHHFHFHFH-9fdfdjkhhjkfkdshfjdshjnythkkdjfdfdfdfdffdfdfd**""")))**
.pause(105)
// logout
.exec(http("request_7")
.get("""/c/portal/logout""")
.resources(http("request_8")
.get(uri2 + """/sp/startSSO.ping?PartnerIdpId=cloudsso-test.mywebsite.com&TargetResource=https://mywebsite.com/""")))
.pause(12)
.exec(http("request_9")
.get("https://" + uri4 + """:443/autho/sclnup.html"""))
setUp(scn.inject(atOnceUsers(1))).protocols(httpProtocol)
}