性能测试框架Locust初学笔记
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初学笔记的更多相关文章
- Python3.6 性能测试框架Locust的搭建与使用
背景 Python3.6 性能测试框架Locust的搭建与使用 基础 python版本:python3.6 方法一: pip install locustio 方法二: 开发工具:pycharm 使用 ...
- Python 3.6 性能测试框架Locust安装及使用
背景 Python3.6 性能测试框架Locust的搭建与使用 基础 python版本:python3.6 开发工具:pycharm Locust的安装与配置 点击“File”→“setting” 点 ...
- Python Locust性能测试框架实践
[本文出自天外归云的博客园] Locust的介绍 Locust是一个python的性能测试工具,你可以通过写python脚本的方式来对web接口进行负载测试. Locust的安装 首先你要安装pyth ...
- JMH 性能测试框架
参考 1 Java 并发编程笔记:JMH 性能测试框架 http://blog.dyngr.com/blog/2016/10/29/introduction-of-jmh/ 2 Code Samp ...
- laravel 5.6初学笔记
laravel 5.6初学笔记 http://note.youdao.com/noteshare?id=bf4b701b49dd035564e7145ba2d978b4 框架简介 laravel文档齐 ...
- 性能测试工具Locust
An open source load testing tool. 一个开源性能测试工具. define user behaviour with python code, and swarm your ...
- C++ STL初学笔记
C++ STL初学笔记 更系统的版本见徐本柱的PPT set 在这儿:http://www.cnblogs.com/pdev/p/4035020.html #include <vector&g ...
- chrome性能测试框架webpagereplay
今天学习了下chrome的性能测试框架,其实它可用于在稳定的环境下测试浏览器向服务器发起http请求至下载请求文档到本地的这个过程.好处在于,其原理在于先将第一次请求回来的文档下载在本地,然后在本地模 ...
- CI框架源代码阅读笔记5 基准測试 BenchMark.php
上一篇博客(CI框架源代码阅读笔记4 引导文件CodeIgniter.php)中.我们已经看到:CI中核心流程的核心功能都是由不同的组件来完毕的.这些组件类似于一个一个单独的模块,不同的模块完毕不同的 ...
随机推荐
- 网站优化之Asp.Net篇<一>
一>禁用viewstate. 二>禁用动态编译.访问一个Aspx文件时 会编译为一个新的类放在C盘Asp.net临时文件夹下.下次请求不会再编译,会把先前的编译结果返回. 任何对Asp.n ...
- WPF之MVVM模式讲解
WPF技术的主要特点是数据驱动UI,所以在使用WPF技术开发的过程中是以数据为核心的,WPF提供了数据绑定机制,当数据发生变化时,WPF会自动发出通知去更新UI. 恰当的模式可以让我们轻松达到“高内聚 ...
- SQL Server 2005 控制用户权限访问表
转自:http://www.cnblogs.com/gaizai/archive/2011/07/14/2106617.html 一.需求 在管理数据库过程中,我们经常需要控制某个用户访问数据库的权限 ...
- 闭包的理解-from my own opinion
闭包,说起来那么难,其实理解了作用域,那么理解闭包就容易多了. 全局环境,局部环境,这两个概念很好理解了.那么要深入理解下函数的局部环境. 函数的局部环境,也就是说在一个函数内定义的变量,这个变量只能 ...
- Unity Sprite转Prefab
新项目使用Unity5.X,遇到了一些问题,其中就有Sprite的管理更新问题,查了一些资料,Mono推荐的是转为Prefab处理. 看了一些国外同行的处理方法,分析了一个编辑器插件脚本.学到了一些技 ...
- 常用加实用的Linux命令
命令是计算机执行任务的指令.可以使用命令去关闭计算机,或者列出当前目录的文件列表,或当前文本的内容,或者屏幕显示一条消息等. 下面是各种基本的命令可供参考. 1.Ls - List ls会列举出当前工 ...
- DAO接口及实现类
DAO接口中定义了所有的用户操作,如添加记录.删除记录及查询记录. package chapter13; import java.util.*; public interface UserDAO { ...
- NSDictionary读取数据类型异常问题.
起因:做网络交互时,经常会使用JSON作为数据的承载体,本来是件好事,但是用多了,发现iOS侧偶尔会出现异常,几经比较发现是服务器给的数据有问题,该给INT的给按照STR给了,服务器能做动态更新,可客 ...
- 惩罚因子(penalty term)与损失函数(loss function)
penalty term 和 loss function 看起来很相似,但其实二者完全不同. 惩罚因子: penalty term的作用是把受限优化问题转化为非受限优化问题. 比如我们要优化: min ...
- Python-Jenkins 查询job是否存在
def check_jobs_from_jenkins(job_names): if isinstance(job_names, str): job_names = [job_names] job_d ...