【Python】locust框架接口性能测试(一)
本人工作中主要对接口与web进行性能测试,而接口测试主要为http协议接口和webservice接口,本文主要对locust框架http接口测试先进行简单介绍。
1、测试需求
对某系统登录接口进行测试,登录前需进行身份认证(摘要认证)。
2、环境准备
pycharm
Python 3.6
Windows 7
3、基本功能实现
对该系统进行摘要认证,实现登录功能,代码如下:
1 import requests 2 #导入HTTPDigestAuth,实现摘要认证 3 from requests.auth import HTTPDigestAuth 4 url = r\'http://172.20.x.xxx:xxxx/login\' 5 #请求头部 6 header = {"APP-Version":"ios-1.1"} 7 #摘要认证,post方法请求服务器 8 r=requests.post(url,auth=HTTPDigestAuth(\'username\',\'password\'),headers = header) 9 #打印服务器返回 10 print("返回码:"+str(r.status_code)+"\r\n"+"响应报文:"+"\n"+str(r.text))
View Code
4、压力发起
结合locust框架,形成压测脚本,对该系统发起压力,具体代码如下:
1 from locust import HttpLocust,TaskSet,task 2 import subprocess 3 import json 4 from requests.auth import HTTPDigestAuth 5 import requests 6 #TaskSet类. 7 class UserBehavior(TaskSet): 8 #开始前执行 9 def on_start(self): 10 pass 11 #等同于loadrunner事务 12 @task(1) 13 def login(self): 14 header = {"APP-Version": "ios-1.1"} 15 r = self.client.post("/login", auth=HTTPDigestAuth(\'username\', \'password\'), headers=header) 16 if json.loads(r.content)["tel_phone"] == \' \': 17 print("Got wrong response:"+str(r.content)) 18 19 #This is another HttpLocust class. 20 class MobileUserLocust(HttpLocust): 21 weight = 3 22 task_set = UserBehavior 23 host = \'http://1.82.238.163:3001\' 24 min_wait = 3000 25 max_wait = 6000
View Code
进入终端,执行命令:
locust -f D:\Locust\http接口测试.py
在浏览器输入localhost:8089,输入模拟用户数,点击“Start swarming”开始测试
进入主界面,实时TPS监控效果图:
响应时间效果图:
可以导出需要的数据:
以上对http接口测试locust框架进行了简单的介绍,locust性能测试框架部署及使用详解请参考:http://www.cnblogs.com/zhang-zhi/p/7642017.html,如有错误请大神指出!