如何自学性能测试?

开始之前给大家推荐一个免费刷题的小程序,你去面试能被问到的题这里都有。

大家好,我是立志做好测试的测试小志

最近小志在某平台上刷到了一些近期的面经,连最基础的功能测试工程师都会问到性能测试了。一个字”卷起来了!”

其实一些创业公司中做性能测试的项目并不多。有些公司的性能测试也只是根据技术合同的要求,对开发过程中的接口压上几十个并发来达到交付条件。

其实真正做性能的主要集中在一些大厂。他们会有专门的性能测试工程师来专门负责性能测试

这种就比较专业了,薪水也相对较高,丝毫不逊色于开发。工作内容涉及到全链路监控、数据库,中间件压测,性能瓶颈分析,协助开发调优等等。

而很多人就因为性能测试入门难度高(需要掌握C语言、Java语言、网络知识了解:如TCP/IP七层协议,性能测试工具使用等)就放弃了性能测试的学习。

但是,工作中用不到就不代表没有学习的必要了。学习性能测试可以更好的了解系统架构方面的知识。像数据库、中间件、网络、系统硬件、虚拟机、编程技术等。而学会的这些知识又能帮助你更好的做好性能测试。达到相辅相成的作用。就算是在面试中,能跟面试官聊到你掌握的系统架构知识、性能知识这些。都是很棒的加分项。

接下来我们就聊聊什么是性能测试?性能测试需要掌握哪些基础?实际工作过程中如何做性能测试,以及小白应该如何上手性能测试的学习?

常见的性能场景有哪些,什么是性能测试?

生活中最常见的性能场景,比如淘宝双11、春晚红包雨、12306春运购票等等。那么什么是性能测试呢?在性能测试环境下(尽量模拟生产环境),运用自动化工具模拟系统平常日和高峰期情况下的性能表现,来获取性能指标(如相应时间、tps、资源使用等)的过程。

性能测试是验证出被测系统在高并发、长时间、大压力的情况下的性能瓶颈。通过对性能瓶颈进行性能分析,性能调优解决掉性能瓶颈。是木桶效应中找出短板补齐的过程。

性能测试的常用术语:

  1. 并发:所有用户在同一时间做同一件事,这种操作必须针对同一类型的业务

  2. 并发用户数:同一时间与服务器进行交互的在线用户数量

  3. 平均事务响应时间:从客户端发出请求得到响应的整个过程时间。这个过程从客户端发出请求开始计时,到客户端收到从服务端返回响应结束计时结束。

  4. 成功率:性能测试过程中,事务处理成功的交易量

  5. TPS:(transaction per second):每秒处理交易或者事务的笔数。衡量系统处理能力的重要标准

  6. 吞吐量:单位时间内网络上传输的数据量

  7. 点击率:每秒钟用户向web服务器提交的http请求数

  8. 服务器资源:内存使用率、CPU使用率、磁盘使用率

  •  CPU包括:user%:用户态使用的cpu时间比;sys%系统态使用的CPU时间比;id%:空闲的CPU时间比;wa%:CPU等待磁盘写入完成的时间 
  • 内存使用率=(1-空闲内存/总内容大小)*100%。一般至少要有10%可用内存,内存使用率可接受上限为 85%.  MemTotal:总内存大小、MemFree:空闲内存大小

  • 磁盘I/O:磁盘主要用于存取数据,一般使用%DiskTime度量衡量磁盘读写性能

实际工作过程中如何做性能测试?

前期,需要分析交易,针对筛选出的几条交易逐条分析为什么针对该交易做性能测试。然后搭建性能测试环境,一般在服务器上进行压测(产生压力的机器),在被测环境中装上性能测试工具,了解清楚被测系统的软硬件环境后(判断是否符合压测环境,也方便根据了解的配置对压测结果进行性能瓶颈分析),调研性能指标,准备性能测试数据。

交易:交易分为业务交易技术交易业务交易就是一次完整的业务操作,例如进行一次取款、查询、操作。技术交易是指程序→程序,或者程序→数据库的过程。一般的一笔业务交易由多笔技术交易组成。

中期,根据前期的准备工作,设计出性能测试场景(分为单交易基准测试场景、单交易负载测试场景、混合交易测试场景、稳定性测试场景),使用性能测试工具开发脚本、调试脚本、增强脚本。

后期,收集性能测试结果,分析结果(有哪部分指标没有达标),出现了性能瓶颈就需要对性能瓶颈进行分析调优,使其达到设置的性能目标。

常见的性能瓶颈分为:硬件上的瓶颈、软件上的瓶颈

硬件上的瓶颈一般指的是CPU、内存、磁盘的问题,服务器硬件瓶颈、网络瓶颈等

软件上的瓶颈指的是:操作系统的瓶颈,中间件瓶颈(数据库、Web服务器等等、tomcat),应用瓶颈(数据库设计、SQL语句)等

Eg:Mysql需要找出有问题的语句:错误语句和报警、使用临时表语句、前十慢语句、慢语句、全表搜索语句等

小白如何自学性能测试?

先学习性能测试的基础理论(包括但不局限于上述的常用术语),其次就是掌握一种性能测试工具,Jmeter、Loadrunner都可以。

其次学习性能监控工具、命令(JVM、天兔等),学习上文提到的软硬件瓶颈中的相关理论知识

然后就是多学习案例,分析掌握每一种指标可能存在的瓶颈、性能问题。最后就是找一家可以上手的企业实践出真知了。

最后放一波高频基础性能面试题

  • 如何分析性能测试场景?

  • 解释性能测试中的某个常用语

  • 交易是什么?为什么针对该交易做性能测试?

  • 如何管理性能测试的数据?

  • 各场景中的并发量是多少?为什么并发量要梯形增加,不能一下加到最高吗?

  • 使用什么工具收集结果?如何分析性能结果的?

  • 性能测试什么时间介入的?做了多久?

  • 性能测试过程中遇到了什么困难?如何克服的?

最后:我这里有一个学习交流群,如果你有在学习提升找不到资料,没人答疑解惑时,请及时加入群: 759968159,里面有各种测试开发资料和技术可以一起交流哦。

下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述

在这里插入图片描述

  • 25
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值