【问题标题】:Locust passing headers蝗虫传球头
【发布时间】:2019-01-31 03:13:53
【问题描述】:

是否可以让 Locust 传递带有安全令牌的标头命令来负载测试 API?

我正在尝试为带有令牌标头标志的编码器测试我们的 API,因为被测试的服务器必须接收带有请求的令牌,即。

curl -H “授权:令牌令牌字符串”http://someserver

【问题讨论】:

  • 您目前做得如何? self.client.get(uri, headers={“Authorization": "Token token string”}) 应该可以工作
  • 我会试一试并报告,谢谢
  • 如果是基本认证呢? @enderland
  • @uberrebu 你会改用auth 字段,例如auth=("username", "password") 并将headers 字段保留为None
  • 实际上在四处搜索后最终得到了它。是的,正确...谢谢!

标签: header token locust


【解决方案1】:
class User(HttpUser):

    host = 'http://127.0.0.1:8000'      
    @task
    def predict_post(self):
        self.client.post("/route/", data=json.dumps({
        "text": "finish all the track to hear and great good tune u do a great job alan walker",
        "max_op_words": 10,
        "max_time": 1,
        "max_predictions": 1
        }),auth=None,
        headers={"authtoken":"your-auth-token", 'content-type': 'application/json'})

我错过了内容类型标头并收到 401 错误授权错误。

【讨论】:

    【解决方案2】:

    如果您想为每个请求使用相同的标头,您还可以在 on_start 方法中将它们设置给客户端。它们将自动用于每个客户端请求。

    class User(HttpUser):
    
        def on_start(self):
            self.client.headers = {'Authorization': 'my-auth-token'}
    
        @task
        def my_authenticated_task(self):
            self.client.post('enspoint')  # this will use headers we set earlier
    

    【讨论】:

      【解决方案3】:

      是的,您可以使用:

      token_string = "token string"
      
      resp = self.client.post(
                  url="http://someserver",
                  data=json.dumps(data),
                  auth=None,
                  headers={"authorization": "Token " + token_string},
                  name="http://someserver",
              )
      

      【讨论】:

        猜你喜欢
        • 2022-11-10
        • 1970-01-01
        • 1970-01-01
        • 2014-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-09
        相关资源
        最近更新 更多