那些没人教你的Jmeter 循环断言,百度不到的,收藏一下吧

前言

对于使用jmeter工具完成接口测试的测试工程师而言。在工作中,或者在面试中,都会遇到一个问题。 CSV文档做了一大笔测试数据后,怎么去校验这个结果呢? 现在大部分测试工程师可能都是通过人工的方法去查看结果,十几个还好,那要很多很多呢? OK,此时,肯定会有同学想到,断言呗,响应断言,beanshell断言,都可以阿。 但是beanshell里要写java代码,对于没有代码基础的怎么办?求开发?开发小哥没时间怎么办? 那响应断言呢?对于很多测试工程师而言,响应断言好像只能断言一次,无法循环去断言不同的内容。 其实不然,今天我们就一起来学学,不写代码,就用响应断言,怎么实现循环断言不同的内容

思路

我们要去做一件事,肯定是要谋而后定,那么去实现循环断言,要怎么去做呢?

  1. 先对csv文档进行参数化

  2. 循环取出csv里的数据

  3. 编写需要的断言内容

  4. 对每一条数据都要进行一次断言

先导知识

  • jmeter元件之计数器 概念: 允许用户在线程组中任何位置创建引用的计数器。 计数器配置允许用户配置起始点,最大值和增量。 计数器将从开始循环到最大,然后从开始重新开始,继续进行,直到测试结束。 所以:用大白话来讲,计数器就是帮你去计数的,从几开始到几结束,每次循环迭代后加几。

解释:Starting Value:给定计数器的初始值递增:每次循环迭代后,给计数器增加的值Maximum Value:计数器的最大值,如果超过最大值,会重新设置为初始值,非必填项数字格式:可选格式,比如填写000,格式化为001,002;比如填写0,格式化为1,2;引用名称:引用变量,可以在其他元素中引用该值,形式:${引用名称}与每用户独立的跟踪计数器:不勾选,即全局计数器的,比如用户#1 获取值为1,用户#2获取值还是为1;勾选,即独立的,则每个用户有自己的值:比如用户#1 获取值为1,用户#2获取值为2。**每次迭代复原计数器**:只有当勾选了,与每用户独立的跟踪计数器时才可用;勾选此选项后,则每次线程组迭代,都会重置计数器的值,当线程组是在一个循环控制器内时比较有用。

  • 拼接函数,嵌套变量

  • 这个是jmeter自带的函数,可以用用这个函数进行字符串的拼接,或者是变量中再嵌套变量。 Name of variable:引用的变量名 默认值:非必填参数,填写了之后,当你引用变量失败后,就会填充该默认值

1、先参数化接口

请一定要注意,csv文档参数化,里面有多少条数据,就要在线程组里循环多少次,不然只会执行一次哟。

2、添加计数器

3、设置断言内容

这里有一个非常重要的点就是我们要把需要断言的内容给设置成变量 因为只有这样,我们才能循环取值,做循环断言

4、取出需要进行结果判断的数据

此处,我们将以返回结果的msg进行断言

5、添加响应断言,进行结果判断

6、添加察看结果树,进行循环断言

通过结果树可以看到,这里会有两条用例失败了。 那是因为,我们在第三步的时候,设置了需要断言的内容

至此,我们就完全可以用响应断言,实现循环断言了,这也是以后要用工具做自动化的一个必不可少的步骤哟。

是不是非常棒,欢迎大家留言点赞哟。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/28817.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[国产MCU]-BL602开发实例-ADC数据采样

ADC数据采样 文章目录 ADC数据采样1、ADC介绍2、ADC驱动API3、ADC使用示例模数转换器(analog-to-digital converter,通常称为ADC)是一种模拟与数字转换器,支持12路外部模拟输入和若干内部模拟信号选择。 BL602的ADC支持以下四种模式:单次单通道转换、连续单通道转换、单次…

java中javamail发送带附件的邮件实现方法

java中javamail发送带附件的邮件实现方法 本文实例讲述了java中javamail发送带附件的邮件实现方法。分享给大家供大家参考。具体分析如下: JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它…

网络安全 Day27-运维安全项目-堡垒机部署

运维安全项目-堡垒机部署 1. 运维安全项目-架构概述2. 运维安全项目之堡垒机2.1 堡垒机概述2.2 堡垒机选型2.3 环境准备2.4 部署Teleport堡垒机2.4.1 下载与部署2.4.2 启动2.4.3 浏览器访问teleport2.4.4 进行配置2.4.5 安装teleport客户端 2.5 teleport连接服务器 1. 运维安全…

Elasticsearch官方测试数据导入

一、数据准备 百度网盘链接 链接:https://pan.baidu.com/s/1rPZBvH-J0367yQDg9qHiwQ?pwd7n5n 提取码:7n5n文档格式 {"index":{"_id":"1"}} {"account_number":1,"balance":39225,"firstnam…

【音视频】vms布署说明

目录 外场布署场景(99%) 研发实验场景(1%) 高级玩法 证书安装方法 外场布署场景(99%) 下面两种场景,为本产品主要应用场景,2023-08-08日后(统一所有证书)…

vue在线编辑表格导入导出

npm i file-saver npm i exceljs npm i luckyexcelindex.html &#xff08;方式一在html中引入&#xff09; <link relstylesheet hrefhttps://cdn.jsdelivr.net/npm/luckysheetlatest/dist/plugins/css/pluginsCss.css /><link relstylesheet hrefhttps://cdn.jsde…

C++ 函数模板与类模板

C最重要的特性之一就是代码重用&#xff0c;为了实现代码重用&#xff0c;代码必须具有通用性。通用代码应不受数据类型的影响&#xff0c;并且可以自动适应数据类型的变化。这种程序设计类型称为参数化程序设计。模板是C支持参数化程序设计的工具&#xff0c;通过它可以实现参…

前端进阶js02----null和undefined的区别

1.相同点 1)都是原始类型的值且保存在栈中。 2) 在布尔运算中都会被认为是false 2.不同点 1&#xff09;null是js的关键字&#xff0c;表示空值&#xff1b;undefined不是关键字&#xff0c;是一个全局变量。 2&#xff09;值相同&#xff0c;但类型不一样 值相同&#xff1a…

考研算法第40天:众数 【模拟,简单题】

题目 本题收获 又是一道比较简单的模拟题&#xff0c;就不说解题思路了&#xff0c;说一下中间遇到的问题吧&#xff0c;就是说cin输入它是碰到空格就停止输入的&#xff0c;详细的看下面这篇博客对于cin提取输入流遇到空格的问题_while(cin) 空格_就是那个党伟的博客-CSDN博…

JavaScript:模块化【导入和导出】

在现代软件开发中&#xff0c;代码的组织和管理是至关重要的&#xff0c;尤其是在大型项目中。模块化是一种解决方案&#xff0c;它允许我们将代码分割成独立的部分&#xff0c;使得代码结构更清晰、易于维护和重用。本文将深入探讨模块的导入和导出&#xff0c;帮助你全面理解…

为什么都劝年轻人不要频繁跳槽?

"为什么都劝年轻人不要频繁跳槽&#xff1f;"这句话绝对正确&#xff0c;没有任何漏洞&#xff0c;无论如何解释都是正确的&#xff0c;因为“频繁”这个词是非常主观的&#xff0c;有很大的弹性。 不同的人对于跳多少次才算频繁有不同的看法&#xff0c;有人认为一…

QT-QlineEdit 添加自动补全

要在 QLineEdit 上添加自动补全功能&#xff0c;你可以使用 QCompleter 类。QCompleter 提供了自动补全的功能&#xff0c;并且可以与 QLineEdit 一起使用。 下面是一个示例代码&#xff0c;演示了如何在 QLineEdit 上添加自动补全&#xff1a; #include <QApplication>…

大数据培训课程-《机器学习从入门到精通》上新啦

《机器学习从入门到精通》课程是一门专业课程&#xff0c;面向人工智能技术服务&#xff0c;课程系统地介绍了Python编程库、分类、回归、无监督学习和模型使用技巧以及算法和案例充分融合。 《机器学习从入门到精通》课程亮点&#xff1a; 课程以任务为导向&#xff0c;逐步学…

nux查看线程数量及优先级

linux查看线程数量及优先级 在Linux中&#xff0c;可以使用以下命令查看线程名称和PID&#xff1a; top -H ps -T这些命令将会列出当前系统中正在运行的所有进程及其创建的线程。 如果要查看线程的优先级&#xff0c;可以通过如下命令&#xff1a; /root # chrt -p 1091 pi…

Python自动化测试用例:如何优雅的完成Json格式数据断言

目录 前言 直接使用 优化 封装 小结 进阶 总结 资料获取方法 前言 记录Json断言在工作中的应用进阶。 直接使用 很早以前写过一篇博客&#xff0c;记录当时获取一个多级json中指定key的数据&#xff1a; #! /usr/bin/python # coding:utf-8 """ aut…

Shell编程基础(十一)使用 expect 脚本处理人机交互

使用 expect 脚本处理人机交互 安装expect适用场景编写expect实现人机交互自动确认删除文件登录远程服务器自动确认并输入密码 在shell中执行 expect 脚本程序 安装expect 先检测是否有安装 yum list installex expect或者 使用 rpm rpm -q expect如果没有安装&#xff0c;就…

访问者模式(Visitor)

访问者模式是一种行为设计模式&#xff0c;可封装一些作用于当前数据结构的各元素的操作&#xff0c;它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。 Visitor is a behavior design pattern that encapsulates some operations that act on the elements of t…

在前端中如何创建表单并提交数据到服务器?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 通过from表单⭐ 代码讲解⭐ 注意事项⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发…

积累常见的有针对性的python面试题---python面试题001

1.考点列表的.remove方法的参数是传入的对应的元素的值,而不是下标 然后再看remove这里,注意这个是,删除写的那个值,比如这里写3,就是删除3, 而不是下标. remove不是下标删除,而是内容删除. 2.元组操作,元组不支持修改,某个下标的内容 可以问他如何修改元组的某个元素 3.…

Vue3 第五节 一些组合式API和其他改变

1.provide和inject 2.响应式数据判断 3.Composition API的优势 4.新的组件 5.其他改变 一.provide和inject 作用&#xff1a;实现祖与后代组件间通信 套路&#xff1a;父组件有一个provide选项来提供数据&#xff0c;后代组件有一个inject选项来开始使用这些数据 &…