【问题标题】:Http POST request sending dynamic value for username and password. JMETERHttp POST 请求发送用户名和密码的动态值。捷米特
【发布时间】:2017-04-29 18:48:19
【问题描述】:

我正在尝试为我的项目创建一个Jmeter 脚本,其中包括简单的登录和注销流程。我使用 Chrome 扩展程序“Blazemeter”记录了脚本,该脚本位于登录 http 采样器下,使用 post 方法在正文中发送以下数据。

{"username":"U2FsdGVkX1/NOa/KQxSdikbkXsT8M5bF4K2oSVx/zTBAvyymJ93co+10eUT0cZuJ","password":"U2FsdGVkX183cvN9kZZiv5HRtrV/Z0ZwB89YenArxtA="}

当我在Jmeter 中重播脚本时,它会抛出这个错误:

{"not_auth":"Invalid credentials. Please try again"}

我尝试提供实际凭据,但对我不起作用。 谁能帮我解决这个问题?这个动态值是在浏览器端生成的,我在之前的响应中找不到任何动态值。

【问题讨论】:

  • 您的应用程序支持哪种类型的身份验证?
  • 我希望你添加了 Cookie 管理器。请检查您的请求中是否添加了 application/json 标头。
  • Cookie 管理器未添加,是的,内容类型为 application/json,并添加到请求头中。
  • 添加 Cookie 管理器并运行测试。我可以知道身份验证类型吗?
  • 我们有用于身份验证的 UAA @NaveenKumarNamachivayam

标签: http dynamic jmeter http-post


【解决方案1】:

再次记录您的登录流程并检查用户名和密码值。

  1. 如果它们与第一次记录相同 - 问题存在于其他地方,您需要弄清楚 JMeter 测试发送的请求与真实浏览器发送的请求之间的区别。我建议使用像Wireshark 这样的嗅探器工具比较两者,以便能够检测和解决差异。

  2. 如果它们每次都不同,您需要找出用于加密用户名和密码的算法,很可能它是由 JavaScript 直接在浏览器中完成的,因此您应该能够弄清楚并重新- 在JSR223 PreProcessor 中使用或重新实现。例如,您的用户名和密码看起来完全像 Base64 编码的字符串,所以我尝试使用 Groovy built-in decoding methods 对其进行解码,但不幸的是它还被其他东西加密了

    查看Groovy Is the New Black 文章,了解有关在 JMeter 脚本中使用 Groovy 的更多信息。

【讨论】:

  • 与开发人员就相同问题进行交流。能否请您提及任何其他可以使用的解密方法。
猜你喜欢
  • 2016-11-23
  • 2011-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多