使用Jmeter授权问题进行休息服务测试 - 需要在浏览器中登录应用程序以运行来自任何客户端的Rest调用

时间:2016-08-26 09:33:07

标签: rest testing jmeter

我想通过Jmeter测试休息服务,我已经使用邮递员测试了Rest调用,并且工作正常。事情是从邮差等任何客户端运行休息服务,我需要先在浏览器中登录我的应用程序,登录后休息调用将在RESTClient(Firefox)中运行。但是在Jmeter的情况下如何运行呢。我已经添加了授权。 (用户名和密码)使用HTTP授权管理器仍然面临。即使我在下面添加了bean shell脚本:

import org.apache.commons.codec.binary.Base64;

byte[] encodedUsernamePassword = Base64.
           encodeBase64("harshal.shewale1@viewics.com:Harshal@1".getBytes());
vars.put("base64HeaderValue",new String(encodedUsernamePassword));

还没有休息。将错误视为错误凭据。

有人请指导我。

2 个答案:

答案 0 :(得分:0)

你让事情变得过于复杂。 JMeter附带HTTP授权管理器,它根据您提供的用户名/密码组合自动添加相关的“授权”标题

HTTP Authorization Manager

有关详细信息,请参阅How to Use HTTP Basic Authentication in JMeter指南。

您的Beanshell代码没有问题。

答案 1 :(得分:-1)

在这种情况下,您可能遇到了Cookie问题。因此,将cookie管理器添加到测试计划中。比较您从Firefox进行的其余通话以及您正在进行的休息通话是否相似。检查cookie和标题,并尝试模拟相同的休息时间。

您可以使用以下方法:

  1. 创建一个线程组。
  2. 仅添加一次控制器。在此控制器下添加登录请求。
  3. 仅在控制器一次后添加休息服务电话。
  4. 通过这种方式,如果有任何cookie,其余的调用期望将被传递,并且您的脚本应该可以工作。