我正在使用locust来加载测试API,但是每次我测试需要输入除授权之外的参数的API时都是这样的:API which need data inputted
它总是100%失败,上面写着'BadStatusCode('endpoint',)',我已经在谷歌上搜索了一下这是什么意思,并搜索了蝗虫错误文档,但我仍然没有找到任何线索。我测试的其他所有API (主要是使用get以外的方法的API )都使用了locust,它只需要像下面这样的参数授权:API with only authorization parameter
运行得非常好。我已经在谷歌上搜索了关于如何将参数输入到端点的各种locust代码,并且我认为我的代码已经正确。
以下是我的代码( 100%失败):
import os
from dotenv import load_dotenv
from locust import TaskSet, task, between, HttpLocust
from locust.contrib.fasthttp import FastHttpLocust
import resource
from dotenv import dotenv_values
load_dotenv()
resource.setrlimit(resource.RLIMIT_NOFILE, (65536, 999999))
host_p = os.getenv("HOST_P")
header = {
'authorization': 'Bearer ' + os.getenv('TOKEN')
}
values = {
"amount": 100
}
def payment(self):
self.client.post("/pay", headers=header, json=values)
class ProcessPost(TaskSet):
tasks={payment:2}
class ApiPost(FastHttpLocust):
host = host_payment
task_set = ProcessPost
wait_time = between(5.0, 9.0)下面是我的其他代码(运行得很好):
import os
from dotenv import load_dotenv
from locust import TaskSet, task, between, HttpLocust
from locust.contrib.fasthttp import FastHttpLocust
import resource
import datetime as d
from dotenv import dotenv_values
import json
load_dotenv()
resource.setrlimit(resource.RLIMIT_NOFILE, (65536, 999999))
host_p = os.getenv("HOST_P")
header = {
'authorization': 'Bearer ' + os.getenv('TOKEN')
}
def payment(self):
self.client.get("/pay", headers=header)
class ProcessPost(TaskSet):
tasks={payment:2}
class ApiPost(FastHttpLocust):
host = host_payment
task_set = ProcessPost
wait_time = between(5.0, 9.0)任何帮助我们都将不胜感激。
发布于 2020-07-24 23:11:49
我猜可能是你发送的数据是主体,而不是添加内容类型的头部,如果你使用json,它会添加内容类型的头部本身,但如果你使用数据来传递值,你需要自己添加它。
headers['Content-Type'] = "application/json"https://stackoverflow.com/questions/63076256
复制相似问题