最近用 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. day14 内置函数二

    lamda 语法: 函数名 = lambda 参数: 返回值注意: 1. 函数的参数可以有多个. 多个参数之间⽤逗号隔开 2. 匿名函数不管多复杂. 只能写⼀⾏, 且逻辑结束后直接返回数据 3. 返回 ...

  2. tensorFlow入门实践(二)模块化

    实现过一个例子之后,对TensorFlow运行机制有了初步的了解,但脑海中还没有一个如何实现神经网络的一个架构模型.下面我们来探讨如何模块化搭建神经网络,完成数据训练和预测. 首先我们将整体架构分为两 ...

  3. elasticsearch(4) 轻量搜索

    一 空搜索 搜索API的最基础的形式是没有指定任何查询的空搜索 ,它简单地返回集群中所有索引下的所有文档: 示例 GET 127.0.0.1:9200/_search 响应 { , "tim ...

  4. native-echarts 图形组件

    import React, {Component} from 'react'; import { AppRegistry, StyleSheet, Text, Button, View, Toucha ...

  5. 2017-10-22模拟赛T2 或(or.*)

    题面 [题目描述]你需要构造一个长度为 n 的数列 X,当中的数字范围从 0 到 2^30-1.除此之外你需要满足 m 个条件,第 i 个条件为 X[li]|X[li+1]|……|X[ri]=pi.| ...

  6. C 设计模式:装饰模式

    最近在公司分享了下C语言版的设计模式,记录一下吧. 参考:<设计模式之禅>中“装饰模式”章节. 上面书中是用C++来实现的,我使用了书中的例子,改用C语言来实现. 一.基础知识 面向对象最 ...

  7. 使用lua读文件并输出到stdin

    io.input("c:\\AudioCom.log") t= io.read("*all") io.write(t) 三行代码搞定,简洁的不像话 io.rea ...

  8. Hadoop学习------Hadoop安装方式之(一):单机部署

    Hadoop 默认模式为单机(非分布式模式),无需进行其他配置即可运行.非分布式即单 Java 进程,方便进行调试. 1.创建用户 1.1创建hadoop用户组和用户 一般我们不会经常使用root用户 ...

  9. 记reinforcement learning double DQNS

    传统的DQN算法会导致overestimate.因为在训练开始时,最大的Q值并不一定是最好的行为. 也就是说较差的行为Q值相对较大,较好的行为Q值相对较小.这时我们在更新Q值时用最大期望来计算我们作为 ...

  10. 转载 * jQuery实现动态分割div—通过拖动分隔栏实现上下、左右动态改变左右、上下两个相邻div的大小

    由jQuery实现上下.左右动态改变左右.上下两个div的大小,需要自己引入jquery1.8.0.min.js包 可用于页面布局. //============================ind ...