使用带有 keycloak 身份验证的 JMeter 测试 Web 应用程序

Testing a web application using JMeter with keycloak authentication

我正在尝试使用受 keycloak IDP 保护的 JMeter 测试我的 Web 应用程序。但是当我尝试使用凭据登录时,登录失败说“请从客户端登录”并且服务器上的 keycloak 日志说:

2021-04-16 11:10:05,316 WARN [org.keycloak.events] (default task-400) type=LOGIN_ERROR, realmId=my-realm, clientId=null, userId=null, ipAddress=10.x.x.x, error=invalid_code

附上我使用 Blazemeter chrome 插件记录的请求的屏幕截图,正在发送一些参数,知道我们如何配置它吗?

登录URL:

https://Server_Address/auth/realms/my-realm/login-actions/authenticate?session_code=iXAkZuEnl25URJPfaSd8kaTdnwCqz5CY-pZoZUb33ns&execution=0e502d98-b482-4abc-a7a5-c31d06b1f9c2&client_id=my_client&tab_id=Fa8Ggyqw3tk

遗憾的是,如果没有预先 correlation 动态参数,您将无法仅录制并成功重播您的场景。

这些 executiontab_idsession_code 是你在被重定向到验证用户身份的 Keycloak 实例时生成的东西,所以你需要 从之前的响应中提取这些值,并用动态参数替换记录的硬编码废话

提取值的最简单方法是使用 Boundary Extractor

此外,这些参数应该放在 query string 中,而不是放在请求正文中

演示: