接口性能测试实战小结

本文涉及的产品
性能测试 PTS,5000VUM额度
简介:

背景

有一个接口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,如需转载请自行联系原作者
相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
70 24
除了postman还有什么接口测试工具
最好还是使用国内的接口测试软件,其实国内替换postman的软件有很多,这里我推荐使用yunedit-post这款接口测试工具来代替postman,因为它除了接口测试功能外,在动态参数的支持、后置处理执行sql语句等支持方面做得比较好。而且还有接口分享功能,可以生成接口文档给团队在线浏览。
74 2
Socket.IO介绍,以及怎么连接测试Socket.IO接口?
Socket.IO 是一个用于浏览器和服务器间实时双向通信的库,支持低延迟消息传递、跨平台运行及自动重连。文章介绍了其特点与调试需求,并详细说明如何使用 Apifox 工具创建、连接、发送/接收 Socket.IO 事件,以及团队协作和调试技巧。掌握这些技能可提升实时应用开发效率与质量。
Python测试淘宝店铺所有商品接口的详细指南
本文详细介绍如何使用Python测试淘宝店铺商品接口,涵盖环境搭建、API接入、签名生成、请求发送、数据解析与存储、异常处理等步骤。通过具体代码示例,帮助开发者轻松获取和分析淘宝店铺商品数据,适用于电商运营、市场分析等场景。遵守法规、注意调用频率限制及数据安全,确保应用的稳定性和合法性。
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
从Postman到Apipost:我的动态参数测试实战踩坑记
作为一名全栈开发工程师,在开发用户中心模块时,我遇到了复杂参数API测试的挑战。最初使用Postman时,发现其在生成动态参数(如邮箱、手机号和日期)时存在诸多问题,导致测试效率低下甚至出错。例如,随机生成的邮箱格式无效等 后来,CTO推荐了Apipost,它提供了更智能的参数生成方式:支持真实邮箱、符合规范的手机号以及合法日期范围,极大提升了测试效率和准确性。通过对比,Apipost在处理复杂动态参数方面明显优于Postman,减少了维护成本并提高了团队协作效率。现在,我们已全面切换到Apipost,并利用其「参数组合测试」功能发现了多个边界条件bug。
一个测试工程师的实战笔记:我是如何在Postman和Apipost之间做出选择的?
优秀的API测试工具应该具备: 分层设计:既有可视化操作,也开放代码层深度定制 场景感知:自动识别加密需求推荐处理方案 协议包容:不强迫开发者为了不同协议切换工具 数据主权:允许自主选择数据存储位置
74 7
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
78 10
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
微信公众号接口测试实战指南
微信公众号接口测试是确保系统稳定性和功能完整性的重要环节。本文详细介绍了测试全流程,包括准备、工具选择(如Postman、JMeter)、用例设计与执行,以及常见问题的解决方法。通过全面测试,可以提前发现潜在问题,优化用户体验,确保公众号上线后稳定运行。内容涵盖基础接口、高级接口、微信支付和数据统计接口的测试,强调了功能验证、性能优化、安全保护及用户体验的重要性。未来,随着微信生态的发展,接口测试将面临更多挑战和机遇,如小程序融合、AI应用和国际化拓展。
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
98 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等