我试图创建一个Gatling场景,需要在测试期间将协议切换到另一个主机。用户的旅程是
https://example.com/page1
https://example.com/page2
https://accounts.example.com/signin
https://example.com/page3
因此,作为单个场景的一部分,我需要以太切换场景设置中定义的协议
,或切换协议上定义的base Url
,但我不知道如何做到这一点。
一个基本的场景可能是这样的
package protocolexample
import io.gatling.core.Predef._
import io.gatling.http.Predef._
class Example extends Simulation {
val exampleHttp = http.baseURL("https://example.com/")
val exampleAccountsHttp = http.baseURL("https://accounts.example.com/")
val scn = scenario("Signin")
.exec(
http("Page 1").get("/page1")
)
.exec(
http("Page 2").get("/page2")
)
.exec(
// This needs to be done against accounts.example.com
http("Signin").get("/signin")
)
.exec(
// Back to example.com
http("Page 3").get("/page3")
)
setUp(
scn.inject(
atOnceUsers(3)
).protocols(exampleHttp)
)
}
我只需要弄清楚第三步如何切换主机或协议。我知道我可以创建多个场景,但这需要跨多个主机的单个用户流。
我试过直接使用另一个协议
exec(
// This needs to be done against accounts.example.com
exampleAccountsHttp("Signin").get("/signin")
)
结果
protocolexample/example.scala:19: type mismatch;
found : String("Signin")
required: io.gatling.core.session.Session
exampleAccountsHttp("Signin").get("/signin")
并更改请求的基本URL
exec(
// This needs to be done against accounts.example.com
http("Signin").baseUrl("https://accounts.example.com/").get("/signin")
)
结果
protocolexample/example.scala:19: value baseUrl is not a member of io.gatling.http.request.builder.Http
您可以使用绝对URI(包含协议)作为Http.get
、Http.post
等的参数。
class Example extends Simulation {
val exampleHttp = http.baseURL("https://example.com/")
val scn = scenario("Signin")
.exec(http("Page 1").get("/page1"))
.exec(http("Page 2").get("/page2"))
.exec(http("Signin").get("https://accounts.example.com/signin"))
.exec(http("Page 3").get("/page3"))
setUp(scn.inject(atOnceUsers(3))
.protocols(exampleHttp))
}
见:https://gatling.io/docs/current/cheat-sheet/#http-协议URL baseUrl
baseURL:设置应用配置的场景的所有相对URL的基本URL。
我想在运行Gatling场景期间更改令牌,因为我想与不同的用户进行测试,这是我的HTTP协议: 如何在
我一直在使用JMeter和Gatling在JSF2 PrimeFaces4 web应用程序上记录一个场景,以便对其进行负载测试。这两个工具都可以很好地进行录制,但是由于在commandButton上打开弹出对话框的单击操作不会触发关联事件,所以该场景的重播失败了。所述commandButton由场景中的前一个操作(同一表行中的下拉选择)启用。 只有在性能测试工具上运行场景时才会出现此问题,而不是在
我必须使用Gatling/Scala编写一些测试。在我的具体情况下,我必须使用用户名和密码登录网站(此外还有密钥斗篷安全性)。有一个带有很多用户/密码行的CSV文件,我的目标是使用此CSV文件中的每个用户/密码登录。 问题是我不知道怎么做。我可以用用户名/密码和密钥斗篷的安全令牌登录,只需一个用户。到目前为止还可以,但还不够。以下是我到目前为止所做的。 第一类: 馈线类: 登录名: 如您所见,我在
我有测试单个endpoint的简单场景。我对DSL有问题。不知道如何使用feeder启动场景。我必须先进行无用的调用才能编译它。 我怎样才能摆脱
我有一个场景,有4个不同的API调用,它们总是保持不变。我试图创建一个并行的压力测试,我希望相同的场景首先运行,比如10%,然后是20%,30%······max用户的等等。 但我也需要设置是动态的,取决于脚本中的可配置变量这是造成问题的原因,我希望能够很容易地配置它运行例如10%,50%和100%。 这就是我到目前为止所做的(缩短了,并且onceuser和nothingFor从迭代于bla(I)
当我运行该程序时,它加载第一个和第二个fxml,但继续显示第一个fxml(当它应该显示第二个时)。我可以使用相同代码的输入(即按钮)从第一个屏幕到第二个屏幕。 我尝试使用不同的加载器,每次设置场景时都使用。show()方法,但这些(或它们的许多变体)都不起作用。 我在调用方法时进行打印--这就是我确定它们被加载的方式(printline): null 相反,输出(在调试中,如果stage.show