最近用 Jmeter 发送 PUT 请求,踩了个坑,现记录如下:

难点在在于 body 内有一大串 json 形式的内容

1、PUT 请求的 body 内,直接将 json串传 form-data 形式:

结果:压根执行不过去

2、将抓包出来的请求直接传到 jmeter 里面

id=4&mediaId=4&targetUrl=http%3A%2F%2F121.33.248.251%3A19091%2Ftoutiao&paramJson=%7B%0A++++%22request_id%22%3A+%22201812271802090100120360754600940%22%2C+%0A++++%22api_version%22%3A+%222.1%22%2C+%0A++++%22adslots%22%3A+%5B%0A++++++++%7B%0A++++++++++++%22id%22%3A+%2224e59b06cafb432a%22%2C+%0A++++++++++++%22banner%22%3A+%5B%0A++++++++++++++++%7B%0A++++++++++++++++++++%22width%22%3A+690%2C+%0A++++++++++++++++++++%22height%22%3A+388%2C+%0A++++++++++++++++++++%22pos%22%3A+%22FEED%22%2C+%0A++++++++++++++++++++%22sequence%22%3A+%2221%22%0A++++++++++++++++%7D%0A++++++++++++%5D%2C+%0A++++++++++++%22ad_type%22%3A+%5B%0A++++++++++++++++%22TOUTIAO_FEED_APP_LARGE%22%2C+%0A++++++++++++++++%22TOUTIAO_FEED_LP_LARGE%22%2C+%0A++++++++++++++++%22TOUTIAO_FEED_LP_GIF%22%2C+%0A++++++++++++++++%22TOUTIAO_FEED_APP_VIDEO%22%2C+%0A++++++++++++++++%22TOUTIAO_FEED_LP_VIDEO%22%2C+%0A++++++++++++++++%22TOUTIAO_FEED_APP_SMALL%22%2C+%0A++++++++++++++++%22TOUTIAO_FEED_LP_SMALL%22%2C+%0A++++++++++++++++%22TOUTIAO_FEED_LP_GROUP%22%2C+%0A++++++++++++++++%22TOUTIAO_FEED_APP_GROUP%22%0A++++++++++++%5D%2C+%0A++++++++++++%22bid_floor%22%3A+5000%2C+%0A++++++++++++%22pmp%22%3A+%7B%0A++++++++++++++++%22deals%22%3A+%5B%0A++++++++++++++++++++%7B%0A++++++++++++++++++++++++%22id%22%3A+190411%2C+%0A++++++++++++++++++++++++%22bid_floor%22%3A+5000%2C+%0A++++++++++++++++++++++++%22new_id%22%3A+190411%0A++++++++++++++++++++%7D%0A++++++++++++++++%5D%0A++++++++++++%7D%2C+%0A++++++++++++%22channel_id%22%3A+0%2C+%0A++++++++++++%22advanced_creative_type%22%3A+%5B%0A++++++++++++++++%22NONE%22%2C+%0A++++++++++++++++%22ACTION%22%2C+%0A++++++++++++++++%22DISCOUNT%22%0A++++++++++++%5D%0A++++++++%7D%0A++++%5D%2C+%0A++++%22app%22%3A+%7B%0A++++++++%22id%22%3A+%2213%22%2C+%0A++++++++%22name%22%3A+%22news_article%22%2C+%0A++++++++%22ver%22%3A+%22704%22%2C+%0A++++++++%22scheme%22%3A+%22snssdk+143%3A%2F%2F%22%0A++++%7D%2C+%0A++++%22device%22%3A+%7B%0A++++++++%22dnt%22%3A+false%2C+%0A++++++++%22ua%22%3A+%22Dalvik%2F2.1.0+(Linux%3B+U%3B+Android+8.0.0%3B+VTR-AL00+Build%2FHUAWEIVTR-AL00)+NewsArticle%2F7.0.4+cronet%2FTTNetVersion%3Aa729d5c3+2018-11-25%22%2C+%0A++++++++%22ip%22%3A+%22223.104.64.206%22%2C+%0A++++++++%22geo%22%3A+%7B%0A++++++++++++%22lat%22%3A+23.09559%2C+%0A++++++++++++%22lon%22%3A+113.36527%2C+%0A++++++++++++%22city%22%3A+%22%5C%5C345%5C%5C271%5C%5C277%5C%5C345%5C%5C267%5C%5C236%22%0A++++++++%7D%2C+%0A++++++++%22device_id_md5%22%3A+%226e8a6e9bb09fb6cd5140ca6c9a8d6ef7%22%2C+%0A++++++++%22make%22%3A+%22unknown%22%2C+%0A++++++++%22model%22%3A+%22VTR-AL00%22%2C+%0A++++++++%22os%22%3A+%22android%22%2C+%0A++++++++%22osv%22%3A+%228.0.0%22%2C+%0A++++++++%22connection_type%22%3A+%22NT_4G%22%2C+%0A++++++++%22device_type%22%3A+%22PHONE%22%2C+%0A++++++++%22android_id_md5%22%3A+%226df357ed0dacf593c444a7e4ee01b81f%22%0A++++%7D%2C+%0A++++%22user%22%3A+%7B%0A++++++++%22id%22%3A+%220%22%2C+%0A++++++++%22yob%22%3A+%2224%22%2C+%0A++++++++%22gender%22%3A+%22MALE%22%0A++++%7D%2C+%0A++++%22dsp_id%22%3A+190411%2C+%0A++++%22merge_dsp_ids%22%3A+%5B%0A++++++++190411%0A++++%5D%2C+%0A++++%22req_audit_type%22%3A+%22AUDIT_FIRST%22%2C+%0A++++%22new_dsp_id%22%3A+190411%2C+%0A++++%22new_merge_dsp_ids%22%3A+%5B%0A++++++++190411%0A++++%5D%0A%7D

发现是一大坨,想参数化?改的你想死

那么有啥方法可以既美观大方,又能发成请求呢?

方法:浏览器 f12

利用这个,我们在 jmeter 内,改写请求:

参数全部写在消息体内,各个 key-value 用 & 连接,这样大的 json 串不会成乱码形式,而且请求成功

id=4&mediaId=4&targetUrl=http://121.33.248.251:19091/toutiao&paramJson={
"request_id": "",
"api_version": "2.1",
"adslots": [
{
"id": "24e59b06cafb432a",
"banner": [
{
"width": 690,
"height": 388,
"pos": "FEED",
"sequence": ""
……

响应结果:

完事

Jmeter 传 PUT 请求方式的更多相关文章

  1. jmeter处理http请求Content-Type类型和传参方式

    引言 我们在做接口测试的时候经常会忽略数据类型content-type的格式,以及参数Parameters和Body Data的区别和用途. 对于初次接触接口的同学来说,自己在发送一个http请求时, ...

  2. get、post请求方式在jmeter中使用步骤

    jmeter:性能测试工具,压测 一.jmeter工具测试接口时使用步骤: 1.测试计划右键--添加--Threads(Users)--线程组(线程数就是并发数) 2.线程组右键--Sampler-- ...

  3. 设置 Ext.data.Store 传参的请求方式

    设置 Ext.data.Store 传参的请求方式 1.extjs 给怎么给panel设背景色 设置bodyStyle:'background:#ffc;padding:10px;', var res ...

  4. Extjs 项目中常用的小技巧,也许你用得着(5)--设置 Ext.data.Store 传参的请求方式

    1.extjs 给怎么给panel设背景色 设置bodyStyle:'background:#ffc;padding:10px;', var resultsPanel = Ext.create('Ex ...

  5. Jmeter自动化测试 POST请求和GET请求用if控制器,可以二次开发源码,将请求方式通过数据源传入,就不需要做多余的判断

    Jmeter自动化测试 POST请求和GET请求用if控制器,可以二次开发源码,将请求方式通过数据源传入,就不需要做多余的判断 目前常用的做法:

  6. C# ContentType: "application/json" 请求方式传json参数问题

    处理Http请求时遇到的ContentType为application/json方式,记录下这种Post请求方式下如何传json参数: var request = (HttpWebRequest)We ...

  7. 使用jmeter发送put请求的三种方式

    之前在前公司使用jmeter调试接口时,由于都是get和post请求,所以一直是顺风顺水的,毫无阻拦在短时间内调试完所有接口. 但是呢,在换到新公司后,发现接口请求是多式多样的,get.post必须有 ...

  8. jmeter测试HTTP请求

    HTTP超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.所有的WWW文件都必须遵守这个标准.(详情参考看一下百科) HTTP发送请求有GE ...

  9. JMeter基础:请求参数Parameters 、Body Data的区别

    使用Jmeter测试时,很多人不知道请求参数Parameters .Body Data的区别和用途,这里简单介绍下 先了解一个接口的基本概念 在客户机和服务器之间进行请求-响应时,HTTP协议中包括G ...

随机推荐

  1. 界面控件DevExpress发布v18.2.7,新版全新出发|附下载

    DevExpress Universal Subscription(又名DevExpress宇宙版或DXperience Universal Suite)是全球使用广泛的.NET用户界面控件套包,De ...

  2. OpenStack-Queens版本缓存yum源的问题

    安装OpenStack仓库出现问题 yum install centos-release-openstack-queens -y 执行 sed -i 's/$contentdir/centos/g' ...

  3. 如何快速地开发一个微信小程序

    如何快速地开发一个微信小程序呢?我觉得作为初学者,最好能有一个模板,然后改这个模板. 同样作为初学者,刚开始的时候我有下面的几个问题,后来通过问同学,我弄清楚了. 微信小程序可以连接MySQL或者Sq ...

  4. bll

    string str = ConfigurationManager.AppSettings["DBName"].ToString(); public Studal ss() { A ...

  5. mssql server 数据库帮助类

    using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Web ...

  6. matlab绘图与可视化

    1.设置图形对象属性值 set(h,'属性名称','属性值') >> subplot(,,); h1=line([ ],[ ]); text(,0.5,'unchange'); subpl ...

  7. 《贝贝GO》隐私政策

    隐私政策 贝贝GO尊重并保护所有使用服务用户的个人隐私权.为了给您提供更准确.更有个性化的服务,贝贝GO会按照本隐私权政策的规定使用和披露您的个人信息.但贝贝GO将以高度的勤勉.审慎义务对待这些信息. ...

  8. 2019/02/09 对于KinectFusion 的理解

    网上有很多关于Kinect Fusion 的详细介绍,包括各个部分的算法,思路,以及应用上的限制和优化. 在此就不多介绍了. KinectFusion 提供了非常基础的用RGB-D 相机实现的 Den ...

  9. 【linux】State : Uninterruptible, pid: 3936

    运行centos7中yum命令时提示: Existing lock /var/run/yum.pid: another copy is running as pid 3936.Another app ...

  10. [转载] HBase入门

    转载地址:https://dxer.github.io/2016/03/18/hbase/ HBase一些基本概念 1.Row key 行主键,在对HBase进行查询时候只能依靠Row key,HBa ...