簡體   English   中英

使用 Locust 獲取響應數據的問題

[英]Issue with getting the response data using Locust

我想看看我是否能夠獲得響應數據,因為我正在嘗試學習如何在 Locust 上使用正則表達式。 我正在嘗試使用 Locust 從 JMeter 重現我的測試腳本。 這是我遇到問題的代碼部分。

import time,csv,json
from locust import HttpUser, task,between,tag

class ResponseGet(HttpUser):
    response_data= ""
    wait_time= between (1,1.5)
    host= "https://portal.com"
    username= "NA"
    password= "NA"

    @task
    def portal(self):
        print("Portal Task")
        response = self.client.post('/login', json={'username':'user','password':'123'})
        print(response)
        self.response_data = json.loads(response.text)
        print(response_data)     

我已經嘗試過這個建議,但不知何故無法讓它發揮作用。

我的想法是獲取響應數據 > 使用正則表達式提取字符串 > 傳遞字符串以供下一個任務使用

例如:獲取登錄響應數據 > 使用正則表達式提取令牌 > 將令牌用於下一個任務。

有沒有更好的方法來做到這一點?

你這樣做的方式應該可行,但 Locust 的 HttpUser 客戶端基於請求,所以如果你想以 JSON 形式訪問響應數據,你應該能夠只使用self.response_data = response.json()來做到這一點。 但這只有在響應正文是有效的 JSON 時才有效。 如果響應正文不是 JSON,您的代碼也會失敗。

如果您的問題是將響應文本解析為 JSON,則響應可能不是 JSON,可能是因為您收到錯誤或其他原因。 您可以在嘗試將其加載為 JSON 之前打印響應正文。 但是您當前的print(response)不會這樣做,因為它只會打印 Requests 返回的Response對象。 您需要改為print(response.text())

至於正則表達式是否是獲取響應中返回的令牌的正確解決方案,這將取決於響應的確切格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM