背景

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性能测试的更多相关文章

  1. python模块介绍-locustio:性能测试工具locustio

    转自:http://automationtesting.sinaapp.com/blog/m_locustio_doc python测试文章 http://weibo.com/cizhenshi?is ...

  2. 【转】Python模块学习 - fnmatch & glob

    [转]Python模块学习 - fnmatch & glob 介绍 fnmatch 和 glob 模块都是用来做字符串匹配文件名的标准库. fnmatch模块 大部分情况下使用字符串匹配查找特 ...

  3. 【目录】Python模块学习系列

    目录:Python模块学习笔记 1.Python模块学习 - Paramiko  - 主机管理 2.Python模块学习 - Fileinput - 读取文件 3.Python模块学习 - Confi ...

  4. Python模块学习filecmp文件比较

    Python模块学习filecmp文件比较 filecmp模块用于比较文件及文件夹的内容,它是一个轻量级的工具,使用非常简单.python标准库还提供了difflib模块用于比较文件的内容.关于dif ...

  5. python模块学习第 0000 题

    将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果: 好可爱>%<! 题目来源:https://github.com/Yixiao ...

  6. Python模块学习:logging 日志记录

    原文出处: DarkBull    许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪.在.NET平台中,有非常著名的第三方开源日志组件log4net ...

  7. 解惑Python模块学习,该如何着手操作...

    Python模块 晚上和朋友聊天,说到公司要求精兵计划,全员都要有编程能力.然后C.Java.Python-对于零基础入门的,当然是选择Python的人较多了.可朋友说他只是看了简单的语法,可pyth ...

  8. Python模块学习

    6. Modules If you quit from the Python interpreter and enter it again, the definitions you have made ...

  9. Python模块学习系列

    python模块-time python模块-datetime python模块-OS模块详解

随机推荐

  1. LeetCode:176.第二高的薪水

    题目链接:https://leetcode-cn.com/problems/second-highest-salary/ 题目 编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Sal ...

  2. Extjs中,Vo对象中的属性无法在data中获取的解决方法

    store.getById(data.data.id).raw.redpackid

  3. Delphi 画刷与作图区域

    樊伟胜

  4. Delphi 图形图像对象组件

  5. Bridge的数据在内核处理流程

    转:http://blog.sina.com.cn/s/blog_67cc0c8f0101oh33.html 转载一篇Bridge的数据在内核处理流程,文章写的不错啊! (2013-07-05 16: ...

  6. VM12及CentOS-6.10的安装

    VM12的安装破解步骤 1:打开VMware 12安装界面后,点击[下一步]2:勾选[我接受许可协议中的条款]安装VMware Workstation 12 ,然后点击[下一步]3:修改默认安装路径, ...

  7. C语言求π的方法

    #include <stdio.h> #include <math.h> int main() { int r; double PI,s; scanf("%d&quo ...

  8. IMP-00058: ORACLE error 1882 encountered

    问题现象: IMP: ORACLE error encountered ORA: timezone region not found ORA: at "SYS.DBMS_EXPORT_EXT ...

  9. Summer training #8

    A: B:按题意直接暴力找符合题意的数的个数 #include <bits/stdc++.h> #include <cstring> #include <iostream ...

  10. python 示例代码3

    示例3:Python获取当前环境下默认编码(字符编码demo1.py) 字符编码,python解释器在加载py文件中的代码时,会对内容进行编码(默认ASCII),windows系统默认编码为GBK,U ...