【问题标题】:JMeter's ResourceLastAccessedTime GET request failedJMeter 的 ResourceLastAccessedTime GET 请求失败
【发布时间】:2015-07-16 13:26:33
【问题描述】:

我正在尝试使用JMeter 来测试我们的Web 应用程序。我们最初使用LoadComplete 来测试我们的Web 应用程序,但由于LoadComplete 无法在非GUI 模式下运行,我们无法使用测试服务器中的ma​​x stat's(拉紧我们的 8 个 CPU 和 8GB 的​​ RAM)。这就是为什么我转向JMeter (https://blazemeter.com/blog/5-ways-launch-jmeter-test-without-using-jmeter-gui)。

测试包括登录、选择特定应用、通过该应用执行简单任务然后结束录制。失败的 HTTP 请求在 查看结果树 上的 响应数据 上打印 Failed Access

我使用 HTTP(S) Test Script Recorder 来记录每个 HTTP 请求。我的 JMeter 项目在几个不同的 HTTP 请求上失败,其中包括 oauthtoken 获取请求,其中包括 jessionid="item"GET resourceLastAccessedTime 请求,还有几个 GET resourceLastAccessedTime 请求。我尝试按照 blazementer 的指导来了解如何使用JMeter 进行登录身份验证,因为这些请求似乎与登录后每个用户的身份验证有关,以及我遇到的问题 查看结果树上每个请求的响应数据显示为拒绝访问。 (https://docs.blazemeter.com/customer/portal/articles/1743663-how-to-use-jmeter-for-login-authentication-)。

其中一个步骤是在您登录到这些请求后从 Post 请求中“复制并粘贴”参数。我可以将这些参数添加到这些请求的正下方,其中显示 Send Parameters with the request,但我们的 POST 请求只有两个参数(登录名和密码)。 还有其他地方可以查找这些参数吗?

我尝试了很多不同尝试的组合,但我仍然不成功(意思是:我将正则表达式提取器移动到几个不同的 HTTP 请求,我移动了哪些 HTTP 请求来放置这些参数,我有尚未成功)。

您知道对此有帮助的网址吗?

【问题讨论】:

  • 总结一下我的问题。使用 JMeter 时,GET 请求 RecourceLoastAccessTime 得到“拒绝访问”,但不使用 JMeter 只需手动登录即可正常工作”

标签: login authorization jmeter


【解决方案1】:

不要相信测试脚本记录器!它在记录您的请求时不遵循任何逻辑。它只记录通过代理处理的请求。如果您使用无法定义为常量的参数,最好的方法是手动重写脚本。 请耐心等待并花几个小时(仅一次!)来学习如何使用 Jmeter GUI 手动构建任何测试场景(甚至是复杂的)。它将为您节省大量调试时间。 看起来(只是猜测)您的测试场景不包含 Cookie Manager 项目。根据您上面写的内容,似乎在登录到 serer 之后(通过发送带有登录名和密码的 POST),它通过 Set-Cookie HTTP 标头设置了一些 cookie。这些 cookie 应该包含在每个下一个请求中,以证明您之前成功登录(简单 Web 应用程序的最常见逻辑)。因此,如果您获得拒绝访问,则意味着您没有在测试请求中包含适当的 cookie。为此使用 Cookie 管理器。 如果您需要任何帮助,请随时联系我。 Jmeter 帮助手册是您需要了解的关于每个元素如何工作的全部内容。 P.S.:Jmeter 还可以在 GUI 和 CLI 模式下从多个从服务器生成分布式负载。因此,如果您需要对服务器施加压力,Jmeter 是最好的选择。 欢迎加入 Jmeter 用户大家庭!祝你好运。

【讨论】:

  • 作为一个测试,我用 Cookie Manager & Cache Manager 创建了另一个 JMeter 项目,同时使用“HTTP(S) Test Script Recorder”来记录 HTTP 请求,但我得到了同样的错误。我可以手动创建相同的项目,但我看不出我会创建什么不同。如果我手动创建 HTTP 请求,它们需要什么样的区别?他们将获得相同的 URL,我假设“HTTP 标头管理器”上的标头相同。
  • 当您使用脚本记录器记录测试时,所需的 cookie 可以定义为常量(硬编码)值,而不是服务器分配的值。另一个问题 - cookie 级别。 Header Manager 可以作为子项分配,这意味着它只对父项有影响。其他一些项目也一样。我通常通过以下方式创建测试:我在浏览器中手动执行步骤并使用本地代理记录它们,然后分析流量并使用 Jmeter 重现它。比直接记录要长一点,但是省了很多排查的时间。
  • 我可以通过 Firefox 做到这一点,我可以使用 firebug 来记录每个请求。我将创建 HTTP 标头管理器以匹配每个 HTTP 请求的每个请求的每个参数。几个问题:当我为授权和/或 Cookie 设置参数时。我为名称添加了授权,然后将“数字”(字母和数字)直接与其关联。每个请求的授权“数字”和 Cookie“数字”是否会发生变化?如果这是真的,我怎样才能使这个请求起作用?我应该使用“正则表达式提取器”吗?
  • 授权管理器应该只在你的webapp显示授权对话框的情况下使用。对于常规授权,只需在您的请求中发送适当的参数。受 HTTP 管理器影响的请求集取决于测试计划中的项目级别。如果它被定义为 HTTP Sampler 的子节点,那么每个请求都会更改 cookie。如果在同一级别,那么您的 web 应用程序为第一个请求设置的 cookie 对于所有类似请求都是通用的。
  • 我试图研究在我的请求中发送适当的参数。我找出适当参数的方法是在使用 firebug 时登录,然后我查看 POST 请求。但我看到的唯一参数是用户名和密码。我观看此视频以获取有关挑选参数和使用它们的指导。 youtube.com/watch?v=hGkrSFKcj10 因为我成功测试了 loadcomplete 并且我正在使用“授权”和“令牌”。我在登录后立即看到一个新的“令牌”请求。得到这个令牌,
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-05
  • 2013-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多