问题:接口的入参、地址、请求方式都设置对了,但是请求仍返回500,报系统错误是为啥?

在日常进行接口测试过程中,我们都知道一个完整的接口HTTP请求一般包括四大部分:请求信息头、请求体、响应信息头、响应体、请求方式(post/get等)。在进行测试时我们比较关心的是请求入参,也就是请求体的信息,从而忽略了请求信息头的重要性。若是未正确定义信息头,会导致接口请求失败。

本文主要带大家简单了解下信息头的作用。Jmeter提供了HTTP Header Manager信息头管理器,用于定义规范客户端和服务端之间HTTP接口请求的默认规范。

注意:HTTP 的请求方式有 8 种,但是我们在实际应用中常用的也就是 get 和 post,其他请求方式也都可以通过这两种方式间接的来实现。

常用的标准

常用的HTTP接口请求头字段有如下:

l Accept

设置接受的内容类型

l User-Agent

用户代理的字符串值,一般用于告诉服务器客户端使用的操作系统/浏览器的名称和版本等信息

l Content-Type

设置请求体的MIME类型(适用POST和PUT请求),告诉客户端实际返回的内容的内容类型,常用application/json;charset=UTF-8,定义接口响应返回的数据是json格式,编码格式是UTF-8。

l Content-Length

设置请求体的字节长度

l Accept-Encoding

设置接受的编码格式

l Accept-Language

设置接受的语言

l Origin

标识跨域资源请求(请求服务端设置Access-Control-Allow-Origin响应字段)

l Referer

设置前一个页面的地址,并且前一个页面中的连接指向当前请求,意思就是如果当前请求是在A页面中发送的,那么referer就是A页面的url地址

l Cookie

Cookie是远程服务端返回的识别用户身份信息,该信息存储在客户端,客户端每次进行操作时,会通过HTTP协议和服务器端进行Cookie的交互,验证身份信息正确才可交互成功(大多数需要登录后操作的接口上面会比较常见)。

l Set-Cookie

设置HTTP Cookie,用来存储一些用户信息以便让服务器辨别用户身份的,一般是服务端返回的用户身份信息(大多数需要登录的接口上面会比较常见)

......

Header信息获取方式

接口的信息头到底定义了哪些内容,可以通过以下渠道获得:

1. 开发提供接口文档

2. 通过抓包工具charles抓取查看Request的Headers

下图为方式2,通过抓包工具查看到的某接口的请求信息头(Request-Headers)

实践

目标:某系统登录接口已定义响应数据(Response)返回的格式是json格式,使用jmeter的HTTP Request、HTTP Header Manager成功实现登录。

配置

菜单路径

配置内容:

从抓包工具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数据格式

application/json:JSON数据格式

......

本文仅分享由于请求信息头(Headers)未定义而引起的错误码500,不排除其他原因引起。

作  者: 兜里有糖

出  处:微信公众号:自动化软件测试平台

版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接

接口报错500是什么意思_接口测试遇到500报错?别慌,你的头部可能有点问题!...相关推荐

  1. js 获取电脑 硬盘序列号_来将何人报上名来!解密电脑是如何识别硬盘的

    电脑可以搭配和兼容各种不同品牌的硬盘,是因为他们都遵循了ATA/ATAPI标准,使用共同的语言沟通.这个标准都有什么有趣的功能和作用呢?一起来看存储极客的介绍. ATA/ATAPI是存储设备(硬盘.移 ...

  2. python3.7运行报错_Python 3.7 环境下运行 scrapy crawl 报错 def write(self, data, async=False)?...

    Python 3.7 环境下运行 scrapy crawl 报错 def write(self, data, async=False),详细报错信息如下: 2018-08-10 15:10:29 [s ...

  3. 安装Docker Desktop报错WSL 2 installation is incomplete的问题(解决报错)

    我们安装Docker Desktop的时候,他会问我们是否需要使用WSL2(基于Windows的Linux子系统),如果我们不适用,就会使用Hyper-v虚拟机运行,不过相比于虚拟机,子系统在性能方面 ...

  4. thinkphp报错控制器不存在:504_OKI打印机这5种报错提示怎么解决?一起来get技术干货...

    打印机报错是很多客户经常会提到的.下面,小编为大家整理OKI B710系列机(B710/B720/B730)常见的5种报错信息及详细的解决方案,一起来get技术干货! 报错提示1: 当机器报错:&qu ...

  5. mysql修改密码报错问题以及远程工具连接华为云数据库报错问题

    mysql修改密码报错问题以及远程工具连接华为云数据库报错问题 1.mysql修改密码错误 2. 华为云远程数据库连接工具无法连接问题 1.mysql修改密码错误 很久没用自己电脑里的mysql,这次 ...

  6. 道琼斯、标普500、纳斯达克100指数:一季度财报强劲,三大股指技术面却现回调信号!

    道琼斯.标普500.纳斯达克100指数:一季度财报强劲,三大股指技术面却现回调信号! 摘要: 美股一季度财报强劲或将推动美国三大股指在未来几天继续走高 然而,长期美债收益率上涨可能会限制美股整体的上涨 ...

  7. 食堂报餐订餐系统小程序_吃饭用餐人数统计缴费软件开发及介绍

    一.员工使用报餐 1.员工通过小程序注册,第一次使用需要管理员审核是否本单位员工,审核通过才可以使用. 2.员工报餐,选择吃饭日期.餐类型(早中晚),选择吃饭份数,提交报餐. 3.报餐时,根据企业需求 ...

  8. 暴雪修改手机500服务器错误,网站http服务器内部500错误的解决方法 [图文]

    很多站长在建设网站时,经常遇到程序运行时打不开的问题,有的是因为程序出现错误,无法运行,而有的是因为服务器的原因.今天78t站长网先为大家整理一个常见的错误和解决办法,希望能有所帮助,如果您采用以下办 ...

  9. 500服务器无法正常提供信息,http 500 内部服务器错误怎么办

    http 500 内部服务器错误怎么办?现在有很多站长在建站的时候会遇到网站无法正常显示网页的问题,这些原因有很多,可能是域名解析除了问题,也可能是服务器不稳定,或者是http 500 内部服务器错误 ...

最新文章

  1. TensorFlow Frontend前端
  2. ORACLE 执行计划2
  3. 窗口类、窗口类对象与窗口 三者之间关系
  4. UCenter 表结构
  5. Linux给Java程序设置端口_扫描服务端口的Java程序
  6. linux rz批量上传
  7. linux安装多路径报错,Linux操作系统配置多路径通用教程(适用于(RHEL,CentOS,SuSE等)...
  8. jquery练习——简单的图片结果展示效果
  9. SQL SERVER日期函数详细用法
  10. iphone safari不支持position fixed的解决办法
  11. 使用docker安装easy-mock
  12. 使用无线投屏软件将手机和电脑画面同步
  13. python生成倒计时图片_用Python自动化生成新年倒计时图片
  14. 考勤系统(打卡时间计算)
  15. 智商太低,竟然算不出病狗神题了
  16. 立项 ——VC下,打印机管理和维护
  17. VUE项目保存照片到本地(微信环境不可行)
  18. 【转】十大顶级奢侈品服装品牌
  19. 评论:Dremel 3D打印机和HP Sprout的初步印象
  20. X264算法参数五(码控参数)

热门文章

  1. TCP/IP--划分子网和构造超网
  2. 基于HTML5的年货购物网站前端网页设计
  3. 服务器上Ubuntu系统安装
  4. VENC 通道属性配置参数理解
  5. Node.js文档和教程
  6. android动画 行星,AndroidAnimation
  7. Centos 安装zlib
  8. 直方图均衡化(II)
  9. 对于自学Java的人来说,如何系统的,全方面的学习Java?
  10. TCP/IP Attack Lab