用于为 Molotov 收集指标的库
项目描述
莫洛托夫扩展
安装
pip3 install molotov-ext
例子
负载测试.py
from argparse import Namespace
import molotov
from molotov.session import ClientSession as Session
from molotov_ext import scenario, register_reporter
from molotov_ext.formatters import PhantomFormatter
@molotov.global_setup()
def setup_global(args: Namespace):
molotov.set_var("reporter", register_reporter(args))
@scenario(weight=1)
async def scenario(session: Session):
async with session.get("http://localhost:8080") as resp:
res = await resp.json()
assert resp.status == 200
@molotov.global_teardown()
def teardown_global():
reporter = molotov.get_var("reporter")
reporter.save_workers_log("workers.csv")
reporter.save_requests_log("requests.csv")
reporter.save_client_errors_log("client_errors.csv")
reporter.save_requests_log("phout_1.log", PhantomFormatter())
$ molotov --workers=1 --duration=1 --max-runs=1 -vv
加特林格式化程序
from argparse import Namespace
import molotov
from aiohttp import StringPayload, JsonPayload, ClientResponse as Response
from molotov.session import ClientSession as Session, LoggedClientRequest as Request
from molotov_ext import scenario, recorder, register_reporter
from molotov_ext.formatters import PhantomFormatter, GatlingFormatter
from molotov_ext.records import ScenarioRecord
def on_response(record: ScenarioRecord, response: Response, request: Request):
if isinstance(request.body, (StringPayload, JsonPayload)):
try:
record.request_payload = request.body._value.decode(request.body.encoding)
except:
pass
recorder.register_response_hook(on_response)
@molotov.global_setup()
def setup_global(args: Namespace):
molotov.set_var("reporter", register_reporter(args))
@scenario(weight=1)
async def scenario(session: Session):
async with session.post("http://localhost:8080", json={"payload": "<payload>"}) as resp:
res = await resp.json()
assert resp.status == 200
@molotov.global_teardown()
def teardown_global():
reporter = molotov.get_var("reporter")
reporter.save_workers_log("workers.csv")
reporter.save_requests_log("requests.csv")
reporter.save_client_errors_log("client_errors.csv")
reporter.save_requests_log("simulation.log", GatlingFormatter())
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
molotov-ext-1.0.1.tar.gz
(9.3 kB
查看哈希)
内置分布
molotov_ext-1.0.1-py3-none-any.whl
(10.9 kB
查看哈希)
关
molotov_ext -1.0.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5d05d1e600f860ac55d4205b5a4656923e7ab8d5a15df7ae5cb9fa4ea9e2c8ee |
|
MD5 | ebf83c76487d369bc3cc41b226351017 |
|
布莱克2-256 | d998220be8ca46121d781694bf0ed0cd415ba409ee6a2a3edb00cfacbde8d20e |