接口性能测试实战小结

简介:

背景

有一个接口http的接口,GetPaymentURL,传递参数很简单,就是一个sessionID(类似于订单号),这个接口本身并没有什么东西,但是他调用了另外一个模块钱包的接口,钱包最终会返回一个paymenturl等信息给到GetPayment这个接口。

一句话,GetPyamentURL只时负责传递参数给到钱包的接口,主要业务逻辑都是在钱包里面,最终由钱包把结果返回给GetPaymentURL ,拿到结果后再做简单的处理,把结果返回出来。

小强点评:明白一个接口的逻辑是非常重要的,实际中我发现很多人只关注技术,却不关注业务逻辑,导致很多一步可以完成的事情偏偏走了N步,得不偿失啊!

问题

当时遇到一个情况,调用getpaymenturl接口有时非常慢(只是1个用户进行调用,100次内有27次是20秒以上,最长的都达到30秒以上。我这只是单个用户进行请求啊,怎么能这么慢),但是直接调用钱包的接口非常快。而且都是在同一网络下用一个用户分别进行测试100次,都是在我们公司的内网发出请求的请求。

小强点评:我就想说棒棒哒,哈哈

分析

首先,因为直接调用钱包接口,响应正常。所以我觉得问题应该是在getpaymenturl这里。

我利用LR,把getpaymenturl的结果分析了一下,发现buffer time非常长,进一步分解,得到server time很慢,net time是正常的。所以我怀疑是不是GetPaymentURL接口本身的server端问题,导致慢。但又觉得说不过去啊,这个接口只是做了简单的传递,怎么会这么慢,不太可能?所以我觉得还是保留一下网络的原因。

接口性能测试实战小结(附点评)

然后我又想,不对啊,为什么直接调用钱包接口,都正常,说明网络是正常的。后来与同事确认后,后来发现直接调用钱包接口走的是公网(开发给我的测试地址是公网的),而getpaymenturl应该走的是专线。虽然最终都是到达同一台服务器进行处理,但是他们走的网络节点是不一样的。所以现在我更加肯定,网络+VPOS都有可能有问题。

小强点评:分析逻辑严谨,能放能收。抓住网络路径的不同找突破口

这里还有一个小故事。VPOS一开始其实用的是公网地址,然后我们这边的一个同事,配置了一个什么代理,就是无论VPOS用什么公网地址,都会被这个代理,转一下,最终跳到一个固定的地址,然后再从这个地址转出去,再到钱包。

这样搞,显然不行,一是对于这种涉及到钱的交易,肯定是走专线地址的。 而是即使走公网,为什么还绕了这么大一圈子,通过配的什么代理,兜一圈再出去。。。

于是立马,让同事修改成为指向钱包的专线地址,重新测试了一下,结果一切正常。

虽然结果有点大跌眼镜,既不是网络原因,也不是VPOS服务端的原因,而是莫名其妙的被兜了个大圈子,导致响应时间较慢。

这是最终用单个用户请求了200次的结果:

接口性能测试实战小结(附点评)

小强点评:为什么性能测试好玩?就是你会发现有时候你玩他,有时候他玩你啊,就和大家为啥都爱看悬疑推理破案片一个道理,所以耐心、坚持、逻辑思维真心很重要。不过这里我建议用的工具要保证一致性,毕竟每个工具的统计原理不一样,如果换着用会对数据的比较造成一定的干扰。这里学员用了jmeter,而上面用的是loadrunner。

总结

1. 遇到这种接口很慢的情况,无非就是网络+Server端的原因。

2. 对于这种接口调接口的情况(某个接口本身封装了另外一个接口),可以进一步拆分。比如直接调用钱包的接口,看看他是否正常,如果他本身就有问题,那肯定是要首先分析钱包的接口。 如果钱包接口本身没有问题,那就要分析是不是getpaymenturl本身接口的问题

3. 遇到问题,要与相关人员进行确认。










本文转自 小强测试帮 51CTO博客,原文链接:http://blog.51cto.com/xqtesting/1962436,如需转载请自行联系原作者
目录
相关文章
|
6月前
|
数据采集 JSON JavaScript
Cypress 插件实战:让测试更稳定,不再“偶尔掉链子”
本文分享如何通过自定义Cypress插件解决测试不稳定的痛点。插件可实现智能等待、数据预处理等能力,替代传统硬性等待,有效减少偶发性失败,提升测试效率和可维护性。文内包含具体实现方法与最佳实践。
|
7月前
|
存储 关系型数据库 测试技术
玩转n8n测试自动化:核心节点详解与测试实战指南
n8n中节点是自动化测试的核心,涵盖触发器、数据操作、逻辑控制和工具节点。通过组合节点,测试工程师可构建高效、智能的测试流程,提升测试自动化能力。
|
8月前
|
Web App开发 人工智能 JavaScript
主流自动化测试框架的技术解析与实战指南
本内容深入解析主流测试框架Playwright、Selenium与Cypress的核心架构与适用场景,对比其在SPA测试、CI/CD、跨浏览器兼容性等方面的表现。同时探讨Playwright在AI增强测试、录制回放、企业部署等领域的实战优势,以及Selenium在老旧系统和IE兼容性中的坚守场景。结合六大典型场景,提供技术选型决策指南,并展望AI赋能下的未来测试体系。
|
8月前
|
存储 人工智能 算法
AI测试平台实战:深入解析自动化评分和多模型对比评测
在AI技术迅猛发展的今天,测试工程师面临着如何高效评估大模型性能的全新挑战。本文将深入探讨AI测试平台中自动化评分与多模型对比评测的关键技术与实践方法,为测试工程师提供可落地的解决方案。
|
6月前
|
人工智能 自然语言处理 JavaScript
Playwright MCP在UI回归测试中的实战:构建AI自主测试智能体
Playwright MCP结合AI智能体,革新UI回归测试:通过自然语言驱动浏览器操作,降低脚本编写门槛,提升测试效率与覆盖范围。借助快照解析、智能定位与Jira等工具集成,实现从需求描述到自动化执行的闭环,推动测试迈向智能化、民主化新阶段。
|
8月前
|
人工智能 缓存 测试技术
Playwright进阶指南 (6) | 自动化测试实战
2025企业级测试解决方案全面解析:从单元测试到千级并发,构建高可用测试体系。结合Playwright智能工具,解决传统测试维护成本高、环境依赖强、执行效率低等痛点,提升测试成功率,内容从测试架构设计、电商系统实战框架、高级测试策略、Docker化部署、CI/CD集成及AI测试应用,助力测试工程师掌握前沿技术,打造高效稳定的测试流程。
Playwright进阶指南 (6) | 自动化测试实战
|
7月前
|
人工智能 数据可视化 测试技术
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
853 11
|
8月前
|
算法 测试技术 API
从自学到实战:一位测试工程师的成长之路
在技术快速发展的今天,自动化测试已成为提升职场竞争力的关键技能。本文讲述了一位测试工程师从自学到实战的成长之路,分享他在学习UI、APP和API自动化过程中遇到的挑战,以及如何通过实际项目磨炼技术、突破瓶颈。他从最初自学的迷茫,到实战中发现问题、解决问题,再到得到导师指导,逐步掌握测试开发的核心思维,并向测试平台建设方向迈进。文章总结了他从理论到实践、从执行到思考的转变经验,强调了实战、导师指导和技术服务于业务的重要性。最后,邀请读者分享自己的技术突破故事,共同交流成长。
|
8月前
|
资源调度 前端开发 JavaScript
Jest 测试实战指南
本文系统讲解如何使用 Jest 进行高效的 JavaScript 函数测试,涵盖环境搭建、测试用例编写、模拟函数与快照测试等内容,帮助开发者提升代码质量与测试效率。
278 0
|
10月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
1356 23