【Python】locust框架接口性能测试(一)
本人工作中主要对接口与web进行性能测试,而接口测试主要为http协议接口和webservice接口,本文主要对locust框架http接口测试先进行简单介绍。
1、测试需求
对某系统登录接口进行测试,登录前需进行身份认证(摘要认证)。
2、环境准备
pycharm
Python 3.6
Windows 7
3、基本功能实现
对该系统进行摘要认证,实现登录功能,代码如下:
- import requests
- #导入HTTPDigestAuth,实现摘要认证
- from requests.auth import HTTPDigestAuth
- url = r'http://172.20.x.xxx:xxxx/login'
- #请求头部
- header = {"APP-Version":"ios-1.1"}
- #摘要认证,post方法请求服务器
- r=requests.post(url,auth=HTTPDigestAuth('username','password'),headers = header)
- #打印服务器返回
- print("返回码:"+str(r.status_code)+"\r\n"+"响应报文:"+"\n"+str(r.text))
4、压力发起
结合locust框架,形成压测脚本,对该系统发起压力,具体代码如下:
- from locust import HttpLocust,TaskSet,task
- import subprocess
- import json
- from requests.auth import HTTPDigestAuth
- import requests
- #TaskSet类.
- class UserBehavior(TaskSet):
- #开始前执行
- def on_start(self):
- pass
- #等同于loadrunner事务
- @task(1)
- def login(self):
- header = {"APP-Version": "ios-1.1"}
- r = self.client.post("/login", auth=HTTPDigestAuth('username', 'password'), headers=header)
- if json.loads(r.content)["tel_phone"] == ' ':
- print("Got wrong response:"+str(r.content))
- #This is another HttpLocust class.
- class MobileUserLocust(HttpLocust):
- weight = 3
- task_set = UserBehavior
- host = 'http://1.82.238.163:3001'
- min_wait = 3000
- max_wait = 6000
进入终端,执行命令:
- locust -f D:\Locust\http接口测试.py
在浏览器输入localhost:8089,输入模拟用户数,点击“Start swarming”开始测试
进入主界面,实时TPS监控效果图:
响应时间效果图:
可以导出需要的数据:
以上对http接口测试locust框架进行了简单的介绍,locust性能测试框架部署及使用详解请参考:http://www.cnblogs.com/zhang-zhi/p/7642017.html,如有错误请大神指出!
【Python】locust框架接口性能测试(一)的更多相关文章
- Python locust性能测试框架模板
locust框架模板 from locust import HttpLocust, TaskSet, task import Queue class UserBehavior(TaskSet): de ...
- Locust 接口性能测试 - 转载一 (后期熟悉实践自己出一套完整的)
转载大佬 ,.. 另外一篇:https://www.cnblogs.com/imyalost/p/9758189.html记录一下接口性能测试的学习 先熟悉一下概念: Locust是使用Pytho ...
- 用ladon框架封装Python为Webservice接口以及调用接口的方法
一.用ladon框架封装Python为Webservice接口 功能实现的同时,希望将接口开放给别人,而封装python接口的一个再简单不过的框架Ladon,而且提供不同的协议,包括SOAP和Json ...
- 基于Python的HTTP接口自动化测试框架实现
今天我们来讲一下基于Python的HTTP接口自动化测试框架的实现,范例如下: 一.测试需求描述 对服务后台一系列的http接口功能测试. 输入:根据接口描述构造不同的参数输入值 输出:XML文件 e ...
- Python Locust对指定网站“一键压测”
[本文出自天外归云的博客园] 前篇 前篇:Python Locust性能测试框架实践 本篇 承上——归纳过程 在前篇的基础上,我们可以利用Locust性能测试框架编写python脚本对指定网站或者接口 ...
- Python开源框架
info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...
- python locust 进行压力测试
最近公司项目周期比较赶, 项目是软硬结合,在缺少硬件的情况下,通过接口模拟设备上下架和购买情况,并进行压力测试, 本次主要使用三个接口 分别是3个场景: 生成商品IP, 对商品进行上架, 消费者购买商 ...
- Awesome Python,Python的框架集合
Awesome Python A curated list of awesome Python frameworks, libraries and software. Inspired by awes ...
- 关于python测试webservice接口的视频分享
现在大公司非常流行用python做产品的测试框架,还有对于一些快速原型产品的开发也好,很好地支持OO编程,代码易读.Python的更新挺快的,尤其是第三方库. 对于测试人员,代码基础薄弱,用pytho ...
随机推荐
- 慎用python的pop和remove方法
申明:转载请注明出处!!! Python关于删除list中的某个元素,一般有两种方法,pop()和remove(). 如果删除单个元素,使用基本没有什么问题,具体如下. 1.pop()方法,传递的是待 ...
- ARM实验1 —— 流水灯实验
实验内容: 编写GPIO模块程序,实现对FS_4412平台的上的led2,led3,led4 ,led5,的流水灯实现. 实验目的: 熟悉开发环境的使用. 掌握Exynos 4412处理器GPIO功能 ...
- 如何修改集群的公网信息(包括 VIP) (文档 ID 1674442.1)
适用于: Oracle Database - Enterprise Edition - 版本 11.2.0.3 到 12.1.0.2 [发行版 11.2 到 12.1]本文档所含信息适用于所有平台 用 ...
- 2018.5.24 Oracle下的sqlplus编程 块结构
1.语句结构模板 declare --声明 begin dbms_output.put_line('Legend Hello world'); end; 2.变量使用 & 是输入符号 decl ...
- 如何更改VirtualBox虚拟电脑内存大小
- 如何着手学习一个新的PHP框架
如今的PHP框架层出不穷,名气也各不相同.如何快速掌握一种框架?看看本文吧~ 如今的PHP框架层出不穷,名气也各不相同.我不是这方面的专家,甚至不能熟练地使用其中的一种,所以就不作推荐了.这里我要讨论 ...
- 高阶函数 -------JavaScript
高阶函数 本文摘要:http://www.liaoxuefeng.com/ JavaScript的函数其实都指向某个变量.既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作 ...
- 深入理解Java GC
一.概述 GC(Carbage Collection)垃圾收集器,由JVM自动回收已死亡的对象垃圾. 这也是Java与C++等语言的主要区别之一. 二.如何确认对象已死 1. 引用计数算法 引用计数法 ...
- Oracle Analyze
Analyze使用场景 之前很多次都说到,对表的索引等信息进行了增删改之后,需要对表进行analyze更新统计信息,才能使数据库做出最好的执行计划,没有注意到,即使是一张很小的空表,如果进行了字段的增 ...
- SQL数据库从高版本导入低版本
1. 打开高版本数据库右键–>任务–>生成脚本–>高级–>选择脚本兼容的版本(也就是低版本)–>拉倒最下面选择架构和数据 2. 在低版本里面,先新建一个数据库,名称要和脚 ...