Locust初探

Locust是一款类似于Jmeter开源负载测试工具,所不同的是它是用python实现,并支持python脚本。 locust提供web ui界面,能够方便用户实时监控脚本运行状态。

Locust安装

这个框架基于python,故而需要先安装python,这里不再赘述。

pip install -U pyzmq
pip install -U locustio

使用以上命令安装

实战

以公司的项目登录模块实战,直接上代码

from locust import HttpLocust, TaskSet, task
import json class UserBehavior(TaskSet): token = ''
userId = ''
headers = '' def login(self):
data = {
"email": "xxxxxxx",
"passwd": "xxxxxxx",
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'}
response = self.client.post(
'xxxxxx/login',
data=json.dumps(data),
headers=headers)
content = json.loads(response.content)
self.token = {"token": content['data']['token']}
self.userId = content['data']['userId'] def logout(self):
with self.client.get('xxxxxx/logout', params=self.token, catch_response=True) as response:
if response.status_code != 200:
response.failure() def user_details(self):
data = {'userId': self.userId}
with self.client.get('xxxxxxxx/view', params=data, headers=self.headers, catch_response=True) as response:
if response.status_code != 200:
response.failure() @task(10)
def login_logout(self):
self.login()
self.user_details()
self.logout() class WebsiteUser(HttpLocust):
host = 'http://10.1.51.221:7600/'
task_set = UserBehavior
min_wait = 5000
max_wait = 9000

执行压力测试

重新打开cmd窗口进入脚本文件的目录之中,执行以下命令开启压力测试

locust -f locustfile.py

执行完上面命令后用浏览打开http://127.0.0.1:8089,出现以下界面:

  我这里尝试模拟100个虚拟用户,每秒发送30次请求,然后点击Start swarming开始进行压力测试

测试结果

locust的运行界面,可以下载当前的运行结果到本地,但是这两份csv中的测试结果不够详细,不利于分析系统的瓶颈,这也是locust的不足之处。

性能测试框架Locust初学笔记的更多相关文章

  1. Python3.6 性能测试框架Locust的搭建与使用

    背景 Python3.6 性能测试框架Locust的搭建与使用 基础 python版本:python3.6 方法一: pip install locustio 方法二: 开发工具:pycharm 使用 ...

  2. Python 3.6 性能测试框架Locust安装及使用

    背景 Python3.6 性能测试框架Locust的搭建与使用 基础 python版本:python3.6 开发工具:pycharm Locust的安装与配置 点击“File”→“setting” 点 ...

  3. Python Locust性能测试框架实践

    [本文出自天外归云的博客园] Locust的介绍 Locust是一个python的性能测试工具,你可以通过写python脚本的方式来对web接口进行负载测试. Locust的安装 首先你要安装pyth ...

  4. JMH 性能测试框架

    参考 1 Java 并发编程笔记:JMH 性能测试框架  http://blog.dyngr.com/blog/2016/10/29/introduction-of-jmh/ 2  Code Samp ...

  5. laravel 5.6初学笔记

    laravel 5.6初学笔记 http://note.youdao.com/noteshare?id=bf4b701b49dd035564e7145ba2d978b4 框架简介 laravel文档齐 ...

  6. 性能测试工具Locust

    An open source load testing tool. 一个开源性能测试工具. define user behaviour with python code, and swarm your ...

  7. C++ STL初学笔记

    C++  STL初学笔记 更系统的版本见徐本柱的PPT set 在这儿:http://www.cnblogs.com/pdev/p/4035020.html #include <vector&g ...

  8. chrome性能测试框架webpagereplay

    今天学习了下chrome的性能测试框架,其实它可用于在稳定的环境下测试浏览器向服务器发起http请求至下载请求文档到本地的这个过程.好处在于,其原理在于先将第一次请求回来的文档下载在本地,然后在本地模 ...

  9. CI框架源代码阅读笔记5 基准測试 BenchMark.php

    上一篇博客(CI框架源代码阅读笔记4 引导文件CodeIgniter.php)中.我们已经看到:CI中核心流程的核心功能都是由不同的组件来完毕的.这些组件类似于一个一个单独的模块,不同的模块完毕不同的 ...

随机推荐

  1. Redisson-Parent 2.5.0 和 3.0.0 发布

    Redisson-Parent 2.5.0 和 3.0.0 发布了,Redisson 是基于 Redis 服务之上构建的分布式.可伸缩的 Java 数据结构,高级的 Redis 客户端. Rediss ...

  2. hessionproxy

    from pyhessian.client import HessianProxy if __name__ == '__main__': params = {"a": " ...

  3. D - Prepared for New Acmer

    Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Status Pract ...

  4. Python 基礎 - bytes數據類型

    三元運算 什麼是三元運算?請看下圖說明 透過上圖說明後,可以得出一個三元運算公式: result = 值1 if 條件 else 值2, 如果鯈件為真: result = 值1 如果鯈件為假: res ...

  5. ios学习之路

    整合网络资源和自己的实际经验,表述于此. 1 Xcode详解 非常实用的xcode介绍,详情请见外部链接http://demo.netfoucs.com/shulianghan/article/det ...

  6. PhpStorm中配置xdebug调试环境

    1. 安装xdebug 第一步: 得到本地PHP配置信息 在终端中运行: php -i > outputphp.txt 然后将得到的txt文件中的信息拷贝并复制到http://xdebug.or ...

  7. Flume 实战(1) -- 初体验

    前言: Flume-ng是数据收集/聚合/传输的组件, Flume-ng抛弃了Flume OG原本繁重的zookeeper和Master, Collector, 其整体的架构更加的简洁和明了. 其基础 ...

  8. c++类的声明和对象的定义---10

    原创博客:转载请标明出处:http://www.cnblogs.com/zxouxuewei/ 类是创建对象的模板,一个类可以创建多个对象,每个对象都是类类型的一个变量:创建对象的过程也叫类的实例化. ...

  9. jquery模板制作左侧导航组件

    /** * Created by bmk on 16-4-25. * * 用法:在自己的js里面把左侧导航的相关图标和对应的列表项名称如下编写: * 版本更新日至按需添加 * 在js中的RNA.run ...

  10. Spring源码学习之:@async 方法上添加该注解实现异步调用的原理

    在我们使用spring框架的过程中,在很多时候我们会使用@async注解来异步执行某一些方法,提高系统的执行效率.今天我们来探讨下 spring 是如何完成这个功能的.    spring 在扫描be ...