性能常识 接口的性能测试应该怎么起步?

醋精测试媛 · 2021年08月31日 · 最后由 醋精测试媛 回复于 2021年09月06日 · 5518 次阅读

在百度上搜了 “接口的性能测试”, “接口的性能测试 +requests”,“用 request 进行性能测试” 等,发现不然就是纯接口测试,不然就是用工具,比如 jmeter,很少看到有相关的入门知识。

不禁开始疑惑,难道性能测试只能通过工具来做?性能测试需要掌握一些什么?作为一个突然被告知做接口的性能测试的小白,有点不知道怎么下手了

  1. 一开始是想手写进程,但是怕坑会比较多,以为会有现成的框架,但是没找到,如果有希望大家推荐一下
  2. 请问性能测试可以用代码实现吗?还是现在只能用工具,如果是用工具,应该用什么呢
  3. 请问性能测试应该测试的地方有哪些?我从一个博客上得知:

在接口测试过程中,除了要考虑产品需求的正常、异常、数据正确性等显性功能需求质量外,还有很多隐性需求质量需要关注,以性能测试为例,常见需要关注的检查项包括,但不限于:

  • 单用户登录的响应时间是否小于 3 秒;
  • 单用户登录时,后台请求数量是否过多;
  • 高并发场景下用户登录的响应时间是否小于 5 秒;
  • 高并发场景下服务端的监控指标是否符合预期;
  • 高集合点并发场景下,是否存在资源死锁和不合理的资源等待;
  • 长时间大量用户连续登录和登出,服务器端是否存在内存泄漏。

可是除了响应时间可以通过 request 的 timeout 来实现之外,其他的不知道怎么做,比如说资源死锁和内存泄漏,真的可以测出来吗?还是有其他的指标。

最佳回复

收货到了很多如何了解性能测试的方法,谢谢大家。

如果以后有其他的资料会再补充。

共收到 13 条回复 时间 点赞

如果以后有其他的资料会再补充。

收货到了很多如何了解性能测试的方法,谢谢大家。

如果以后有其他的资料会再补充。

性能测试我认为应该是理解什么是性能测试,性能测试的目标等等概念,其核心是设计测试方案,发现性能问题,分析排查性能问题。
工具只是工具,在进行测试时做一定的选型,为什么选这个,而不是选哪个。脱离工具就无法进行性能测试吗?并不是,性能测试客户端,可以通过编码实现,监控可以通过 linux 命令。工具是使开展性能测试更加方便。不要本末倒置。
如何发现性能问题呢?

  • 通过性能测试工具返回数据,比如 QPS,耗时等等
  • 通过服务器的资源消耗数据,比如 cpu,内存,io,负载,带宽等等

如何排查性能问题呢?

  • 被压测服务、中间件的日志等
  • 被压测服务、中间件的资源消耗数据
  • linux 命令,以及其他命令等查看数据

上述发现和排查问题可能不完整,但是最基本方法。

难道性能测试只能通过工具来做?

大部分情况下,用工具做会简单很多。写代码也可以,但你要写不少代码,比性能自动化多不少。而性能测试对于工具的要求其实比较通用,所以大部分工具本身可以满足,不需要从零写代码。

另外,性能测试工具,一般指的是发起压力的工具(如 jmeter)。实际完成性能测试,还需要监控排查的工具(如 jprofile、grafana)。你说的死锁什么的,要通过监控工具来找。

性能测试需要掌握一些什么?

你这个要了解的是 “性能测试怎么做” ,相当于一些基本概念和理论。楼上说了不少文章,可以去看看。

作为一个突然被告知做接口的性能测试的小白,有点不知道怎么下手了

想系统入门一个东西,不要靠搜索引擎。搜索引擎可以找到的是最热门的,但不一定是最系统的。一般技巧都是热门,但概念理论都不热门。所以你需要的是找一些系统点的课程或者书去学习。

性能测试的关键,不是如何写脚本、如何用工具、如何监控。

性能测试的关键是:如何理解性能目标并规划性能测试模型,建议看看我的两篇文章:

使用过的性能测试工具有 LoadRunner、Jmeter 以及阿里云 PTS 性能测试平台
如果项目不在阿里云部署,用不了 PTS 平台
可以使用 Jmeter 工具做性能测试
性能指标监控我知道的,有 ServerAgent、nmon、grafana,选择一个来监控性能指标

回复

谢谢大佬!

回复

可以看看社区内多数人比较推荐的极客时间 高楼- 性能测试实战 30 讲

仅楼主可见
MarvinWu 回复

请问相关的工具是什么呢

就不限于的那几条,哪里有难点呢?
1、响应时间相关的工具会给
2、单次操作存在冗余请求,抓个包挨个看就行,那有没有什么请求是重复了或者当前操作并不需要的。
3、死锁,资源等待无非是先看资源有没有异常,出现异常增长了再去查日志,deadlock 写的明明白白,不可能不认识。线程的常见状态也就几种,思路一般是先看卡在哪了,在看当前的场景卡在这合理不合理,什么请求导致线程卡在这了。
4、内存泄露、内存溢出,看 JVM,看日志
发现问题后该怎么解决还是找开发吧,想直接调优没积累不行的。
上面说的这些需要具备的基础能力是读日志,不能看见一堆英文就想逃。
再就是找一些别人分析性能的文章学习学习,套路摸透了就不难了。

Yh。 回复

谢谢~我去研究一下

现有框架可以看看 locust,资源的各个指标监控可以搭一个 grafana+prometheus。死锁或者内存泄漏这种就需要你在跑压测出问题的时候去分析了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册