能测试工具概述——持续测试,阿里+头条+抖音+百度+蚂蚁+京东面经

进程是为了更好地利用CPU资源而定义的,用于分配系统资源、标识任务。进程是系统资源分配的最小单元,主要占用地址空间、全局变量、文件描述、硬件等资源。操作系统以多进程的方式完成多个任务,这样可以充分地利用系统资源。

当前主流性能测试工具中,LoadRunner支持多进程,但是这个工具的授权费用非常贵。另外,多进程方式占用的系统资源较多,进程间的调度开销较大,因此在性能测试中并不推荐使用多进程方式。

线程就不一样了,线程降低了上下文切换的消耗,提高了系统的并发性。线程就好比一个汽车生产车间里的多条生产流水线,每条生产流水线并发处理相同事务的工作。若在一个进程中启动多个线程,以处理相同逻辑,就实现了并发处理的效果。LoadRunner、JMeter都支持多线程并发访问模型,其中JMeter是一款开源的性能测试工具。

在性能测试过程中,常使用多线程模型来模拟并发访问,这样既可以完成并发访问,也可以充分地利用系统资源。协程是一个相对较新的概念,它通过用户控制完成调度,而不是通过CPU完成的,这样就避免了陷入内核级别的上下文切换造成的资源消耗,同时突破了线程在I/O上的性能瓶颈。协程不需要多线程的锁机制,基于线程实现调度。

Locust是基于协程访问模型的性能测试工具。从事性能测试工作的读者很多应该听说过LoadRunner,不过知道Locust的人估计就比较少了。这两款工具各有优势,在实际项目中具体选用哪一个要根据情况而定。

不过,在容器化技术盛行的当下,LoadRunner已变得不那么好用。LoadRunner与Locust都提供了UI的脚本编辑和录制、场景设置等功能,这导致在容器上使用它们时只能实现并发模拟,脚本的编写则需要在客户端的PC上完成。对于容器上的性能测试工具,我们希望它具有以下功能。
支持在PC上编辑脚本并调试。

支持在容器上编辑脚本并调试。

支持在服务器端进行性能测试。

拥有服务器端的性能场景设置功能。

拥有服务器端无UI的场景设置功能。

能和CI(Continuous Intergration,持续集成)系统集成。

综上所述,强烈推荐使用Locust。即使不在容器上使用,Locust也是不错的选择。Locust是一款开源的性能测试工具,支持使用Python代码定义用户行为,并采用纯Python描述测试脚本。

使用Locust可以模拟百万级并发用户访问系统。除HTTP/HTTPS之外,Locust还可以用来测试使用其他协议的系统,只需要采用Python调用对应的库并对请求进行描述即可。

Locust还是分布式的用户负载测试工具,可用来对网站或其他系统进行负载测试。使用Locust可以测试出系统并发处理的用户量,这完全是基于时间的,因此单台机器可能支持几千个并发用户。

LoadRunner与其他采用进程和线程的测试工具则很难在单台机器上模拟较高的并发压力。相比许多其他事件驱动型应用,Locust不使用回调,而使用轻量级的处理方式——协程。

协程是一种用户态的轻量级线程,由用户控制。协程拥有自己的寄存器上下文和栈,在切换进行时,协程会将寄存器上下文和栈保存到其他位置。等到切换回来时,协程不仅可以恢复保存的内容,从而降低内核切换的消耗,还可以不加锁地访问全局变量。协程避免了系统级资源的调度,因而大幅提高了单台机器的并发能力。

在GB/T 25000.10的八大质量特性中,性能效率这个独立的质量特性包含时间特性、资源利用性、容量、性能效率的依从性等质量子特性。利用技术手段检验信息系统性能效率的过程称为性能测试。通过性能测试,我们可以评估信息系统与性能效率要求的符合程度。信息系统通常包含以下方面的信息。

并发用户数:这是针对服务器而言的,指在同一时刻与服务器进行交互的在线用户数量。在压力测试期间,并发用户数指同时执行一个或一系列操作的用户数量,或同时执行某个脚本的用户数量。不同场景下的并发情况是不一样的,在实际的测试工作中,要根据具体的需求设置并发用户数。

最大并发用户数:用来描述信息系统的最大服务能力。

吞吐量:单位时间内系统所能处理的请求数量。对于交互式系统,吞吐量的单位通常是字节数/秒、页面数/秒或请求数/秒;对于非交互系统,吞吐量的单位通常是事务数/秒。

响应时间:分为用户响应时间和系统响应时间两种。用户响应时间指用户所能感受到的系统对其操作的响应时间。人的眼睛由于“视觉暂留”现象只能察觉0.1s以上的视觉变化,因此用户响应时间只要不超过0.1s即可。系统响应时间指计算机对用户的输入或请求做出应答的时间。压力测试一般站在用户的角度考虑问题,因而衡量的是用户响应时间。

资源利用率:描述信息系统性能状态的一系列数据指标,包括被测服务器的CPU利用率、内存使用率、磁盘I/O速率、网络吞吐量等。

等待时间:信息系统用户在进行业务操作时发出的两个连续请求的时间间隔。

性能测试用来评估系统的服务能力。性能测试主要分为以下3种。
负载压力测试:通过不断给系统增加负载,观察系统的性能变化并确定系统在满足一系列性能指标(包含响应时间、CPU利用率、内存使用率、网络吞吐量、磁盘I/O速率等,其中关键的性能指标是响应时间、CPU利用率和内存使用率)的前提下所能承受的最大负载。

失效恢复测试:针对提供系统冗余备份或负载均衡机制的系统,模拟系统局部发生故障后,在系统仍有大量用户持续访问的情况下,对系统服务能力的恢复进行测试,主要用来评估系统的健壮性和可恢复性。

疲劳测试:在保证总业务量的情况下长时间运行系统的测试,主要用来评估系统长时间、无故障、稳定运行的能力(测试周期通常是7×24小时、3×24小时或1×24小时)。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

软件测试面试小程序

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值