在日常的接口测试过程中,我们都知道一个完整的接口HTTP请求一般包括四个部分:请求头、请求体、响应头、响应体、请求方法(post/get等)。测试时,我们更关心请求输入参数,即请求体的信息,从而忽略了请求信息头的重要性。如果信息头定义不正确,接口请求将会失败。
注意:HTTP请求方法有8种,但我们在实际应用中常用的是get和post。其他请求方法也可以通过这两个方法间接实现。
常用标准
常用的HTTP接口请求头字段如下:
l接受
设置接受的内容类型
l用户代理
用户代理的字符串值,一般用于告诉服务器客户端使用的操作系统/浏览器的名称和版本。
l内容类型
设置请求体的MIME类型(适用于POST和PUT请求),告诉客户端实际返回内容的内容类型,常用application/json;charset=UTF-8,定义接口响应返回的数据为格式为json,编码格式为UTF -8。
l内容长度
设置请求体的字节长度
l接受编码
设置接受的编码格式
l接受语言
设置接受的语言
l 产地
识别跨域资源请求(请求服务器设置Access-Control-Allow-Origin响应字段)
l 推荐人
设置上一个页面的地址,上一个页面中的连接指向当前请求,也就是说如果当前请求是在A页面发送的,那么referer就是A页面的url地址。
lCookies
Cookie是远程服务器返回的用户识别信息。该信息存储在客户端上。客户端每次执行操作时,都会通过HTTP协议与服务器进行交互,验证身份信息是否正确才可以交互成功(大多数需要登录操作的接口比较常见)。
l设置Cookie
设置HTTP Cookie,用于存储一些用户信息,以便服务器识别用户。通常是服务器返回的用户身份信息(这在大多数需要登录的接口上比较常见)
.
Header信息获取方式
接口的信息头中定义了哪些内容,可以通过以下渠道获取:
1. 开发并提供接口文档
2、使用抓包工具charles抓包查看Request的头部。
下图是方法二,通过抓包工具查看某个接口的请求头(Request-Headers)。
实践
目标:某个系统登录界面定义了响应数据(Response)。返回的格式为json格式。使用jmeter的HTTP请求和HTTP标头管理器成功实现登录。
配置
菜单路径
配置内容:
从抓包工具charles中可以得知,该接口需要定义Content-Type:application/json;charset=UTF-8(响应数据为json格式,编码方式为UTF-8)
未定义的标头
下图中的POST登录界面没有HTTP Header Manager。运行jmeter脚本发起接口请求时,默认Content-Type为:text/plain(纯文本格式),所以请求会报错,返回状态码500。
正确定义标题
正确定义信息头:Content-Type: application/json
信息头配置正确后,请求运行jmeter脚本接口成功,返回状态码200。
其他常见媒体格式
text/html:HTML 格式
text/plain:纯文本格式
text/xml:XML 格式
application/xhtml+xml:XHTML格式
application/xml:XML数据格式
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/5097.html
用户评论
接口测试老是报500!可能是请求头的格式不对呢
有17位网友表示赞同!
之前碰到过这个问题,后来发现是证书过期导致的500错误
有14位网友表示赞同!
看了标题就明白了,头信息一定要认真检查哦
有11位网友表示赞同!
接口测试遇到这个坑太多了,真是让人头疼
有5位网友表示赞同!
每次接口请求报500,我都怀疑我的代码有问题,没想到可能是头部问题啊!
有8位网友表示赞同!
文档上都说了,头部设置必须仔细检查!一定要注意规范哦
有18位网友表示赞同!
哎,这可是个常见的问题,希望这篇博文能帮到更多人
有19位网友表示赞同!
接口测试调试确实是个技术活
有19位网友表示赞同!
我之前遇到过类似问题,后来发现在请求头缺少了Authorization字段
有14位网友表示赞同!
仔细检查头部信息才能避免很多不必要的麻烦
有10位网友表示赞同!
希望以后再也不碰到500错误啦!
有8位网友表示赞同!
学习笔记:接口测试时要查看请求头信息是否正确配置 <br>
有6位网友表示赞同!
这个标题说的太对了,以前忽略了头部问题导致了很多死磕
有5位网友表示赞同!
我最近在学习接口自动化测试
有6位网友表示赞同!
500真是个令人抓狂的错误提示
有9位网友表示赞同!
希望能够找到解决问题的办法
有17位网友表示赞同!
感谢作者分享这篇文章!
有9位网友表示赞同!
遇到500报错,检查头部信息很重要,建议大家提前做好记录!
有6位网友表示赞同!
现在好多api都要求校验请求头参数了,确实要多注意啊
有18位网友表示赞同!