Использовать одно коррелированное значение из одного вызова Locust в другом (внутри того же класса)Python

Программы на Python
Гость
Использовать одно коррелированное значение из одного вызова Locust в другом (внутри того же класса)

Сообщение Гость »

У меня есть следующий рабочий код:

Код: Выделить всё

import json
import requests
import os
import pandas as pd
import random
from locust import task, events
from locust.contrib.fasthttp import FastHttpUser
from azure.identity import DefaultAzureCredential

server_name = "https://test"

credential = DefaultAzureCredential()
token = credential.get_token("xxx")
token = token.token

def read_componentid_writepowerplant():
csv_file = os.path.join("C:", os.sep, "PythonScripting", "MyCode", "pythonProject",
"powerplants.csv")
comid = pd.read_csv(csv_file)["COMPONENTID"]
return int(comid.sample(1))

def set_value_writepowerplant():
value_random = random.randrange(500, 900)
return value_random

null = None
global hpsId

def setpayload_writepowerplant(dt_value):
myjson = {
"name": "Jostedal",
"units": [
{
"generatorName": "Jostedal G1",
"componentId": int(read_componentid_writepowerplant()),
"timeSeries": null
}
],
"hpsId": 10014,
"powerPlantId": 31109,
"readPeriod": [
1711407600,
1711494000
],
"timeAxis": {
"t0": 1711407600,
"dt": int(dt_value),
"n": 96
}
}
return myjson

@events.request.add_listener
def my_request_handler(request_type, name, response_time, response_length, response,
context, exception, start_time, url, **kwargs):
if exception:
print(f"Request to {name} failed with exception {exception}")
else:
print(f"Successfully made a request to: {name}")

class MffrApi(FastHttpUser):
host = server_name
network_timeout = 1000000.0
connection_timeout = 1000000.0

def read_powerplant(self):
resp = self.client.get(f'/xxx/all/',
headers={"Authorization": f'Bearer {token}'},
name='/GetAllPowerplants')
# print(resp.request.body)
# print(resp.request.headers)
# print(resp.request.url)
# print(resp.text)
hpsid = resp.json()[15]["hpsId"]
print(hpsid)

def write_powerplant(self):
payload = json.dumps(setpayload_writepowerplant(set_value_writepowerplant()), indent=2)
resp = self.client.post(f'/xxx',
headers={
"Authorization": f'Bearer {token}', "Content-Type": 'application/json'},
name='/PostSingelPowerplant',
data=payload)
# print(resp.request.body)
# print(resp.request.headers)
# print(resp.request.url)
# print(resp.text)

@task(1)
def test_read_mfrr(self):
self.read_powerplant()
self.write_powerplant()
Я хочу, чтобы коррелированное значение «hpsid» из метода «read_powerplant» было помещено в статическую полезную нагрузку json в методе «setpayload_writepowerplant», который будет использоваться в методе «write_powerplant».
p>
Нужно ли мне определить эту переменную как глобальную, чтобы это можно было сделать?
Или мне нужно изменить области действия некоторых методов, которые будут можно добавить поддержку перекрестных ссылок на значения между методами?

Подробнее здесь: https://stackoverflow.com/questions/782 ... same-class

Вернуться в «Python»