python_locust压测

发布时间:2024年01月12日

可以在命令行启动,cmd命令框,进入此文件的目录输入:
locust -f .\dash.py --host="https://litemall.hogwarts.ceshiren.com"
-f: 指定性能测试脚本文件的绝对路径。
–host: 指定被测试应用的URL的地址,就是测试项目的host地址。

Number of users:设置模拟用户数。(并发)
Spawn rate :每秒产生(启动)的虚拟用户数。(递增数)
Host:host地址。//可在WebsiteUser类下直接写host = "www.*.com",启动命令不加host参数,这里就不会显示,则默认走代码写死的host地址。
点击 “Start swarming” 按钮,立即开始运行性能测试。

import random
from locust import HttpUser, task, between, SequentialTaskSet, tag


class MyTaskCase(SequentialTaskSet):
    # 初始化方法,相当于 setup
    def on_start(self):
        pass

    # @task python中的装饰器,告诉下面的方法是一个任务,
    # 这个装饰器和下面的方法被复制多次,改动一下,就能写出多个接口
    # 装饰器后面带上(数字)代表在所有任务中,执行比例
    # 要用这个装饰器,需要头部引入 从locust中,引入 task


    @task(1)  # 装饰器,说明下面是一个任务
    def login_(self):
        self.username = "hogwarts"
        self.pwd = 'test12345'
        self.headers = {"Content-Type": "application/json"}
        url = '/admin/auth/login'  # 接口请求的URL地址
        data = {"username": self.username, "password": self.pwd, "code": ""}
        with self.client.post(url,
                              json=data,
                              headers=self.headers,
                              catch_response=True) as rsp:
            # 提取响应json 中的信息,定义为 类变量
            self.token = rsp.json()['data']['token']
            if rsp.status_code == 200 and rsp.json()['errno'] == 0:
                rsp.success()
            else:
                rsp.failure('login_failure')

    @task(2)  # 装饰器,说明下面是一个任务
    def getlist_(self):
        url = '/admin/region/list'  # 接口请求的URL地址
        # 引用上一个任务的 类变量值   实现参数关联
        headers = {"X-Litemall-Admin-Token": self.token}
        # 使用self.client发起请求,请求的方法 选择 get
        with self.client.get(url,
                             headers=headers,
                             catch_response=True) as rsp:
            if rsp.status_code == 200 and rsp.json()['errno'] == 0:
                rsp.success()
            else:
                rsp.failure('getlist_failure')

    # 结束方法, 相当于teardown
    def on_stop(self):
        pass


# 定义一个运行类 继承HttpUser类, 所以要从locust中引入 HttpUser类
class UserRun(HttpUser):
    tasks = [MyTaskCase]
    # 设置运行过程中间隔时间 需要从locust中 引入 between
    # wait_time = between(0.1, 3)

文章来源:https://blog.csdn.net/ramsey17/article/details/135545565
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。