【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,如有错误请大神指出!

 

posted @ 2017-11-28 09:22  龙猫2018  阅读(3547)  评论(0编辑  收藏  举报