1

我有脚本通过从 CSV 文件中获取数据并将 JSON 响应与 POSTMAN 中的 CSV 文件中的数据进行比较来进行 API 自动化。我有 12 个场景/迭代要验证,每个场景发送 20 多个从 CSV 文件中挑选的数据,并从 JSON 响应中比较 10 多个数据。一切正常。

现在在代码中实现了安全功能,所以我必须发送请求并使用 ID/PWD 自动化脚本。所以我使用了带有 ID 和 PWD 的 NTML 身份验证。

当我使用 runner 运行脚本时,最初的两次迭代给出了完美的响应并且脚本通过了,然后从第 3 次迭代开始,所有脚本都失败并且没有得到响应。作为回应,当我在邮递员控制台中检查时它显示数据不可用,它显示以下详细信息。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>401 - Unauthorized: Access is denied due to invalid credentials.</title>
<style type="text/css">
<!--
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
fieldset{padding:0 15px 10px 15px;} 
h1{font-size:2.4em;margin:0;color:#FFF;}
h2{font-size:1.7em;margin:0;color:#CC0000;} 
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;} 
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
background-color:#555555;}
#content{margin:0 0 0 2%;position:relative;}
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
-->
</style>
</head>
<body>
<div id="header"><h1>Server Error</h1></div>
<div id="content">
 <div class="content-container"><fieldset>
  <h2>401 - Unauthorized: Access is denied due to invalid credentials.</h2>
  <h3>You do not have permission to view this directory or page using the credentials that you supplied.</h3>
 </fieldset></div>
</div>
</body>
</html>

可能是什么原因以及解决此问题的任何解决方案。

短屏幕

使用带有 ID/PWD 的 NTLM 身份验证 [BETA] 授权选项

以下是通行证场景的详细信息

Request Headers:
content-type:"application/json"
cache-control:"no-cache"
user-agent:"PostmanRuntime/7.1.5"
accept:"*/*"
host:"xxxxxx"
accept-encoding:"gzip, deflate"
content-length:599
authorization:"NTLM TlRMTVNTUAADAAAAGAAYAFIAAAAYABgAagAAAAAAAABIAAAACgAKAEgAAAAAAAAAUgAAAAAAAACCAAAABYKIogUBKAoAAAAPUAAzAFcATABJAPxv7ESeMEwAAAAAAAAAAAAAAAAAAAAAAHZECYztsK+qnjG5K0DvDIPzQ09CFXWo0Q=="

Request Body:

Response Headers:
transfer-encoding:"chunked"
content-type:"application/json; charset=utf-8"
location:"xxxxxx/api/rate/zzz"
server:"Kestrel"
persistent-auth:"true"
date:"Wed, 06 Jun 2018 13:40:05 GMT"

Response Body:
rate:5
retailRateAttributes:
error:null

以下是失败场景的详细信息

   Request Headers:
content-type:"application/json"
cache-control:"no-cache"
authorization:"NTLM TlRMTVNTUAADAAAAGAAYAFIAAAAYABgAagAAAAAAAABIAAAACgAKAEgAAAAAAAAAUgAAAAAAAACCAAAABYKIogUBKAoAAAAPUAAzAFcATABJAPxv7ESeMEwAAAAAAAAAAAAAAAAAAAAAAHZECYztsK+qnjG5K0DvDIPzQ09CFXWo0Q=="
user-agent:"PostmanRuntime/7.1.5"
accept:"*/*"
host:""xxxxxx""
accept-encoding:"gzip, deflate"
content-length:599

Request Body:

Response Headers:
content-type:"text/html"
server:"Microsoft-IIS/10.0"
www-authenticate:
0:"Negotiate"
1:"NTLM"
date:"Wed, 06 Jun 2018 13:40:05 GMT"
content-length:"1293"

Response Body:
4

3 回答 3

2

虽然 Postman 错误不是最具描述性的,但通常会发生此错误,因为您的 API 端点不存在。您可能需要检查您是否正确调用了相应的端点

于 2021-07-01T04:58:39.953 回答
0

您说两次第一次迭代工作正常,但是当您进行第三次迭代时,会出现错误。这听起来像是 auth/token/session 过期了。

于 2018-05-11T14:59:50.903 回答
0

JSONError: Unexpected token '<' at 1:1<!doctype html>^今天收到 Postman 错误消息。
我意识到问题(就我而言)是我试图访问自己编写的 API,但忘记上传。- 因此,我试图调用一个不存在的 API。(!)

我一上传 API,错误就消失了。

于 2021-01-09T13:02:59.147 回答