使用Locust进行APP服务端并发测试

发表于:2020-2-18 10:17

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:王练    来源:51Testing软件测试网原创

  一、摘要
  APP性能测试,对于服务端的压力其实和Web差别不大,通过JMeter/Loadrunner进行服务器的并发请求即可完成。
  基于Python协程的Locust是一款优秀的性能测试工具,单机并发量远超于JMeter和Loadrunner。本文通过实例介绍Locust的使用,通过解决产品开发中的实际问题作为Locust实战的说明,最后结合该实例总结Locust的使用方法,为其他需要使用Locust的工程师提供思路。
  二、Locust简介
  Locust是一款开源的Web性能测试框架。该单词的原意是蝗虫,原作者之所以选择这个名字,估计也是听过这么一句俗语,“蝗虫过境,寸草不生”。
  Locust工具生成的并发请求就跟一大群蝗虫一样,对我们的被测系统发起攻击,以此检测系统在高并发压力下是否能正常运转。在Locust测试框架中,测试场景是采用纯Python脚本进行描述的。对于最常见的HTTP(S)协议的系统,Locust采用Python的requests库作为客户端,使得脚本编写大大简化,富有表现力的同时且极具美感。而对于其它协议类型的系统,Locust也提供了接口,只要我们能采用Python编写对应的请求客户端,就能方便地采用Locust实现压力测试。从这个角度来说,Locust可以用于压测任意类型的系统。
  主要特点如下:
  1、使用纯粹的Python编写脚本。
  用Locust就是写Python代码,这点比其他性能测试工具要先进。事实上界面点击代替编程,本身就是伪命题。不会编程的用不好JMeter,会编程的更喜欢写纯粹的代码。
  2、单机可支持千级并发压力,且支持分布式。
  Locust采用协程并发,单机比LoadRunner、JMeter的并发都会高很多。JMeter一个并发用户一个线程,当用户变多时,本身的性能会急剧下降。
  3、Web管理界面。
  内嵌的Web服务,并且支持扩展。
  4、可以测试任何系统。
  基于协议,通过协议模拟,可尝试任何系统。
  5、简单耐玩。
  Locust核心代码只有几百行,简单。扩展性强,有很强的二次开发属性,耐玩性很高。
  关于Locust下载、安装和运行Demo测试的方法,可以参考官网的示例,以及网络上其他的信息。下面以一个实际的例子说明如何使用Locust进行并发测试
  三、并发测试需求说明
  需求说明:测试的App是面向C端客户的理财类软件,目前上线一个类似红包的空投优惠卷拉新活动,通过红包的发放宣传App。现在需要测试并发抢该优惠卷红包,是否存在问题。
  需求分析:并发抢红包,在不考虑服务器并发性能的基础上,需求很简单,就是确认在并发的过程中,一个用户只能抢一次,红包不能被多抢。


      ......
查看更多精彩内容,请点击下载:

版权声明:本文出自《51测试天地》第五十六期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号