失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python性能测试模块_【Python】模块学习之locust性能测试

python性能测试模块_【Python】模块学习之locust性能测试

时间:2020-11-07 17:42:07

相关推荐

python性能测试模块_【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: /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=

参数说明

-f 指定文件

--host 指定要压测的服务器

一般是监听在*:8089上,所以直接访问localhost:8089即可,图形页面如下

如果觉得《python性能测试模块_【Python】模块学习之locust性能测试》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。