Locust(1.接口性能测试模板)

import os
from locust import HttpUser,TaskSet,task,between,constant,SequentialTaskSet
from loguru import logger
'''
TaskSet:任务集合,其中的任务同时进行,没有先后顺序,支持嵌套
SequentialTaskSet:按顺序执行的任务集,任务分配很均匀,始终是def task31 >def tadk32 >def task33
task表示权重,这个装饰器内的数据越高,在测试时分配的虚拟用户就越多
在使用locust发送请求时,不用使用requests库,要使用self.client
示例:
res1=self.client.get(url,headers=headers)
res=self.client.post(url,headers=headers)
'''
class WebsiteTasks(TaskSet):
    logger.add("LocustDemo.log")
    def on_start(self):
        logger.info("on_start: "+"初始化任务,每个用户开始做的第一件事,程序运行后直会执行一次")

    @task(1)
    def tastCase11(self):
        logger.info("tastCase11")
        name="掘金"
        self.client.get("https://juejin.cn/pinsl",name=name)

    @task(3)
    def testCase12(self):
        url='https://fanyi-pro.baidu.com/quick'
        headers=''
        name="翻译"
        res=self.client.get(url,headers=headers,name=name)
        assert 'success'==res.json().get('status')
        logger.info("tastCase12")

    @task(2)
    def testCase13(self):
        url='https://github.com/pulls'
        data=''
        name="GitHub"
        res=self.client.post(url,name=name)
        assert 'success'==res.json.get('status')
        logger.info("tastCase13")

class WebsiteTask2(TaskSet):
    @task(1)
    def task21(self):
        self.client.get('https://www.aliyun.com/?utm_content=se_1008364713')
        logger.info("tastCase21")

class WebsiteTask3(SequentialTaskSet):
    @task
    def task31(self):
        self.client.get('https://fanyi-pro.baidu.com/quick')
    @task
    def task32(self):
        self.client.get('https://www.csdn.net/')
    @task
    def task33(self):
        self.client.get("https://github.com/")

    def on_stop(self):
        print('停止测试时执行')


class WebsiteUser(HttpUser):  #或者用WebsiteUser(HttpLocust)
    #websiteTasks 和 WebsiteTask2的并发量权重相互不影响,如果并发10,各的自任务根据@task分配10;
    tasks = [WebsiteTasks,WebsiteTask2]   #随机列表中的任务,没有先后顺序
    host = "http://localhost:8089/"
    min_wait = 1000
    max_wait = 5000

    #wait_time:设定每个任务执行中间的间隔时间,
    # between(min,max)在最大最小值中间随机取
    #constant 间隔固定时间
    wait_time = constant(1)  #
    # wait_time=between(1,2)


if __name__=='__main__':
    #命令行执行locust -H http://test.com -f demo.py
    os.system('locust -f LocutDemo.py')  #

你可能感兴趣的:(测试框架,python,语音识别)