我正在尝试使用Jmeter通过HTTP采样器测试Rest服务。第一个采样器生成一个令牌,我使用此令牌在另一个HTTP采样器“GetUserandPolicies”(Rest WS请求)的头管理器中使用RegEx和ForEach控制器进行授权。我可以在视图结果树中看到RegEx工作正常,将实际令牌传递给下一个请求。但是Rest请求没有给出响应消息作为Forbidden和响应代码403,这意味着服务器能够识别请求但拒绝访问。这个HTTP采样器没有端口号,我怀疑它是罪魁祸首。但是,同样的测试是通过另一个没有任何端口值的工具(iTKO LISA)。采样器“TokenGeneration”和“GetUserandPolicies”都没有端口值。我需要一些帮助。我在HTTP采样器中使用POST方法
请找到取样器结果:
Thread Name: Thread Group 1-1
Sample Start: 2014-01-13 12:12:29 IST
Load time: 1390
Latency: 1390
Size in bytes: 382
Headers size in bytes: 354
Body size in bytes: 28
Sample Count: 1
Error Count: 1
Response code: 403
Response message: Forbidden
回复标题:
HTTP/1.1 403 Forbidden
Server: Apache-Coyote/1.1
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Authorization, X-Requested-With, Content-Type
Content-Type: text/plain;charset=UTF-8
Content-Length: 28
Date: Mon, 13 Jan 2014 06:42:30 GMT
HTTPSampleResult字段:
ContentType: text/plain;charset=UTF-8
DataEncoding: UTF-8
答案 0 :(得分:0)
调查Access-Control-Allow-Headers: Authorization, X-Requested-With, Content-Type
节我猜您错过了正确的Authorization
标头。
关于空端口一切都很好,在HTTP情况下默认为端口80,在HTTPS情况下默认为443
有两种方法可以处理Basic HTTP Authentication:
protocol://username:password@host:port/path
等网址中传递用户名和密码
即http://user:pass@your.server.com/somelocation 如果您的身份验证系统使用其他方法,即基于Cookie,NTLM或Kerberos,它仍然可能,但有点棘手。如果是这样的话 - 更新此帖子,包含您可以获得的所有详细信息(即请求详细信息),并且不要犹豫,留下评论请求更多输入