Loadrunner进行Post请求json格式数据报400、响应结果解决方法

前言

最近项目有个需求说要弄一下项目的性能测试,心血来潮就想到好久都没用过LR了,这次用LR进行性能测试,不出所料出现了很多问题,不禁感叹,收费工具想免费用真不容易啊!

问题1:LR lr_custom_request 进行json格式请求时报错

发现自己有一段时间没有写过lr的代码了,这次心血来潮想着写一遍,以防生疏,谁知道在进行一个新增用户POST请求时居然跑不通了,刚开始报415,一看错误提示就发现是不支持的请求格式,因为我这里是json格式请求,在这里插入图片描述
所以在lr_custom_request方法下加上了
<"EncType=application/json"/>
在这里插入图片描述
本以为可以了,运行之后发现报400的错误,那就是语义有误,方法不能被服务器理解,百度了一下,说是要加个头部,那就写了一个头部放上去,
web_add_header("Content-Type", "application/json,charset=UTF-8");
运行之后仍然报错,既然这样我想我先去postman里面跑一下看看行不行,跑了一下通了,数据库里面也有新用户数据更新,证明json格式没问题,网上又查了挺多方法,都不行。后面干脆将body内容清空跑一下,可以跑通在这里插入图片描述
那问题基本就定位出来了,json格式哪里出问题了,因为loadrunner中“”是需要进行转义的,而且这次的json数据又是多层嵌套的,所以知道问题所在也难修改,想了一下,那我可以把json数据参数化了,说干就干,这里有个小技巧,参数化的数据是不需要转义的,所以就将原始的json格式数据搞进去就可以了
在这里插入图片描述
参数化我这里就不多说了,网上一堆教程
参数化后运行没毛病了,然后引申出问题2,顺便也说一下,就是获取响应结果乱码的问题解决方法

问题2:输出响应结果乱码解决方法

首先使用
web_reg_save_param ("result","LB=","RB=",LAST);
去获取服务器返回的结果

方法1:
lr_output_message(lr_eval_string("{S_respond}"));
直接将返回的结果通过字符串的形式输出,但这个方法可能也会出现乱码的情况,那么就得用到下面的方法了

方法2:先将保存的结果进行转码
lr_convert_string_encoding ( lr_eval_string ("{result}"),LR_ENC_UTF8 ,NULL,"respond");
这里将result转码后的内容赋值到了respond字段上,然后将respond值输出就行了
lr_output_message ( "%s",lr_eval_string ("{respond}"));

再来看结果,完美解决
在这里插入图片描述
附上源码:

Action()
{
	web_add_header("Content-Type",
		"application/json,charset=UTF-8");
	
	web_reg_save_param("result",
		"LB=",
		"RB=",
		LAST);

	
	web_custom_request("web_custom_request",
		"URL=放入自己要测试的网址",
		"Method=POST",
		"TargetFrame=",
		"Resource=0",
		"Referer=",
		"Mode=HTML",
		"EncType=application/json",
		"Body=参数化数据",
		LAST);
	
	lr_convert_string_encoding ( lr_eval_string ("{result}"),LR_ENC_UTF8 ,NULL,"respond");
	lr_output_message ( "%s",lr_eval_string ("{respond}"));

	
	return 0;
}

结语

在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值