Jmeter脚本开发|断言失败时,请先检查入参

不止一次犯这种毛病了,记录一下,提高解决问题的速度,顺便也看看这类的错误日记能记多大的篇幅。

事件一:

发生时间:2023.02.02日

任务需求:我需要利用接口批量创建任务(任务是从源表采集数据到目标表),建任务的源表表名写入txt文件中,再通过Jmeter的 CSV 数据文件设置 组件实现动态传参,文件中有100个表名,表名作为“查询模型信息接口”入参,执行查询,从响应结果中提取模型ID的值。

结果:100个请求,请求都执行成功了,但有的接口无法从响应结果中提取到目标数据。

排查:

1)我先是怀疑CSV数据文件设置得不对,是否跳过了部分数据?---但不是,如果单独换成固定参数传入,还是不对,接口响应中仍然没有目标数据,那排除了CSV文件的问题

2)那是接口自身的功能问题?---也不是,在界面上查询模型,是可以找到目标数据。这时发现了,是要翻页才能找到目标数据,再次检查接口入参,接口URL中限定了返回结果数,目标数据不在第一页的10条数据中,导致提取失败。将返回结果数改大一点,解决问题。

排查的过程花了至少1个小时,把很多时间都花在了CSV数据文件设置是否出错上,走进了胡同里。休息了一段时间,再次打开脚本,才有了第2步的排查过程。还有一点,此次接口的入参放在了URL里,一般我在脚本开发时,直接从抓包工具里,复制粘贴URL,排查的时候往往会忽略了URL里的参数。以上。

事件二:

发生时间:2023.02.06日

任务需求:我需要利用接口,新增一个节点数据。

结果:明明已经在入参时定义好了参数,但接口响应报500,提示参数缺失。 

排查:

1)先是对比消息体里的参数,对比来对比去还是发现不了问题,参数已经写了,怎么就没有?

2)休息了一段时间,脑子换口气,再来抓包,这次发现问题了,原来是请求头Content-Type设置得不对,调试过的Post请求大部分Content-Type是application/json格式,在脚本开发时经常复制粘贴别的请求头来未做修改和检查,仍是用Content-Type=application/json,导致程序无法识别数据,因此报上述错误。修正请求头部的Content-Type=application/x-www-form-urlencoded,问题解决。

以上,是一次只顾着检查入参,而没有检查请求头的经验教训。很多时候犯错,都是因为复制粘贴不检查导致的,吾日三省吾身,URL检查了吗?传参检查了吗?请求头检查了吗?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JMeter是一个开源的性能测试工具,用于对Web应用程序进行压力和负载测试。它可以模拟多个用户同访问目标服务器,并收集性能数据以进行分析和评估。 在JMeter中,脚本开发是指创建和配置测试计划,以模拟用户行为并执行性能测试。下面是一些关于JMeter脚本开发的介绍: 1. 创建测试计划:首,你需要创建一个测试计划。测试计划是整个测试的顶层容器,包含了所有的测试元素和配置信息。 2. 添加线程组:线程组是模拟用户行为的主要元素。你可以在线程组中定义并发用户的数量、循环次数、延迟间等。 3. 添加Sampler:Sampler用于发送求到目标服务器。你可以选择不同类型的Sampler,如HTTP求、FTP求等,根据你的测试需求进行配置。 4. 添加断言断言用于验证服务器响应是否符合预期。你可以添加各种断言检查响应的内容、状态码、响应间等。 5. 添加监听器:监听器用于收集和分析性能数据。你可以选择不同类型的监听器,如图表、表格、聚合报告等,以便查看测试结果和性能指标。 6. 配置元件:配置元件用于设置全局参数和特定求的参数。你可以配置服务器地址、端口号、求头、Cookie等。 7. 运行测试:配置完成后,你可以运行测试计划并观察测试结果。JMeter会模拟用户行为并收集性能数据,你可以根据需要进行分析和优化。 以上是JMeter脚本开发的基本步骤和要点。当然,JMeter还有很多高级功能和扩展插件可供使用,可以根据具体需求进行深入学习和应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值