亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

需要一種方法將變量從 User 類傳遞到 Locust 中的 TaskSet

需要一種方法將變量從 User 類傳遞到 Locust 中的 TaskSet

開心每一天1111 2022-12-06 16:24:20
我是蝗蟲的新手,正在嘗試編寫負載測試。我的 Locust 用戶的目的是通過調用 createItem API 來創建項目。在這種情況下,每個請求中的 item_id 應該是唯一的,因為它具有唯一的條件。這就是我所做的。import jsonfrom random import randintfrom locust import HttpUser, constant, SequentialTaskSet, taskfrom flow.helper import read_jsonclass WebsiteUser(HttpUser):    """    User class that does requests to the locust web server running on localhost    """    host = "http://localhost:8080/api/"    wait_time = constant(3)    @task    class SequenceOfTasks(SequentialTaskSet):        item_id = randint(100, 9999)        @task        def create_item(self):            request = read_json('resources/create_item.json')            request['item-id'] = self.item_id            response = self.client.post('createItem', json.dumps(request),                                        headers={'Content-Type': 'application/json'})            assert response.status_code == 200第一個請求是成功的,它成功地創建了一個條目。但是所有后來的請求都失敗了,在應用程序服務器的日志中我可以看到它正在嘗試創建具有相同 item_id 的項目。有什么方法可以在 WebsiteUser 類中動態生成一個值并將其傳遞給 SequenceOfTasks?
查看完整描述

1 回答

?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

不是問題的確切答案,但我通過在方法內移動隨機邏輯使這段代碼在沒有沖突的 item_ids 的情況下工作。就像是:-


@task

    class SequenceOfTasks(SequentialTaskSet):

        self.item_id = None

        @task

        def create_item(self):

            request = read_json('resources/create_item.json')

            self.item_id = randint(100, 9999)

            request['item-id'] = self.item_id

            ...


查看完整回答
反對 回復 2022-12-06
  • 1 回答
  • 0 關注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號