??使用locust
进行压测的时候,服务器响应已经异常了,但是从UI页面上看到的还是正常的响应。直至服务完全挂掉,才会出现异常信息。
??locust
认为HTTP响应代码是OK(<400)是成功的。实际服务的响应代码是200时,有些服务响应的内容异常了。因此需要根据响应内容,自定义失败,更方便的通过图表数据判断压测结果。
??在接口测试时,我们一般会使用assert
进行判断。基于locust
对失败判断逻辑,不会将异常响应做为失败的响应。
catch_response=True
response.failure()
示例代码:
import os
from logging import getLogger
from locust import HttpUser
from locust import TaskSet
from locust import events
from locust import task
from locust.log import setup_logging
setup_logging("INFO", None)
logger = getLogger(os.path.basename(__file__))
class Behavior(TaskSet):
def on_start(self):
logger.info('开始访问活动')
@task
def index(self):
with self.client.get("/", catch_response=True) as response:
json_data = response.json()
if json_data['code'] != 1:
response.failure(f'自定义响应失败: code != 1')
assert json_data['code'], f'响应异常信息: code != 1'
def on_stop(self):
logger.info('结束访问活动')
class MyUser(HttpUser):
host = "https://docs.locust.io"
tasks = [Behavior]
def on_start(self):
logger.info('用户开始行动')
def on_stop(self):
logger.info('用户结束行动')