软件测试学习笔记-使用jmeter进行性能测试

性能测试:使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程。
性能测试的目的:

  1. 评估当前系统的能力
  2. 寻找性能瓶颈,优化性能
  3. 评估软件是否能够满足未来的需要

性能测试和功能测试对比
焦点不同:功能(正向、逆向)、性能(时间、资源)
关系:先功能测试,再性能测试
1. 基准测试
狭义上:就是单用户测试。测试环境确定后,对业务模型中的重要业务做单独的测试,获取用户运行时的各项性能指标。
广义上:是一种测量和评估软件性能指标的活动。在某个时间通过基准测试建立一个已知的性能基准线,当系统的软硬件环境发生变化之后再进行一次基准测试以确定变化对性能的影响。
jmeter设置线程数为1,循环次数100(反正不是1)
2. 负载测试
通过逐步增加系统负载,确定在满足系统的性能指标情况下,找出系统所能承受的最大负载量的测试。
请添加图片描述

文章目录

        • 1. 线程组的特点和分类
          • 1. 线程组的特点
          • 2. 线程组的分类
        • 2. 响应结果出现乱码(查看结果树)
        • 3. jmeter逻辑控制器
          • 1. IF控制器
          • 2. 循环控制器
          • 3. ForEach控制器
        • 4. 定时器
          • 1. 同步定时器
          • 2. 常数吞吐量定时器

1. 线程组的特点和分类
1. 线程组的特点

特点:

  1. 模拟多人操作
  2. 线程组可以添加多个,多个线程组可以并行或串行
  3. 取样器(请求)和逻辑控制器必须依赖线程组才可以使用

并行:
在这里插入图片描述
可以看到执行顺序是baidu再taobao,不是根据实际设置的顺序执行的。
串行:
在这里插入图片描述
在测试计划中选中 独立运行每个线程组,运行结果如下:
在这里插入图片描述

2. 线程组的分类
  1. 线程组:普通的、常用的线程组,可以看做一个虚拟用户组,线程组中的每一个线程都可以理解为一个虚拟用户。
  2. setUp线程组:一种特殊类型的线程组,可用户执行预测试操作
  3. tearDown线程组:一种特殊的线程组,可用于执行测试后工作

在这里插入图片描述
设置并行或串行只对普通线程组有效。
请添加图片描述

2. 响应结果出现乱码(查看结果树)

解决办法:

  1. 找到jmeter安装目录下的bin目录
  2. 打开jmeter.properties文件,修改配置
    sampleresult.default.encoding=UTF-8
  3. 重启jmeter
3. jmeter逻辑控制器
1. IF控制器
  1. 用户定义的变量
    在这里插入图片描述
  2. IF控制器
    在这里插入图片描述
  3. 结构:
    在这里插入图片描述
2. 循环控制器

在这里插入图片描述
== 线程组循环次数和循环控制器的区别?==
不同点:线程组的循环次数对线程组下的所有HTTP请求有效,循环控制器的循环次数对子节点下的HTTP请求有效;
关联:循环控制器次数为M,线程组循环次数为N

  1. 循环控制下的请求运行:M*N次
  2. 线程组下,非循环控制器下的请求运行:N次
3. ForEach控制器

一般和用户自定义变量或正则表达式提取器一起使用,读取返回结果中一系列相关的变量。
用户定义的变量:
在这里插入图片描述
ForEach控制器:
在这里插入图片描述
HTTP请求:
在这里插入图片描述
结构:
在这里插入图片描述

4. 定时器
1. 同步定时器

阻塞线程(累计一定的请求),当在规定的时间内达到一定的线程数量,这些线程会在同一时间点一起释放,瞬间产生很大的压力。
集合点
固定等待:线程数大于分组集合点数,且等待超时响应时间为0
隐式等待:不管线程数和集合点数谁大谁小,只要到了等待超时时间,立马执行所有的线程

2. 常数吞吐量定时器

使用指定的吞吐量发送请求时,可以使用常数吞吐量定时器。
在这里插入图片描述
目标吞吐量:每个用户每分钟发送的请求数
一个用户以20qps的频率访问百度首页,持续一段时间,统计运行情况。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

沁恒微WCH32v003驱动ST7735S硬件spi+DMA调试小坑(2)

上一篇文章解决了spidma传输数据时DC线操作时序不匹配的问题,但是屏幕依旧没有点亮,所以这一篇文章继续找还存在的问题。上一篇文章:沁恒微WCH32v003驱动ST7735S硬件spiDMA调试小坑-CSDN博客 老规矩,先用逻辑分析仪抓取一下波形。…

幻兽帕鲁怎么样?好玩? Mac版的玩《幻兽帕鲁》也很简单,只需三个步骤

幻兽帕鲁怎么样 幻兽帕鲁是一款集合了多种游戏元素的游戏,它巧妙地融合了《方舟:生存进化》的野外生存挑战、《荒野之息》的开放世界探索、《魔兽世界》的多元角色互动以及宝可梦的精灵捕捉与培养等经典游戏元素。游戏的核心系统是「帕鲁」捕获,你可以让…

Redis -- zset有序集合

聪明在于勤奋,天才在于积累。 目录 zset 有序集合 zset相关命令 zadd zcard zcount zrange zrevrange zrangebyscore zpopmax bzpopmax zpopmin bzpopmin zrank zscore zrem zRemRangeByRank zRemRangeByScore zincrby 集合间操作 zinte…

光学PCIe 6.0技术引领AI时代超大规模集群

随着云计算、大数据和人工智能技术的快速发展,超大规模数据中心正经历一场前所未有的变革。传统的集中式架构逐渐转变为解聚式(disaggregated)架构,这种架构将计算、存储和网络资源从单一的物理服务器中分离出来,形成独…

【Vue3】解决路由缓存问题(响应路由参数的变化)

官方文档解释&#xff1a; 解决问题的思路: 让组件实例不复用,强制销毁重建监听路由变化,变化之后执行数据更新操作 方案一&#xff1a;给router-view添加key 以当前路由完整路径为key 的值&#xff0c;给router-view组件绑定 <RouterView :key"$route.fullPath&qu…

C++-模板基础

1. 泛型编程 大家在学习过程中一定写过swap函数吧&#xff0c;那么swap函数的可以写成很多种形式&#xff0c;因为形参的类型可以是任意类型&#xff0c;那么我们如果想用多种swap函数的话&#xff0c;就意味着我们必须写多个swap函数吗&#xff1f;不是的&#xff0c;C为了解…

Android14之Selinux报错:unknown type qemu_device at token (一百八十三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

CleanMyMac X 4.14.7帮您安全清理Mac系统垃圾

CleanMyMac X 4.14.7是一款强大的 Mac 清理、加速工具和健康卫士,可以让您的 Mac 再次恢复巅峰性能。 移除大型和旧文件、卸载应用,并删除浪费磁盘空间的无用数据。 5倍 更多可用磁盘空间 CleanMyMac X 4.14.7帮您安全清理Mac系统垃圾 CleanMyMac X 4.14.7一键深度扫描mac系统…

python介绍,安装Cpython解释器,IDE工具pycharm的使用

python介绍 官方的Python解释器本质是基于C语言开发的一个软件&#xff0c;该软件的功能就是读取以py.结尾的文件内容&#xff0c;然后按照Guido定义好的语法和规则去翻译并执行相应的代码。这种C实现的解释器被称为Cpython。 python解释器的种类&#xff1a;Jython IPyth…

java数据结构与算法刷题-----LeetCode198. 打家劫舍

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 很多人觉得动态规划很难&#xff0c;但它就是固定套路而已。其实动态规划只…

第6节、T型加减速转动【51单片机+L298N步进电机系列教程】

↑↑↑点击上方【目录】&#xff0c;查看本系列全部文章 摘要&#xff1a;本章介绍步进电机T型加减速的控制方法&#xff0c;分三个小节&#xff0c;本小节主要内容为该控制方法的推导与计算。目前各平台对该控制方法介绍的文章目前较多&#xff0c;但部分关键参数并未给出推导…

莉莉与神奇花朵的冒险

现在&#xff0c;我将根据这些步骤编写一个对话形式的童话故事。 在很久很久以前的一个小村庄里&#xff0c;有一个勤劳善良的小女孩叫莉莉。她住在一间小茅屋里&#xff0c;和她的奶奶一起生活。奶奶年纪大了&#xff0c;行动不便&#xff0c;所以莉莉每天都要照顾她。 一天&a…

游戏开发-会飞的小鸟(已完结,附源码)

游戏开发-会飞的小鸟&#xff08;已完结&#xff0c;附源码&#xff09; 你将学到的课程链接详细介绍 你将学到的 掌握Java编程的基本技能开发出自己的“会飞的小鸟”游戏对面向对象编程有深刻的理解学会运用常见算法和数据结构解决问题能够独立调试和优化自己的代码 课程链接…

NLP_循环神经网络(RNN)

文章目录 RNN结构RNN实战RNN小结 RNN结构 NPLM 在处理长序列时会面临一些挑战。首先&#xff0c;由于它仍然是基于词的模型&#xff0c;因此在处理稀有词汇或者词汇表外的词汇时效果不佳。其次&#xff0c;NPLM不能很好地处理长距离依赖关系。而上面这两个局限&#xff0c;恰恰…

【芯片设计- RTL 数字逻辑设计入门 8 -- 四选一多路器】

文章目录 四选一多路输出器verilog case 语句verilog 代码testbench 代码仿真波形 问题小结 四选一多路输出器 制作一个四选一的多路选择器&#xff0c;要求输出定义上为线网类型 状态转换&#xff1a; d0 00 d1 01 d2 10 d3 11verilog case 语句 case(express…

蓝桥杯Web应用开发-CSS 基础语法4(字体属性、链接中的伪类、列表样式)

专栏持续更新中 字体属性 字体属性用于定义字体的类型、字号大小、加粗、斜体等方面样式。常用的字体属性如下表所示&#xff1a; 属 性可 取 值描 述fontfont-style、font-variant、font-weight、font-size&#xff08;或 line-height&#xff09;、font-family在一个声明中…

如何使用Docker部署DashDot服务器仪表盘并结合cpolar实现公网访问

&#x1f4d1;前言 本文主要是使用Docker部署DashDot服务器仪表盘并结合cpolar实现公网访问的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️** &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风…

go语言每日一练——链表篇(六)

传送门 牛客面试必刷101题—— 判断链表中是否有环 牛客面试必刷101题—— 链表中环的入口结点 题目及解析 题目一 代码 package mainimport . "nc_tools"/** type ListNode struct{* Val int* Next *ListNode* }*//**** param head ListNode类* return bool…

算法笔记刷题日记——3.简单入门模拟 3.2 查找元素

刷题日记 3.2 查找元素 B1041 B1004 B1028 B1032 A1011 A1006 A1036 错题记录 B1028 人口普查 某城镇进行人口普查&#xff0c;得到了全体居民的生日。现请你写个程序&#xff0c;找出镇上最年长和最年轻的人。 这里确保每个输入的日期都是合法的&#xff0c;但不一定是合理的…

网工内推 | 上市公司运维岗,红帽认证优先,带薪年假,节日福利

01 捷科智诚 招聘岗位&#xff1a;配置管理岗-运维 职责描述&#xff1a; 1.负责日常配置管理平台的维护及优化&#xff0c;包括权限管理、基线管理、版本管理、发布管理、变更管理等&#xff1b; 2.负责维护各个管理平台的用户管理、权限管理、项目初始化等工作&#xff1b; …