服务器测单机性能,服务端的性能测试(二)

本文章转载于搜狗测试

通过上一篇的讲解,我们已经了解了一些性能测试的指标了,也知道性能测试的主要手段是通过发生出一些模拟真实业务的请求来造成压力对被测系统进行不停的加压,在这同时监控被测服务器的各项性能指标,分析被测服务器在不同压力的测试下的表现,找出其可以突破的性能瓶颈。

那么,如何对系统进行性能测试,又如何对服务器的各种指标数据进行监控呢?这里,就不得不提到性能测试工具了。

在这之前,我们可以尝试着先试想下在没有性能测试工具的前提下,如何对一个系统进行一次压力测试

假设现在我们要对一个接口进行一次性能测试,模拟在15个用户在线使用这个接口返回的数据是否可以在一个可接受的时间内返回正确的数据。

理所当然的,我们可以想到测试的必要条件有如下几点:

15个线程同时并发运行,产生访问压力

1个线程协调程序,对15个线程的协调控制,实现并发操作

1个数据记录线程,对每一个线程的操作耗时数据进行记录、监控、汇总和分析

1个服务器资源监控线程,对15个线程访问服务器的时长和服务器的性能指标进行汇总,计算其平均值

可以看出,要通过手动来进行性能测试,过程中上极其繁琐,需要投入的时间和资源非常多,而且这仅仅是一个很简单的场景,没有进行一些复杂操作。设想,如果要进行数万并发,服务器有好几十台,显而易见,这种情况下是完全不可能通过一个简单的程序或者脚本可以解决的。这就是性能测试工具存在的原因和用处。

性能测试工具市面上有很多,除了我们耳熟能详的LoadRunner、Jmeter等测试工具,还有一些知名度不高但是有一些自己优点的性能测试工具,比如今天我给大家推荐一款有特点性能测试工具:Locust

目前阶段,Locust工具在国内的普遍性还是很低的,多数测试同学可能之前都没有了解过这款工具。为了便于理解,我先将Locust和LoadRunner、Jmeter这类大众耳熟能详的性能测试工具进行简单对比。

a3a0890bc7d6

那么对于这个工具的优缺点大家一目了然。Locust的最大优点就是这个工具可以实现一个单机超高的并发量。一个性能测试的工具核心就是要有一个好的压力发生器,那么不同于LoadRunner、Jmeter这些工具,Locust采用的并发机制为协程。使用多线程模拟多个并发用户时候,线程数会随着并发数量的增加而一直增加,但是在不同的线程之间来回切换是需要占用资源的,线程的等待和io的阻塞会无法避免的导致并发的效率下降。正是因为如此才用进程和线程的机制会难以模拟出较高并发的的压力,而协程的优势则在于,避免系统的资源调度,从而大幅的提高了性能。正常的情况下单台测试机器可以产生数千的并发压力,这是LoadRunner、Jmeter都无法实现的。

另一方面的优点是模拟用户操作的便捷,对测试脚本的友好性,Locust采用Pure Python脚本描述,对于测试同学十分容易接受,并且http请求完全基于Requests库。了解Requests库的同学都知道,python官方明确推荐使用的库。简洁易用但是功能却十分强大,很多其他编程语言的http库都会借鉴Requests的思想和模式。个人觉得这是最好用的http库。除了http协议,Locust也可以测试其它任意协议,只需使用Python调用对应的库进行发送请求即可。

有了一个相对不错的引擎,外部的包装就显得很简陋,对于Locust的缺点也是很明显:在性能指标监控和测试报告图表方面比较缺失,不过好在是Locust的核心代码数量少,并且开源的,有兴趣的同学可以将其包装并且封装成自己想要的样子。

好了Locust先介绍到这儿,如果有同学希望了解一下Locust的安装到使用的具体实例,可以在下方多多留言,要求强烈的话下期和大家一起搭建环境并且配有实例讲解哦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值