性能测试工具Locust的入门介绍

发表于:2024-2-04 09:50

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

 作者:虫师    来源:博客园

  一个开源性能测试工具。使用Python代码来定义用户行为。用它可以模拟百万计的并发用户访问你的系统。
  为何突然关注性能测试工具?其实,我只是单纯对Locust工具本身感兴趣而已。
  1、它与目前主流的LoadRunnerJmeter玩法都不一样。
  2、它完全基于Python开发,用Python来编写用户行为。
  嗯,如果想用好它的话,你必须对Web开发有一定的认识。而且还要熟悉Python开发。
  官方网站:http://locust.io/
  Locust安装
  1、安装Python:
  官方:https://www.python.org/
  安装Python2或Python3
  2、安装Locuse
  2.1,通过pip命令安装/>pipinstalllocustio
  2.2,通过GitHub上克隆项目安装(Python3推荐):https://github.com/locustio/locust
  3、安装pyzmq
  IfyouintendtorunLocustdistributedacrossmultipleprocesses/machines,werecommendyoutoalsoinstallpyzmq.
  如果你打算运行Locust分布在多个进程/机器,我们建议你也安装pyzmq.
  通过pip命令安装。/>pipinstallpyzmq
  4、安装成功,CMD敲入命令验证。/>locust--help
  编写简单的性能测试脚本
  创建load_test.py文件,通过Python编写性能测试脚本。
  fromlocustimportHttpLocust,TaskSet,task
  classUserBehavior(TaskSet):
  @task(1)
  defbaidu(self):
  self.client.get("/")
  classWebsiteUser(HttpLocust):
  task_set=UserBehavior
  min_wait=3000
  max_wait=6000
  创建UserBehavior()类继承TaskSet类,为用户行为。
  创建baidu()方法表示一个行为,访问百度首页。用@task()装饰该方法为一个任务。1表示一个Locust实例被挑选执行的权重,数值越大,执行频率越高。在当前UserBehavior()行为下只有一个baidu()任务,所以,这里的权重设置为几,并无影响。
  WebsiteUser()类用于设置性能测试。
  task_set:指向一个定义了的用户行为类。
  min_wait:用户执行任务之间等待时间的下界,单位:毫秒。
  max_wait:用户执行任务之间等待时间的上界,单位:毫秒。
  运行性能测试
  切换到性能测试脚本所在的目录,启动性能测试:
  .../>locust-fload_test.py--host=https://www.baidu.com
  [2016-11-1922:38:16,967]fnngj-PC/INFO/locust.main:Startingwebmonitorat*:8089
  [2016-11-1922:38:16,967]fnngj-PC/INFO/locust.main:StartingLocust0.7.5
  load_test.py为测试脚本,https://www.baidu.com为测试的网站。
  打开浏览器访问:http://127.0.0.1:8089
  Numberofuserstosimulate设置模拟用户数
  Hatchrate(usersspawned/second)孵化率?不知道怎么翻译,每秒产生(启动)的用户数。
  点击Startswarming开始运行性能测试。
  如果引起了你的兴趣,剩下的你自个玩吧!难点在性能测试脚本的编写上。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号