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

本文介绍使用LoadRunner发送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格

<think>好的,用户想了解如何使用LoadRunner编写发送POST请求的性能测试脚本。我需要根据提供的引用内容来组织答案。 首先,引用[3]提到了web_submit_data()方法用于POST请求,这可能是一个关键点。需要详细说明这个函数的用法和参数设置。例如,需要设置Action、Method为POST,指定要提交的ItemData数据。 然后,引用[5]中的例子展示了如何处理响应,比如转码和打印响应报文。这部分可以作为脚本调试的步骤,告诉用户如何验证POST请求是否成功。 另外,引用[2]和引用[4]提到了如何保存和输出请求头信息,可能需要在脚本中添加相关代码来捕获请求头,帮助调试或验证请求是否正确发送。 用户可能还需要知道如何设置表单参数或JSON数据,所以在步骤中应该分点说明这两种常见的数据格式如何处理。比如,使用web_submit_data提交表单,或者使用web_custom_request发送JSON数据。 另外,性能测试脚本的常见步骤包括创建脚本、运行测试和分析结果,如引用[1]所述。需要将这些步骤融入回答中,让用户了解整个流程。 还需要注意用户可能遇到的常见问题,比如编码问题,引用[5]中的转码函数lr_convert_string_encoding就是一个例子,应该提醒用户处理响应编码。 最后,生成的相关问题要围绕POST请求脚本编写、参数化、性能分析等方面,确保覆盖用户可能进一步想了解的内容。 整理结构:先介绍POST请求的两种方法,然后分步骤说明如何编写脚本,包括参数设置、数据格式处理、结果验证,最后提到性能测试的整体流程和常见问题。确保引用正确的引用来源,比如引用[3]、[5]等。</think>在LoadRunner中编写发送POST请求的性能测试脚本,可通过以下步骤实现: ### 一、POST请求脚本编写方法 1. **使用`web_submit_data`函数**(推荐用于表单提交) ```c web_submit_data("api/login", "Action=https://example.com/api/login", "Method=POST", "EncType=application/x-www-form-urlencoded", ITEMDATA, "Name=username", "Value=testuser", ENDITEM, "Name=password", "Value=123456", ENDITEM, LAST); ``` 说明:该函数自动处理表单边界,适用于标准表单提交,需指定`Method=POST`和内容类型[^3][^5] 2. **使用`web_custom_request`函数**(适用于JSON/XML等复杂格式) ```c web_custom_request("create_order", "URL=https://example.com/orders", "Method=POST", "Body={\"productId\":1001,\"quantity\":2}", "Header=Content-Type: application/json", LAST); ``` 说明:可自由定义请求体和头部,适合非表单类型的POST请求[^3] ### 二、关键配置步骤 1. **参数化数据** ```c lr_save_string(lr_eval_string("{username_param}"), "username"); lr_save_string(lr_eval_string("{password_param}"), "password"); ``` 结合参数池使用可实现多用户测试 2. **响应验证** ```c web_reg_save_param("S_respond", "LB=", "RB=", "Search=Body", LAST); // 发送POST请求后 lr_convert_string_encoding(lr_eval_string("{S_respond}"), LR_ENC_UTF8, NULL, "respond"); lr_output_message("响应报文:%s", lr_eval_string("{respond}")); ``` 通过转码函数确保中文正常显示 3. **请求头捕获(调试用)** ```c web_save_header(REQUEST, "RequestHeader"); lr_output_message("请求头:%s", lr_eval_string("{RequestHeader}")); ``` 可用于验证Content-Type等头部设置[^4] ### 三、性能测试流程 1. 在VuGen中创建/编辑脚本 2. 通过Controller运行负载测试 3. 使用Analysis分析响应时间、TPS等指标[^1]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值