python_locust_场景1:登录1次,添加10次地图

场景1:任务执行 > login执行1次,addtitle执行10次

from locust import HttpUser, task, SequentialTaskSet, between
import json

# 场景1:任务执行 > login执行1次,addtitle执行10次
class FlashTask(SequentialTaskSet):  # 该类定义了用户执行的任务的顺序。
    token = None # 设置全局变量,login执行完成后,返回值给这里,供addtitle使用
    @task(1) # 先执行登录,执行1次
    def login(self):
        data = {
    
    "username": "developer", "password": "developer"}
        # 打开文件、写入数据、关闭文件,一般用语法with as >>> 节约资源,处理完请求后悔自动关闭。
        with self.client.request(method='post', url='/prod-api/account/login', data=data) as response:
            res = self.login()
            d = json.loads(res.text)  # 将返回值转换为字典
            token = d.get("data").get("token")
            self.token = token # 实例化login的token,为上面的token,调用self.token就是token值

    @task(50) # 然后执行addtitle,执行50次
    def addtitle(self):
        data = {
    
    'xx': 'xxx'}
        headers = {
    
    'x-token': self.token,
                   'content-type': 'application/json;charset=UTF-8'}  # 一般需要加表单类型,不然会报错
        with self.client.request(method='post', url='/prod-api/arctile', json=data, headers=headers) as response:
            print(response.text)


class FlashUser(HttpUser):
    host = "http://flash-admin.enilv.cn" # 设置要测的ip地址
    wait_time = between(1, 3) # 设置等待时间,1到3秒之内
    tasks = [FlashTask] # 要执行的任务是任务的类FlashTask,会有序执行该类下面的任务。

执行该任务:
(venv) D:\huicelocust>locust -f locustfile.py

猜你喜欢

转载自blog.csdn.net/weixin_45451320/article/details/117344514