13. 服务端性能测试

说到服务端性能测试就不得不提到上述流程图,言简意赅的概括了性能测试中所需要做到的内容。上面是比较全的指标。但实际工作中的每一次性能测试可能都有一定的侧重点,比如在trace的测试中可能更看重的两个版本之间的性能对比;在redis的测试中更注重的单机的双写qps上限;在函数计算的测试过程中更注重在一定的qps压力系统的稳定性;而在discovery的压测过程中可能更注重的复现线上问题 以及 定位系统瓶颈。

压力测试的过程往往需要反复是比较耗时的过程,因此一定有每次压测的侧重点。而在目前大部分的场景测试中,可能事务的响应时间可能并不作为重点关注的事项。也有可能之前的测试业务在这点上并不关心。

性能指标

在服务端性能测试中通常我们需要关注的指标分为客户端的指标以及服务端指标;

1.客户端也就是我们产生压力的机器;

2.服务端就是我们的测试机器;

在服务端我们需要关注机器的:

1.cpu、mem负载情况;

2.网络链接数占用情况;

3.磁盘的读写;

4.网卡流量吞出等;

更进一步如果我们要做相应的性能分析和优化 可能需要关注 机器上的线程数;gc耗时等。

在性能指标这块,其实整个类别和我们在做移动端的测试情况大底相同。只不过这里的测试进程变成了一个可以对外提供http服务的进程,所以可能需要额外更加关注网络连接的使用;网卡流量的吞吐。

测试流程

测试开始前要确定:

1.梳理待测机器的规格,诸如服务器的cpu核数以及内存大小、缓存集群的大小、消息队列的容量限制

2.梳理压测接口的请求链路,确定链路上哪些是第三方应用,如果涉及第三方调用 可以先提前和第三方进行沟通 明确第三方资源ready;压力可以真实到达我们关注的待测服务。(一般会直接ip调用在内网,移除网关等依赖)

3.明确压测场景,场景中涉及的接口。准备相应的压测脚本以及测试数据。在压测过程中,一般来说测试数据是比较难准备的,尤其是对大QPS,需要百万级别的数据,因此造数也是在压测过程中的关键部分。

4.明确压测终止的条件:是客户端出错;还是某个资源达到60%;还是其他;

5.明确告警、日志等观测组件是否配置ok;便于在压测过程中分析相应的现场

测试过程:

1.从一个基准并发线程数开始压测并持续压测一段时间5-10分钟;观察服务端的请求qps以及系统资源使用情况;并且关注客户端的错误率 以及请求的处理时间tps;保证客户端无错误;

2.然后递增逐渐增

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

进击的测试开发工程师2.0 文章被收录于专栏

本专栏专注于从零到1的接口自动化测试框架开发过程分享、Android端专项测试技术分享,服务端专项测试技术分享 以及 基于开源框架进行二次开发的经验分享

全部评论

相关推荐

零售-平台产品与研发中心和其他面经说的一样,面试官态度非常好很温和,面东子的尽管放心没有压力。其实八股问的也很简单很基础。但lz自己不争气答成一坨。对测开岗位的认识询问实习和项目。但都和测开不是很对口,面试官也就问问完事。登录系统你准备怎么测试tcp的四次挥手Linux常用指令,比如查询文件等等分布式锁Redis和MySQL的区别。用没用过MySQL。(HR准备追问一些sql语句的,但lz回答没用过)应该还有一些忘记了。我答不上来但面试官确实已经是在努力找简单问题来问手撕是 去除有序数组里2个以上的重复 和 最长回文字符串反问:因为我知道面成一坨所以就直接问面评对以后继续投递有没有影响。答:没有最后聊无可聊了还问了一些海硕学制的事和你平时怎么用ai(因为实习是大模型相关)的当聊天了。邮件时长说的45min但最后实际上有一个多小时。lz是双非本海硕,都学的通信。再加上自己摆烂,对转码方面纯三天打鱼十天晒网。八股和刷题都不看,一直心存不切实际的侥幸摸鱼摸到九月底。20号做的笔试,28号也就是昨天接到电话约面,我自己都没想到jd能进面,当时脑子不清醒没考虑到马上要放国庆了,直接说的后面都有空,结果果不其然就给我定的第二天29号面。只有一天时间准备,人直接麻了,前面摸鱼的每一天都变成了一巴掌打脸上,只能说活该挂掉。这还是lz秋招接到的第一个面试,就当积累面试经验了。总的来说对于有准备的人一面还是不算难,xdm加油吧
查看8道真题和解析
点赞 评论 收藏
分享
评论
点赞
5
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务