原文:http://blog.csdn.net/feishin/article/details/53816649
翻译(转载请标注smooth的博客):
LoadRunner:脚本回放时的错误“HTTP 状态码401未授权(当前请求需要验证用户授权)”
在使用Loadrunner时,我们总会遇到很多常见的错误,比如HTTP status code(HTTP 状态码)401 、500、403等。
在做HTTP/HTML脚本回放时,如果出现HTTP status Code 401 Unauthorized, 表示当前请求需要验证用户授权。该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以请求用户信息。客户端可以重复提交一个包含恰当的 Authorization 头信息的请求。如果当前请求已经包含了 Authorization 证书,那么401响应代表着服务器验证已经拒绝了这些证书。如果401响应包含了与前一个响应相同的身份验证请求,且浏览器已经至少尝试了一次验证,那么浏览器应当向用户展示响应中包含的实体信息,因为这个实体信息中可能包含了相关诊断信息。
可以尝试以下几种解决方案:
方案一:添加“Add web_set_user(username,password,host:port );”;
方案二:在“录制 选项>网络>端口映射>捕获级别(Recording option>Network>Port mapping>capture level)”中将捕获级别更改为Wininet net level,然后录制该脚本。
方案三:在“运行时间设置>网络协议>参数>高级(Run time settings>Internet Protocol>Preferences>Advanced)”中勾选 Wininet replay instead of sockets(Wininet回放取代网络通信接口sockets),然后运行该脚本。
方案四:如果上述方案都不奏效,使用fiddler录制业务请求,并将LoadRunner和fiddler中的请求做比较。确认loadrunner脚本中是否遗失了某些request(请求)、header(协议表头)/cookie (储存在用户本地终端上的数据), 并造成了该问题的出现。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
补充:如果fiddler抓包的效果与LoadRunner一样,不存在遗漏请求,那么有可能是出现另一种情况,请参见我的另一篇博文
http://blog.csdn.net/smooth00/article/details/65629918