基于python的性能负载测试Locus-2-快速入门

快速入门

Example locustfile.py

这是一个快速入门的小例子 locustfile.py:

from locust import HttpLocust, TaskSet

def login(l):
    l.client.post("/login", {"username":"ellen_key", "password":"education"})

def index(l):
    l.client.get("/")

def profile(l):
    l.client.get("/profile")

class UserBehavior(TaskSet):
    tasks = {index:2, profile:1}

    def on_start(self):
        login(self)

class WebsiteUser(HttpLocust):
    task_set = UserBehavior
    min_wait = 5000
    max_wait = 9000

我们这里定义了几个locust的任务,这些任务传入了一个参数(一个Locust的实例)并且可以被正常调用。这些任务被聚集在tasks属性里的名为TaskSet的类中。我们还定义了一个名为HttpLocust的类,它代表一个用户,我们定义了一个虚拟用户在执行不同任务之间的等待时间,就像TaskSet类应该定义用户的“行为”。TaskSets可以被嵌套。

HttpLocust类继承了Locust类,并增加了一个从属性,这个属性是HttpSession的实例,用来发起Http请求。

另外我们可以定义tasks,这个因为使用了@task装饰器显的更加方便。下面的代码和上面的代码等价。

from locust import HttpLocust, TaskSet, task

class UserBehavior(TaskSet):
    def on_start(self):
        """ on_start is called when a Locust start before any task is scheduled """
        self.login()

    def login(self):
        self.client.post("/login", {"username":"ellen_key", "password":"education"})

    @task(2)
    def index(self):
        self.client.get("/")

    @task(1)
    def profile(self):
        self.client.get("/profile")

class WebsiteUser(HttpLocust):
    task_set = UserBehavior
    min_wait = 5000
    max_wait = 9000

Locust类(和HttpLocust一样,因为是它的子类)如同其他的用户行为,也可以定义最小和最大的等待时间-根据m虚拟用户-任务之间的等待时间(最小等待和最大等待)

启动 Locust

如果上述文件命名为locustfile.py并且我们执行命令的路径和这个文件在同级目录下,那么久可以通过下面的命令来启动locust

locust --host=http://example.com

如果locust文件放置在其他地方:

locust -f ../locust_files/my_locust_file.py --host=http://example.com

如果需要在多个进程下分布式运行Locust,我们可以通过“-master”启动一个主进程:

locust -f ../locust_files/my_locust_file.py --master --host=http://example.com

然后可以启动任意数量的从进程:

locust -f ../locust_files/my_locust_file.py --slave --host=http://example.com

如果我们想在多个机器上分布式运行locust,也可以在启动从服务器的同时定义它归属的主服务器(如果只是在一台机器上分布式运行locust,就不需要这样做,因为主服务器默认为127.0.0.1)

locust -f ../locust_files/my_locust_file.py --slave --master-host=192.168.0.100 --host=http://example.com

PS:

查看所有功能选项

locust –help

打开Locust的页面接口

如果你已经通过上述任一命令启动了Locust,那么接下来应该打开浏览器并指向http://127.0.0.1:8089(如果在本地运行Locust)。然后呈现在你面前的将是下面一幅华丽的页面。

时间: 2024-08-22 17:34:01

基于python的性能负载测试Locus-2-快速入门的相关文章

基于python的性能负载测试Locust-1 简介

官网: http://locust.io/GitHub: https://github.com/locustio/locust 简介 Locust 是一个开源负载测试工具.使用 Python 代码定义用户行为,也可以仿真百万个用户.Locust 是非常简单易用,分布式,用户负载测试工具.Locust 主要为网站或者其他系统进行负载测试,能测试出一个系统可以并发处理多少用户.Locust 是完全基于时间的,因此单个机器支持几千个并发用户.相比其他许多事件驱动的应用,Locust 不使用回调,而是使

基于Python ddt, selenium数据驱动测试实例1

#!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2015-04-27 @author: beyondzhou @name: logintest.py ''' import unittest from ddt import ddt, data, unpack from selenium import webdriver import os import time from selenium.common.exceptions imp

artillery强大灵活的负载测试套件

artillery是基于nodejs 编写的负载测试套件支持http&&socket.io&&websockets&&kinesis&&hls 包含以下特性 多协议支持(http,websocket,socket.io,kinesis,hls) 场景化,支持复杂场景测试(web app,api,电子商务) 负载测试&&功能测试 性能指标 脚本话(使用js 编写扩展,同时也可以直接使用npm包) 集成 statsd,开箱即用的实

python快速入门——进入数据挖掘你该有的基础知识

这篇文章是用来总结python中重要的语法,通过这些了解你可以快速了解一段python代码的含义 Python 的基础语法来带你快速入门 Python 语言.如果你想对 Python 有全面的了解请关注本博客Python的文章,这篇文章也可以当作复习,自己查漏补缺,读者可以在留言区分享自己的 Python 学习和使用心得. 首先聊一下Python的意义 要学好数据分析,一定要掌握 Python 吗?我想,要想学好数据分析,你最好掌握 Python 语言.为什么这么说呢? 首先,在一份关于开发语言

基于python adb 命令写的小小测试安卓性能压力的脚本

今天闲来无事,写了一个基于Python的脚本,主要实现脚本运行adb shell命令,后期如果需要其他功能,依旧可以在此基础上进行扩展.废话不多说,上脚本,截图.源码在下边. os test_adb_port():     os.system()     i = ().readline()     j = i.split()[-]     c = j.replace(, )     = os.system(%c)     os.system()     os.system() test_test

性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据

基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据   by:授客 QQ:1033553122 实现功能 测试环境 环境搭建 使用前提 使用方法 运行程序 效果展示 实现功能 无需在被监控主机上安装代理,一键对Linux远程服务器不同主机执行性能监控.性能数据采集命令,并实时展示 支持跨堡垒机收集实时性能数据(注:定制化开发,非通用) 支持docker容器(因为程序实现是从docker容器内部获取性能数据,所以目前仅支持 CPU,内存,I/O) 使用前提 可

Python 负载测试工具 Locust

Locust 是一个开源负载测试工具.使用 Python 代码定义用户行为,也可以仿真百万个用户. Locust 是非常简单易用,分布式,用户负载测试工具.Locust 主要为网站或者其他系统进行负载测试,能测试出一个系统可以并发处理多少用户. Locust 是完全基于时间的,因此单个机器支持几千个并发用户.相比其他许多事件驱动的应用,Locust 不使用回调,而是使用轻量级的处理方式 gevent. 特性 使用纯 Python 代码编写用户测试场景:不需要 UIs 或者 XML 分布式&可伸缩

性能和负载测试

测试组合模型 1.基于总测试数: (Determines which web performance or unit test is run when a virtual user starts a test iteration[当一个虚拟用户启动迭代测试时,确定它将要运行的性能测试或者单元测试,以后他就一直运行这个测试了?])确定虚拟用户启动测试迭代时运行的 Web 性能或单元测试. 在负载测试结束时,运行特定测试的次数与分配的测试分布相匹配. 使测试组合基于 IIS 日志或生产数据中的事务百

关于《selenium2自动测试实战--基于Python语言》

关于本书的类型: 首先在我看来技术书分为两类,一类是“思想”,一类是“操作手册”. 对于思想类的书,一般作者有很多年经验积累,这类书需要细读与品位.高手读了会深有体会,豁然开朗.新手读了不止所云,甚至会说,都在扯犊子,看了半天也不知道如何下手. 对于操作手册的书,一般会提供大量的实例,告诉你详细的步骤.对于高手来说,这不就是翻译了一下官方文档嘛,好意思拿来骗钱.但对于新手来说,反而认为是好处,跟着上面的步骤操作就掌握了某种技术能力. 显然,本书属于后者,书中提供了大量代码实例,并没有太多思想层面