再识web_custom_request之post(Jmeter VS Loadrunner)

本文分享了使用JMeter及LoadRunner(LR)进行接口压力测试的经验,重点介绍了如何配置HTTP请求、解决参数传递问题及抓包分析等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


工具选择篇,笔者使用了jmeter工具和LR对接口进行压测,并使用WireShark进行抓包分析。


一、Jmeter

jmeter不涉及到断言之类的操作,只聊http请求。

1、下图为http请求,BodyData中说明发送数据的格式为json


2、在查看结果树中,可以看到本次请求POST data:data={"sm_seq":"201411CM100000017"},Content-Type: application/x-www-form-urlencoded


3、通过WireShark对包结构进行分析,如下图红框所示

二、LR脚本制作

经过了一些曲直,总结了下和大家分享,脚本如下:

    web_custom_request("web_custom_request",
					   "URL=http://xxxxxxxxxxxxx/extra_cms_api/get_item_by_seq/RAN1411WUHAN/",
					   "Method=POST",
					   "Resource=0",
					   "RecContentType=application/json",
					   "Referer=",
					   "Mode=HTTP",
					   "EncType=application/x-www-form-urlencoded",					
					   "Body=data={\"sm_seq\":\"{CM}\"}",
					   //下面是错误的,通过抓包工具对比,就能定位问题
					   //  情况1 EncType为json
					   // "EncType=application/json",
					   // 情况2 没有加data=
					   // "Body={\"sm_seq\":\"{CM}\"}",					   
					   LAST);</span>


情况1:EncType=application/json,原本以为这样写脚本就通过了,但事实并非如此,服务端返回“params error”,参数错误,通过抓包数据对比,可以看出差异在Line-based text data:application/json


情况2:

EncType=application/x-www-form-urlencoded,

Body={\"sm_seq\":\"{CM}\"},由下图可以看出 key的值和value的值不正确

最终修改为:

 "EncType=application/x-www-form-urlencoded", 

"Body=data={\"sm_seq\":\"{CM}\"}", OK问题解决,能够返程成功的结果。

若有疑问请拍砖。













































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值