• JMETER做接口测试时,请求参数和消息体数据的区别


    昨天我们讲了JMETER做接口测试时,get请求中的注意事项。

    今天我们继续讲一下,post请求中的请求参数和消息体数据的区别。

    因为我们在做接口测试的时候,经常会碰到post请求方式。

    而post请求就是上传参数,传递数据。不同于get请求,是请求数据。

    但是JMETER做接口测试的时候,传递参数,有Parameters 、Body Data的区别。

    那么二者有什么区别呢?

    使用Parameters时,Content-Type不传,或者直接传application/x-www-from-urlencoded,若传application/json出错。
    使用Body Data时,Content-Type可传application/x-www-from-urlencoded或application/json,两者的区别是数据格式不同。
    可以从post data中看出区别:

    Parameters的request请求数据:

    一般来说,Get请求用Parameters,Post请求用Body Data。

    精确的对于Post的说法是:

    普通的post请求和上传接口,选择Parameters。
    json和xml点数据格式请求接口,选择Body。
    详细来解释,根据post请求数据的格式,分两种情况:map格式、json格式。

    post请求数据为map格式
    当post请求数据为map格式,即参数名、参数值为key-value键值对,请求的参数添加在Parameters参数表中即可,

    post请求数据为json格式   
    目前阶段比较流行的是json格式传递参数,使用jmeter时,将json格式的请求数据加入到http请求BodyData中,

    另外,由于POST请求方式,如果不设置Headers的content-type,基本默认会以 application/x-www-form-urlencoded 方式提交数据。为了Post请求确保传的是json格式,还需要在请求头中声明一下请求参数的格式为json,具体操作如下:

    Thread Group右键Add》Config Element》HTTP Header Manager,打开HTTP信息头管理器,Add一个Name为Content-Type,Value为application/json,如下图,一个json格式的post请求完成了。

    以上就是二者的区别了。

    总结一下,如果post传递的数据是key-value格式时,基本是用Parameters的方式上传数据。

    如果post传递的数据是json格式时,则要选择Body Data的方式上传数据。

    另外要保证我们传的是json格式,我们还要在请求头中声明一下请求参数的格式为json,具体步骤就是在http信息头管理器中增加一个Content-Type,值为:application/json,这样就可以保证我们上传的数据是json格式了。

  • 相关阅读:
    LPC2478时钟模块详解
    LPC2478内存布局以及启动方式
    STM8的GPIO驱动
    STM8时钟系统详解
    ELF文件格式分析--结构篇
    S3C2440 TFTLCD驱动详解
    S3C2440触摸屏驱动详解
    S3C2440 ADC详解
    STM8建立IAR工程
    STM8单片机启动流程彻底探究--基于IAR开发环境
  • 原文地址:https://www.cnblogs.com/star12111/p/13160383.html
Copyright © 2020-2023  润新知