python学习笔记(locust性能测试模块)
locust是基于python的性能测试工具、支持python2.7及其以上的版本、相对于主流的LR与Jmeter工具使用的方式不一样、locust是通过编写python代码来完成性能测试的。
通过LR与Jmeter都是一个特定平台、我们只能在这个平台上使用、局限性很大。但是利用locust通过python可以进行性能测试的同时,也能掌握python语言的使用,且因为是开发语言,测试过程中可以编写自己需要的功能内容。
博主这里就简单的整理下如何使用locust模块,主要的三个类: HttpLocust, TaskSet, task
TaskSet是任务类、定义待测试的任务代码集如下的UserBehavior的类,task是子任务方法
- # -*- coding: utf_8 -*-
- # 文件名称:main_pt.py
- # locust基础性能测试模板
- # 时间:2017-10-19
- from locust import HttpLocust, TaskSet, task
- import subprocess
- import json
- # 性能测试任务类 TaskSet.
- class UserBehavior(TaskSet):
- # 开始
- def on_start(self):
- pass
- # 任务
- @task(1)
- def getTagVals(self):
- u"""
- request_url:请求路径
- request_params:请求头参数
- request_json:请求json参数
- """
- request_url = "/xxx/tag/getTagVals" (待测试的路径)
- request_params = {
- "nonce": "abcdefg",
- "_type": None,
- "target": "CLNJ01",
- "timestamp": 1507860000,
- "apiId": "EC",
- "apiSign": "D41D8CD98F00B204E9800998ECF8427E"
- }
- request_json = {
- "tagKey": 25
- }
- response = self.client.post(
- url=request_url,
- params=request_params,
- json=request_json
- )
- if response.status_code != 200:
- print u"返回异常"
- print u"请求返回状态码:", response.status_code
- elif response.status_code == 200:
- print u"返回正常"
- # 这里可以编写自己需要校验的返回内容
- # content = json.loads(response.content)["content"]
- # if content["tagKey"] == 25:
- # print u"校验成功"
- # print json.dumps(content, encoding="UTF-8", ensure_ascii=False)
- # 性能测试配置
- class MobileUserLocust(HttpLocust):
- u"""
- min_wait :用户执行任务之间等待时间的下界,单位:毫秒。
- max_wait :用户执行任务之间等待时间的上界,单位:毫秒。
- """
- # weight = 3
- task_set = UserBehavior
- host = "http://xxx" (待测试的ip或者域名)
- min_wait = 3000
- max_wait = 6000
- if __name__ == "__main__":
- subprocess.Popen("locust -f main_pt.py", shell=True)
最后HttpLocust类是用来设置性能测试的配置、如待测试的host、待测试的任务集task_set
如何运行:首先打开到文件路径下、然后直接运行脚本 python main_pt.py
运行成功后即可访问 locust的 web UI界面 :http://localhost:8089
提示输入的内容是 模拟的用户总数 和 每秒钟并发的用户数量、点击开始按钮即可
可以查看测试任务的性能结果 上图圈出的 RPS是 每秒用户数、FAILUSERS是 失败率
可以 STOP 中止测试 也可以 Edit 重新编辑性能测试的场景、还可以查看后台的打印内容:
python学习笔记(locust性能测试模块)的更多相关文章
- Python 学习笔记(6)--常用模块(2)
一.下载安装 下载安装有两种方式: yum\pip\apt-get 或者源码 下载源码 解压源码 进入目录 编译源码 python setup.py build 安装源码 python setup.p ...
- python学习笔记之常用模块(第五天)
参考老师的博客: 金角:http://www.cnblogs.com/alex3714/articles/5161349.html 银角:http://www.cnblogs.com/wupeiqi/ ...
- python学习笔记13(模块、包)
在Python中有一个概念叫做模块(module),比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一下Python中的模块. 模块文件以.py后缀结 ...
- Python学习笔记十_模块、第三方模块安装、模块导入
一.模块.包 1.模块 模块实质上就是一个python文件.它是用来组织代码的,意思就是把python代码写到里面,文件名就是模块的名称,test.py test就是模块的名称 2.包 包,packa ...
- Python学习笔记:bisect模块实现二分搜索
在Python中可以利用bisect模块来实现二分搜索,该模块包含函数只有几个: import bisect L = [1,3,4,5,5,5,8,10] x = 5 bisect.bisect_le ...
- python学习笔记(六):常用模块
一.模块.包 什么是模块? 模块实质上就是一个python文件,它是用来组织代码的,意思就是说把python代码写到里面,文件名就是模块的名称,test.py test就是模块名称. 什么是包? 包, ...
- 吴裕雄--天生自然python学习笔记:Python3 模块
Python3 模块 在前面的几个章节中我们脚本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了. 为此 Python 提供了一个办 ...
- [Python] Python学习笔记之常用模块总结[持续更新...]
作为一种极其简单的编程语言,Python目前成为了最炙手可热的几种语言之一.它不仅简单易学,而且它还为用户提供了各种各样的模块,功能强大,无所不能.有利必有弊,学习Python同样有困扰,其中之一就是 ...
- python学习笔记9--日志模块logging
我们在写程序的时候经常会打一些日志来帮助我们查找问题,这次学习一下logging模块,在python里面如何操作日志.介绍一下logging模块,logging模块就是python里面用来操作日志的模 ...
- python 学习笔记---Locust 测试服务端性能
由于人工智能的热度, python目前已经成为最受欢迎的编程语言,一度已经超越Java . 本文将介绍开源的python 测试工具: locust 使用步骤: 1. 安装python 3.0以上版本 ...
随机推荐
- centos7修改网卡名、密码重置
修改网卡名称 编辑 /etc/sysconfig/grub 倒数第二行quiet 后加入 net.ifnames=0 biosdevname=0 执行 grub2-mkconfig -o /bo ...
- js常用的几个验证
/// <summary> ///1. 使用正则表达式验证 参数 是否 为数值 /// </summary> /// <param name="trNumber ...
- HDU 4247 Pinball Game 3D(cdq 分治+树状数组+动态规划)
Pinball Game 3D Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- poj1934 Trip【线性DP】【输出方案】
Trip Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3850 Accepted: 1030 Description ...
- 终于修好了MacBook
之前由于Trackpad故障,陆家嘴苹果店开了维修单,让我在2周内去更换,详见第二次去苹果店维修MacBook. 后来由于购买了AppleCare进行延保,又担心放在那维修时间长,就懒得去更换了. 昨 ...
- SpringBoot项目属性配置
如果使用IDEA创建Springboot项目,默认会在resource目录下创建application.properties文件,在SpringBoot项目中,也可以使用yml类型的配置文件代替pro ...
- Python网络爬虫学习总结
1.检查robots.txt 让爬虫了解爬取该网站时存在哪些限制. 最小化爬虫被封禁的可能,而且还能发现和网站结构相关的线索. 2.检查网站地图(robots.txt文件中发现的Sitemap文件) ...
- supervisord部署
https://blog.csdn.net/vbaspdelphi/article/details/54091095https://blog.csdn.net/shudaqi2010/article/ ...
- ansible相关
上图为ansible的基本架构,从上图可以了解到其由以下部分组成: 核心:ansible 核心模块(Core Modules):这些都是ansible自带的模块 扩展模块(Custom Modules ...
- 小米范工具系列之四:小米范HTTP批量发包器
最新版本1.3,下载地址:http://pan.baidu.com/s/1c1NDSVe 文件名httpsender . 此工具使用java 1.8以上版本运行. 小米范HTTP批量发包器的主要功能 ...