Jmeter测试学习笔记

第一章 jmeter基础知识

一.Jmeter工具中的组件

1.测试计划:Jmeter测试的起点。容器。

2.线程组:代表一定的用户

3.取样器:发送请求的最小单元

4.逻辑控制器:处理请求逻辑

5.前置处理器:请求之前的操作

6.后置处理器:请求之后的操作,可以用来进行数据提取

7.断言:判断请求结果是否正确

8.定时器:延迟请求

9.配置元件:配置请求

10.监听器:收集测试结果

二.组件作用域

下面这三个在配置元件中是默认一般必须存在的。

结论1:组件能作用于同级组件

结论2:组件能作用于同级组件下的子组件

结论3:组件能作用于父组件

三.目前市面上的接口

1.基于webservice的协议接口,使用xml来传输数据

2.基于dubbo的协议接口,使用json来传输数据

3.基于http的协议接口,使用json来传输数据

四.Jmeter接口测试实战

接口关联

1.正则表达式提取器

 1)变量名:可以随意定义

2)正则表达式,要包括有左边界和右边界以及(.*?),而且必须唯一

3)$1$ 表示取第一个正则,$2$表示取第二个正则

4)匹配数字,表示取第一个匹配到的值

5)默认值,没有匹配到就使用默认值

2.Json提取器

jsonpath的语法规则:只适用于json数据

{"name":"11","code":"code11"}

$代表根目录

.代表子节点

$.name          $.code

$.*:代表将根目录下的所有子节点值的获取

3.取数组的值通过 [下标],下标从0开始

1.变量名

2.是json path表达式

3.匹配数字,表示取第一个匹配到的值

4.默认值,没有匹配到就使用默认值

四.接口断言

常用的断言有:响应断言,json断言,和beanshell断言

1.响应断言

如何校验数据库?

用beanshell来实现

第二章 性能测试

一.性能测试的目的

性能测试是通过性能测试工具(Jmeter,loadrunner)通过特定方式,对系统施加一定的压力;正常,异常负载以及峰值来对系统进行实施压力,得到各项性能指标,保证系统的性能需求。

价值和目的:

1.评估系统的能力

2.识别系统的弱点:瓶颈,弱点

3.检查系统隐藏的问题

4.检验系统的稳定性和可靠性

二.性能测试指标理解透彻以及测算

1.指标

【虚拟用户数】:可以理解成线程,一个线程=一个虚拟用户

【并发数】:指在某一时间,一定数量的虚拟用户同时对系统的某个功能进行交互。一般通过集合点来实现。

【事务】:一个接口,多个接口,或一个流程都可以是事务。事务代表一个完整的功能,有由测试人员决定。一般把一个流程作为一个事务。

【场景】:性能测试的用例,

【响应时间RT】response time,

          平均响应时间:

           中位数:

           90%:从小到大排序,第90位的时间

           95%

           99%

        基准测试:一般设定一个用户请求接口,为200-500ms.

        压力测试:N个用户并发请求接口,一般设置为2s.

【TPS】:是系统的重要性能指标,用于衡量系统在一定时间内能够处理的事务数

transaction

如果一个接口是一个事务的话,TPS的数量=吞吐量

计算公式:总的事务数/总的运行时间=每一秒能完成多少个事务

(1)没有更详细的数据:根据二八定律(80%的事务在20%的时间完成)计算

TPS=(总的事务数*80%)/(总的运行时间*20%)

(2)如果有更详细的数据:根据业务的增长等,分情况计算

【QPS】:每一秒的查询率

【HPS】:每一秒的点击率(客户端的)

【吞吐量】:用来衡量网络成功传输的数据量,单位Byte/s

【资源利用率】:服务器的资源:CPU,内存,磁盘,网络

三.性能测试流程

1.需求的分析以及需求确定(指标值,场景,环境,人员)

2.性能测试计划和方案制定

基准测试:怎么做

负载测试:

压力测试:

稳定性测试:

3.性能测试准备阶段

人力,硬件,软件,环境折算

干净,保持各个版本一致

4.测试执行阶段

脚本生成和增强

场景设计

指标监控

性能瓶颈定位和性能调试

5.测试报告和总结

四.性能脚本的生成以及完善和增强

1.通过jmeter代理服务器录制脚本

 1)设置客户端的代理,

控制面板-> internet选项->连接-> 局域网设置->勾上代理输入jmeter所在电脑的ip个端口8888,  端口一般默认8888,

2)录制脚本

2.完善脚本以及增强脚本

token:一般用于鉴权

jmeter的聚合报告中的吞吐量=TPS

1)逻辑控制器:事务控制器,仅一次控制器,吞吐量控制器

量=TPS

吞吐量控制器:

Based on:

             Percent...:默认,按百分比来分配流量

              Total..:代表总次

2)定时器:尽量少用

3)集合点:在jmeter中叫同步定时器,用于实现并发

4)使用线程组

如下图:

其中线程属性中

线程数:代表虚拟用户数

Ramp -up:代表多久加载完这些线程数

循环数:3,每个线程发送的总请求数:100*3=300个
 

五.Jmeter的插件安装以及监控使用

1.下载一个插件管理包jmter-plugins-manger版本的jar包,放到jmeter的lib/ext的目录下,重启jmeter

六.实际性能压测的场景设置

场景:性能测试用例

一般大部分公司的并发量很难超过500,京东淘宝除外。如果有5000以上,1万,十万,百万一定要做集群。

1.单接口的基准测试:使用一个用户测试接口5分钟

目的:在没有任何压力的情况下,查看各项性能指标。

第三章:压力测试

一.关注哪些参数:

1.响应时间

   135,258原则

2.TPS

每秒通过的事务数

3.错误率

90%的正确率就可以接受,如果是对应的银行,金融的不行,需要有对应的容错机制

4.CPU和内存的使用情况

CPU:占有率最好不超过80%,有20%的空闲

磁盘:读写操作频率不要过高

二.如何设置场景

负载测试:逐步增加并发数

稳定性测试:持续时间确定。查看该时间段内的性能情况

用聚合报告查看压力测试结果

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

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

相关文章

vue3推荐算法

Vue 3 推荐算法主要指的是在 Vue 3 框架中实现的或者适用于 Vue 3 的算法库或组件库。Vue 3 由于其优秀的设计和性能,被广泛应用于构建各种类型的应用程序,包括需要复杂算法支持的项目。以下是一些在 Vue 3 中可能会用到的推荐算法资源: Vue-…

【leetcode】双指针算法技巧——滑动窗口

标题:【leetcode】双指针算法技巧——滑动窗口 水墨不写bug 正文开始: 滑动窗口介绍 滑动窗口是一种常用的算法技巧,用于解决一些涉及 连续子数组或子串 的问题。它的基本思想是 维护一个窗口,通过 在窗口内移动 来寻找满…

图灵奖得主AviWigderson:随机性与AI深度融合,引领计算科学新篇章

近日,理论计算机科学领域的杰出代表Avi Wigderson教授荣获了享有“计算机界诺贝尔奖”美誉的图灵奖,以表彰他对计算中随机性和伪随机性研究的杰出贡献。这一荣誉不仅彰显了Wigderson教授在计算理论领域的卓越成就,也为当前热门的AI和深度学习…

嵌入式中C++指针使用方法总结

各位开发者大家好,在分享指针之前,先来看一下int *p[3]和int (*p)[3] 的区别。 int *p[3] p是一个数组,此数组有3个元素,每个元素都是int*类型,也就是指向整型数据的指针类型。 int a=10,b=20,c=30; int*p[3]={&a,&b,&c}; 而int(*p)[3]中的p是一个指向数组的…

强强联手|AI赋能智能工业化,探索AI在工业领域的应用

随着人工智能(AI)技术的不断发展和应用,AI在各个领域展现出了巨大的潜力和价值。在工业领域,AI的应用也越来越受到关注。AI具备了丰富的功能和强大的性能,为工业领域的发展带来了巨大的机遇和挑战。 一站式软件外包、项…

python使用redis存储时序数据

import redisdef ts_demo():"""时序数据存储RedisTimeSeries测试"""# 连接到Redisr redis.Redis(hostlocalhost, password"xxxx", port63790, db0)r1 r.ts()# print(r1.get("ts_key"))# print(r.exists(ts_key))# # 清空键…

链动3+1模式相比传统商业模式有何优势?

链动31模式是一种创新的商业模式,它结合了身份机制、直推奖励和团队奖励等策略。该模式通过设定代理和老板两种身份,构建了一个清晰的裂变链条。用户可以通过推荐新用户加入来获得奖励,并实现身份的升级。 假设有一个电商平台采用了链动31模…

linux离线安装MySql

一、mysql离线安装包下载 地址:MySQL. 点击DOWNLOADS,点击下图链接 点击Community Server Select Version 版本下拉框选择有两个选择 8.3.0 Innovation 是创新版,8.0.36是稳定版本,选择8.0.36 Select Operating System 操作系…

【光伏科普】光伏软件都有些什么功能?

光伏软件是为满足光伏行业特定需求而设计的工具,它涵盖了多个方面的功能,以支持光伏系统的设计、分析、优化和运营。以下是光伏软件通常具备的一些核心功能: 1.光伏系统设计 组件布局优化:根据地理位置、光照条件、阴影遮挡等因素…

cowa新的数据筛选代码

cowa新的数据筛选代码 代码地址: https://git.cowarobot.com/lhb/data_extracting 一阶段筛选 修改配置文件 config/common_stage.yamlversion: 3 services:de:image: harbor.cowarobot.cn/lhb/data:crpilot2.5-torch2.2environment:- CRPILOT_INSTALL_VERSIONx86…

接口压力测试 jmeter--入门篇(一)

一 压力测试的目的 评估系统的能力识别系统的弱点:瓶颈/弱点检查系统的隐藏的问题检验系统的稳定性和可靠性 二 性能测试指标以及测算 【虚拟用户数】:线程用户【并发数】:指在某一时间,一定数量的虚拟用户同时对系统的某个功…

socket编程——tcp

在我这篇博客:网络——socket编程中介绍了关于socket编程的一些必要的知识,以及介绍了使用套接字在udp协议下如何通信,这篇博客中,我将会介绍如何使用套接字以及tcp协议进行网络通信。 1. 前置准备 在进行编写代码之前&#xff…