Как я могу перевести этот request.post в саранчовый запрос? - PullRequest
0 голосов
/ 17 июня 2020

У меня есть шаблон для функции Python, которая вызывает API и возвращает данные. Я хотел бы провести нагрузочное тестирование этого API с использованием locust.

import requests

proxies = {"http" : None,
           "https" : None}

verify = "/data/certs/abc123.crt"


def call_api(par1, par2, par3):


    r = requests.post(url = 'https://ABCD123.XYZ.QWERTY:9010/public/api/v1/ABC_TEST/query',
                      json = {"par1" : par1, "par2" : par2, "par3" : par3}, verify = verify, proxies = proxies)
return r

Как я могу перевести это в класс locust?

1 Ответ

0 голосов
/ 18 июня 2020

Я делаю это так:

# prepare the headers to send to the remote host
headers = {"key":"value",
           "key":"value"}

# prepare the data for the POST body
data = {"key":"value",
        "key":"value"}```

with connection_object.client.post(url, headers=headers, 
    json=data, name=task_name, catch_response=True) as response:
    # convert the response to JSON
    msg = json.loads(response.content.decode('utf-8'))
    if response.status_code == 200:
        # we got a 200 OK
        response.success()
    else:
        response.failure("failure text")

В этом примере этот код выполняется в отдельной функции, вызываемой из класса UserBehavior, поэтому connection_object является «самим собой», если вы делаете это внутри задачи в класс.

Однако в вашем примере измените

r = requests.post(url = 'https://ABCD123.XYZ.QWERTY:9010/public/api/v1/ABC_TEST/query',
                      json = {"par1" : par1, "par2" : par2, "par3" : par3}, verify = verify, proxies = proxies)

на


class UserBehavior(SequentialTaskSet):
    @task()
    def task1(self):
        r = self.client.post('https://ABCD123.XYZ.QWERTY:9010/public/api/v1/ABC_TEST/query', 
    json = {"par1" : par1, "par2" : par2, "par3" : par3}, 
    verify = verify, proxies = proxies)

Я уверен, что вы видели это , которое показывает "получить" , но не "пост". Если вы не знакомы с библиотекой запросов, это может запутать. Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...