LR 报400错
看到一篇在LR里报Http400错后的文章。
原文链接:http://www.cnblogs.com/littlehb/p/3783184.html
最近在做性能测试,在开发web脚本的过程中遇到错误:Action.c(15): Error -26631: HTTP Status-Code=400 (Bad Request) for http://xxxxxx/onlinefront/s.do?tl=51&bk=null&optionId=244&p=110
问了很多人没有人知道问题的原因,最后只能自己潜心研究,首先从http status-code400的错误开始分析,这个错误是说请求无法被处理,因为它含有缺失或无效的信息,根据错误信息的描述应该是发送HTTP请求中语法格式不正确导致不被服务器接受,这很可能就是通过LoadRunner 发送HTTP请求是一个不完整。那么首先要确认的就是比较发出的请求和录制的时候请求看是否丢失了http信息来判断错误的原因。
首先选上runtimesettings中extended log的三个选项后运行此脚本,用录制发送相类似请求的日志和选择exection log的http send请求日志进行对比。拷贝这些请求数据包到一个记事本中然后进行比较。在Recording Log(单协议)或Generation Log(多协议)中查找是否存在头数据包,我们发现在执行日志中头域失踪了。
这样解决问题的方法就是用web_add_header("xxxxx","yyyy")添加一个http头,在错误的请求前添加此函数然后回放。
如果你发现所有的HTTP send请求都缺少头数据包,在脚本中的开头添加web_add_auto_header(”XXXXX“,”yyyy“);随着web_add_auto_header的添加,你不需要为每个HTTP send请求都添加web_add_header了。
还有一个解决问题的方法是在Tools -> Recording Options -> Advanced tab中设置,点“headers”按钮,在列表中选择“Record Headers in the List”,然后选择“XXXXX”,因此它可确保在录制过程中录制自己。