如何使用 Gatling 对 Postgres 数据库进行性能测试?

How can I performance test a Postgres Database with Gatling?

我正在使用 Gatling 对应用程序进行性能测试,但该应用程序有一个依赖 jdbc 进行连接的 Postgres 数据库。是否可以运行一个场景来测试数据库性能,如果可以,如何?

我找到了 jdbcFeeder,但我不知道如何执行我设置的场景,因为 exec 不接受我提供的 url ... jdbc:postgresql://host:port/database?user=<user>&password=<password>。它returns一个java.lang.IllegalArgumentException: could not be parsed into a proper Uri, missing host.

示例:

val sqlQueryFeeder: RecordSeqFeederBuilder[Any] =
jdbcFeeder(connectionUrl, user, password, s"SELECT * FROM $schema.$table")

val scn: ScenarioBuilder = scenario("Test 1")
.feed(sqlQueryFeeder)
.exec(http.baseUrl(jdbc:postgresql://host:port/database?user=<user>&password=<password>))
)

setUp(scn.inject(atOnceUsers(100)))

不是开箱即用的。

jdbcFeeder 是关于使用从数据库读取的数据进行性能测试(即,它是关于 "feeding" 数据测试,而不是测试数据库)。

gatling-jdbc 项目似乎是为了做你想做的,但当我尝试它时它没有工作 (Gatling 3.0-RC4)。我是 Gatling 和 Scala 的新手,问题可能出在我身上,或者甚至可能出在 Gatling 发布候选者身上 - 如果您尝试一下,您可能会有更好的运气。

还有gatling-sql,但我自己没试过,一年多没动过。