首页 > 其他分享 >Locust 断言的实现?

Locust 断言的实现?

时间:2024-03-19 15:59:34浏览次数:20  
标签:断言 实现 Locust locust assert 失败 检查点 response

一、检查点的方式有哪些:

主要是python 内置的assert 断言(自动断言)还有locust 中的catch_response 断言(手动断言);那么这两者之间有什么区别呢?

其实主要区别在与生成locust 报告上面,手动断言失败,我们在locust上面可以清楚的看到报错信息,如果通过内置断言,即使断言失败

我们也看不到错误信息

 

 

  

二、**手动断言**


使用self.client提供的catch_response=True`参数, 添加locust提供的ResponseContextManager类的上下文方法手动设置检查点。 ResponseContextManager里面的有两个方法来声明成功和失败,分别是 success和 failure。其中failure方法需要我们传入一个参数,内容就是失败的原因。 代码实现
```
@task
def login(self):
with self.client.post('/login', json={'username': 'admin', 'password': '<PASSWORD>'},name='登录',catch_response=True)as response:
if json.loads(response.text)['status'] == 'success':
response.success()
else:
response.failure("登录失败")
```

 在报告上,这里我们就能捕获到错误:

 如果通过下方的自动断言,及时断言失败,我们的locust报告依旧不会显示执行失败,也不会有失败提示

 

 

三、**自动断言(assert)**


**Python**的 `assert`是用来检查一个条件,如果它为真,就不做任何事。如果它为假,则会抛出AssertError并且包含错误信息,如果不做处理的话,如果断言失败的话,它不会继续往下走,而且不会在我们的locust页面里面进行显示
**assert** **2**==**0**,"2是不等于0的"
如果使用assert不想让其报错,想让其往下走的话,可以使用
`try:`
``` try:     assert len(formhash)==9 except AssertionError     print("出错了") ```
locust默认情况下会使用默认的检查点,比如当接口超时、链接失败等原因是,会自动判断失败

标签:断言,实现,Locust,locust,assert,失败,检查点,response
From: https://www.cnblogs.com/yongheng999/p/18083139

相关文章

  • Locust 实现接口关联
    一、首先我们理解下什么是关联? 跟接口测试一样,我们经常需要将上一个接口返回的参数用于第二次请求二、业务场景1:用户需要先登录获取token,之后去加入购物车、下订单、充值等等行为都是需要用到这个身份验证三、解决方案:客户不是每次行为都需要登录,每个客户只需要登录一次......
  • 五、jsPlumb实现流程图配置--连线
    一、线条创建在第一篇文章讲到过线条一共有四种类型Bezier、Straight、Flowchart、StateMachine,以及每种类型的样子,接下来就演示如何创建线条。创建一条连线有两种方式:通过代码创建;用户使用鼠标拖拽进行创建。1.通过代码创建使用jsPlumb提供的connectAPI可以创建连线。......
  • 基于SSM的网上商城的设计与实现
        本项目采用SSM框架,以MySQL数据库作进行数据存储。下面是整个项目的架构图,具体如下:    本项目一共有三个角色分别为:游客、商城用户和管理员。下面是前台功能模块图,在下图中用虚线红色框框起来的部分为游客可访问的功能模块,下方所有功能商城用户都有权限:......
  • 数据库中利用二进制实现多个布尔属性的增删改查
    需求背景业务场景中经常需要一些布尔型的属性来标记数据状态,如果每个属性值都新增一个数据库字段来保存会造成空间上的浪费,在工作中进行建模设计时难免会想到用二进制来节省空间,以整形32位为例,去除最高位的符号位总共可以用来保存31个布尔属性值。实现细节为方便讲解,这里......
  • 算法训练营第10天|栈与队列基础知识总结 LeetCode 232.用栈实现队列 225.用队列实现栈
    栈与队列基础知识总结 首先要明白栈和队列不同的地方在于,栈是先入后出的结构,队列是先入先出的结构。栈的基本操作栈的定义: stack<int>s;入栈元素:intx;s.push(x);出栈元素:s.pop();返回栈顶元素:s.top();判断栈是否为空:s.empty();队列的基本操作:队列和栈的基本......
  • Android 圆形进度条ProgressBar实现固定进度
    原文:Android圆形进度条ProgressBar实现固定进度-Stars-One的杂货小窝之前遇到一个问题,发现Android里的圆形进度条无法固定一个进度,记录一下解决方法探究假设我们在xml中这样写:<?xmlversion="1.0"encoding="utf-8"?><FrameLayoutxmlns:android="http://schemas.and......
  • 【Database】基于Mybatis的多数据源连接实现方式
    场景出于种种原因有些时候我们的项目中会用到同时连接多个数据源的情况,比如数据太大了分了多个库,又比如统计任务只能读原始数据的数据库,写只能在统计结果的库中。设计思路基于mybatis我们的方案是这样的,需要自己实现一个SqlSessionTemplate,里面维护了一个dbId到SqlSessionFact......
  • 基于Java+Vue的人力资源管理系统设计与实现【附源码+文档】
        前言:eHR人力资源管理系统是一个综合性的、用于优化人力资源管理流程的系统。它涵盖了人力资源管理的多个方面,包括招聘、人事、考勤、绩效、社保公积金以及薪酬管理等。以下是关于这些模块的详细解释:一、招聘管理招聘管理是eHR系统的重要组成部分,它可以帮助企业实现......
  • 基于树莓派实现 --- 智能家居
    最效果展示演示视频链接:基于树莓派实现的智能家居_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Tr421n7BM/?spm_id_from=333.999.0.0(PS:房屋模型的搭建是靠纸板箱和淘宝买的家居模型,户型参考了留学时短租的公寓~) 前言到目前为止,对于linux的嵌入式软件开发,从底层......
  • 基于SpringBoot的“会员制医疗预约服务管理信息系统”的设计与实现(源码+数据库+文档+P
    基于SpringBoot的“会员制医疗预约服务管理信息系统”的设计与实现(源码+数据库+文档+PPT)开发语言:Java数据库:MySQL技术:SpringBoot工具:IDEA/Ecilpse、Navicat、Maven系统展示系统首页界面图医院信息界面图坐诊信息界面图会员注册界面图个人中心界面图......