python+locust+get/post接口性能测试

#!/usr/local/bin/python3.7

from locust import HttpLocust,TaskSet,task
import gevent
# 猴子补丁
gevent.monkey.patch_all()
import os
import subprocess
import json

"""
@author:mozili
@file:functiontest.py
@time:2020/03/27
"""


class UserBehavior(TaskSet):
    # 定义用户最先开始做的事情
    def on_start(self):
        pass
    
    def fun(self,response):
        if response.status_code != 200:
            print('返回异常')
            print("请求返回状态码:",response.status_code)
        elif response.status_code == 200:
            print('返回正常')
    @task(1)
    def download(self): 
        url = '/download?size=51457280'
        r = self.client.get(url=url)
        self.fun(r)
        
    @task(2)
    def upload(self):
        url = '/upload'
        params = {'size':30000000}
        r = self.client.post(url=url,params=params)
        self.fun(r)
    @task(3)
    def hello(self):
        url = '/hello'
        params = {'size':3000000}
        r = self.client.post(url=url,params=params)
        self.fun(r)
class WebsiteUser(HttpLocust):
    task_set = UserBehavior
    min_wait = 3000
    max_wait = 6000

if __name__ == '__main__':
    os.system('locust -f FunctionTest/functiontest.py --host=http://10.0.0.xxx:xxx')
    # 在命令行打开
    # subprocess.Popen('locust -f FunctionTest/functiontest.py',shell=True)






原文地址:https://www.cnblogs.com/lxmtx/p/12580031.html