【Python】模块学习之locust性能测试
背景
locust是一个python的第三方库,用于做性能测试,可使用多台机器同时对一台服务器进行压测,使用其中一台机器作为主节点,进行分布式管理
博主测试接口的时候一直是使用python脚本,后来有个需求需要做性能测试,我第一时间就想到了locust,不需要再对测试脚本进行编辑,而且对测试机的性能要求较低
安装
locust的安装很简单,可以直接使用pip
pip install locustio
测试代码
说明:下列代码中只有sms()函数是最终测试的函数 ,其实的都是博主测试过程中的加密算法的辅助函数
#! /usr/bin/python
# coding:utf-8
"""
@author:Bingo.he
@file: locust_practis.py
@time: 2017/12/29
"""
from locust import HttpLocust, TaskSet, task
import hashlib class UserBehavior(TaskSet): @staticmethod
def param_order(dic):
"""
参数转换函数
:param dic: 字典类型参数
:return: key1=value1&key2=value2
"""
l = []
if isinstance(dic, dict):
for k, v in dic.items():
l.append(k + '=' + str(v))
l.sort()
# print ('&'.join(l))
return '&'.join(l)
else:
return 'Not a dict' def get_signMsg(self, soure_para, bizKey):
"""
API密钥生成函数
:param soure_para : 传递的参数
:param bizKey:
:return: str
"""
param = self.param_order(soure_para)
return hashlib.md5((param + bizKey).encode('utf8')).hexdigest() def pack_param(self):
soure_para = {
'bizNo': '0000001',
'mobiles': '18565100000,18565100001,18565100002,18565100003,18565100004,18565100005,18565100006,','content': u'{}',
}
sign_msg = self.get_signMsg(soure_para, 'GyCK9XC4qYbs')
soure_para['signMsg'] = sign_msg # 添加签名信息
return soure_para @task(1) # 表示第一个执行,可以通过它组合指定场景
def sms(self):
param = self.pack_param()
self.client.post("/sms", param) class WebsiteUser(HttpLocust):
task_set = UserBehavior
min_wait = 300 # 不同请求间间隔时间
max_wait = 600
运行命令
locust -f ../locust_files/locust_practice.py --host=http://example.com
参数说明
-f 指定文件
--host 指定要压测的服务器
一般是监听在*:8089上,所以直接访问localhost:8089即可,图形页面如下

【Python】模块学习之locust性能测试的更多相关文章
- python模块介绍-locustio:性能测试工具locustio
转自:http://automationtesting.sinaapp.com/blog/m_locustio_doc python测试文章 http://weibo.com/cizhenshi?is ...
- 【转】Python模块学习 - fnmatch & glob
[转]Python模块学习 - fnmatch & glob 介绍 fnmatch 和 glob 模块都是用来做字符串匹配文件名的标准库. fnmatch模块 大部分情况下使用字符串匹配查找特 ...
- 【目录】Python模块学习系列
目录:Python模块学习笔记 1.Python模块学习 - Paramiko - 主机管理 2.Python模块学习 - Fileinput - 读取文件 3.Python模块学习 - Confi ...
- Python模块学习filecmp文件比较
Python模块学习filecmp文件比较 filecmp模块用于比较文件及文件夹的内容,它是一个轻量级的工具,使用非常简单.python标准库还提供了difflib模块用于比较文件的内容.关于dif ...
- python模块学习第 0000 题
将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果: 好可爱>%<! 题目来源:https://github.com/Yixiao ...
- Python模块学习:logging 日志记录
原文出处: DarkBull 许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪.在.NET平台中,有非常著名的第三方开源日志组件log4net ...
- 解惑Python模块学习,该如何着手操作...
Python模块 晚上和朋友聊天,说到公司要求精兵计划,全员都要有编程能力.然后C.Java.Python-对于零基础入门的,当然是选择Python的人较多了.可朋友说他只是看了简单的语法,可pyth ...
- Python模块学习
6. Modules If you quit from the Python interpreter and enter it again, the definitions you have made ...
- Python模块学习系列
python模块-time python模块-datetime python模块-OS模块详解
随机推荐
- 文件名后面加(1).text
; //在重复名称后加(序号) while (File.Exists(path)) { if (path.Contains(").")) { int start = path.La ...
- Extjs中,Vo对象中的属性无法在data中获取的解决方法
store.getById(data.data.id).raw.redpackid
- 1 c# 获取当前正在运行的类的程序集
public static Assembly CurrentAssembly { get { return Assembly.GetExecutingAssembly(); } }
- multiple类型的select option在django后台如何取值
之前前端的select都是单选类型,在新的场景中允许用户选择多个条件, 前端的代码如下: <form action="{% url 'info:result-list' %}" ...
- django-spirt 论坛主题
官方文档 新建项目 django_sprit 文件夹 cd django_sprit pip install django-spirit spirit startproject mysite cd m ...
- C# 列表中查找大小比较
列表中查找大小比较
- 4.4. Item Pipeline管道文件
0:Spider爬取数据 # -*- coding: utf-8 -*- import scrapy import sys from mySpider.items import ItcastItem ...
- 【XDOJ】小W的塔防
原题: 小W在成功拿到iPhone后,下载了一个塔防游戏.游戏的目标是阻止僵尸穿过地图. 地图可以看作一条长度为n的线段,这条线段被划分为n条单位长度的小线段.僵尸需要花费t秒才能通过一条小线段.在每 ...
- git生成公钥public key并添加SSH key。git乌龟gerrit下推送git【server sent :publickey】
一.key 码云链接:http://git.mydoc.io/?t=180845#text_180845 博客链接: 方式一:https://blog.csdn.net/xb12369/article ...
- 不使用C库函数(Sprintf)将void* 指针转换为十六进制字符串
#include <stdio.h> #include <stdint.h> #include <stdlib.h> void hexDump(void *ptr, ...