1.性能测试工具:
1.LoadRunner
2.JMeter
3.Locust
4.Molotov
https://mp.weixin.qq.com/s/Sm9OAnd0k8_E-I7Se2TlbQ
安装
GitHub:https://github.com/loads/molotov
安装:
pip install molotov
文档:https://molotov.readthedocs.io/en/stable/
例子
我们来进行接口测试,创建创建脚本loadtest.py。
"""
molotov 性能测试脚本"""
from molotovimport scenario
_API ='http://127.0.0.1:5000/'
@scenario(weight=40)
async def scenario_one(session):
"""测试默认接口(get)"""
async with session.get(_API)as resp:
res =await resp.json()
assert resp.status ==200
assert res['code'] ==10200
assert res['message'] =='Welcome to API testing'
@scenario(weight=60)
async def scenario_two(session):
"""添加用户信息接口(post->JSON)"""
payload = {"name":"jack", "age":22, "height":177}
async with session.post(_API +"add_user", json=payload)as resp:
res =await resp.json()
assert resp.status ==200
assert res['code'] ==10200
assert res['message'] =='add success'
weight表示接口的虚拟用户权重。比如100个用户40%用来请求第一个接口,60%用来请求第二个接口。
我们还可以使用assert非常方便的为接口写断言。
被测接口来自:https://github.com/defnngj/learning-API-test
运行
当Molotov测试使用该扩展时,该函数将收集执行时间,并打印出Molotov发出的所有请求的平均响应时间:
>molotov loadtest.py -w 10 -r 100
**** Molotov v1.6. Happy breaking!****
Preparing 10 workers...
OK
SUCCESSES: 1000|FAILURES: 0|WORKERS: 10
*** Bye ***
主要参数:
-w 指定worker的虚拟用户。
-r 指定每个虚拟用户的请求个数。
-d 指定运行的时长。
-q 静默情况执行。
-x 当出现失败时停止。
这样轻量的性能工具还是非常好用的,很合适接口的性能测试。