locust 快速入门--异常(Exceptions)与失败(Failures)

发布时间:2024年01月06日

背景:

??使用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('用户结束行动')
文章来源:https://blog.csdn.net/qq_17328759/article/details/135430501
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。