软件测试——性能测试

软件测试——性能测试性能 指时间 系统处理用户请求的响应时间 和资源 系统运行过程中 系统资源的消耗情况 性能测试 使用自动化工具 模拟不同的场景 对软件各项性能指标进行测试和评估的过程

大家好,欢迎来到IT知识分享网。

性能测试的概念

什么是性能测试

性能:指时间(系统处理用户请求的响应时间)和资源(系统运行过程中,系统资源的消耗情况)
性能测试:使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程。

性能测试的目的

性能测试的时机

通常在功能测试通过之后进行

性能测试的策略

基准测试
通常为单用户测试。一般不会单独存在,它的目的是建立一条基准线
常见的使用场景有:
1.为多用户并发测试等综合场景提供参考依据
2.先进行一次基准测试,当系统软硬件环境发生变化后再进行一次,以确定变化对性能的影响



负载测试
在满足客户要求的性能指标下,逐步增加系统负载,找到系统能够承受的最大负载的测试

稳定性测试
将系统在客户要求的负载下运行足够长的时间(时长通常由用户规定),观察其稳定性的测试

压力测试
在高负载下测试系统,看其在这种状态下是否存在隐患,是否有良好的容错力和恢复力

性能测试的指标

响应时间
指从客户端发起请求开始,到接收到结果的总时间。包括:服务器处理时间+网络传输时间

并发数
某一时刻同时向服务器发送请求的用户数

吞吐量
指的是单位时间内处理的客户端请求数量。从技术指标上,可以用每秒事务数(TPS)和每秒查询数(QPS)来衡量。
TPS:服务器每秒处理的事务请求的数量
QPS:服务器每秒处理的指定请求的数量


点击数
所有的页面元素发起的请求总量

错误率
系统在负载的情况下,失败业务的概率

资源利用率
资源的使用量 / 总的资源可用量 * 100%
没有特殊要求的情况下,通常要求:
CPU使用率不高于85%
内存使用率不高于80%
磁盘速率不高于90%
网络速率不高于80%





性能测试的工具

在这里插入图片描述

Jmeter

Jmeter最基础的案例

在这里插入图片描述

线程(用户)-线程组

在这里插入图片描述

配置元件-HTTP信息头管理器

在这里插入图片描述

取样器-HTTP请求

在这里插入图片描述

监听器-查看结果树

在这里插入图片描述

监听器-聚合报告

在这里插入图片描述

Jmeter参数化

参数化的本质是使用不同的测试数据测试相同的功能,目的是将测试数据与测试方法分开。

用户定义的变量(常用)

使用场景:

可理解为需要定义全局变量的时候

使用步骤:

1.右键:添加-配置元件-用户定义变量
2.在下图红框中维护变量 在这里插入图片描述
3.在需要用到变量的地方引用变量:${变量名称}

用户参数

使用场景:

不同的用户使用不同的测试数据

使用步骤:

1.右键:添加-前置处理器-用户参数
2.在下图红框中维护变量 (注意有几个线程就要维护几个用户)
在这里插入图片描述
3.在需要用到变量的地方引用变量:${变量名称}


CSV数据文件设置(常用)

使用场景:

不同的用户,或者同一个用户的多次循环,使用不同的测试数据。需要提前准备数据。

使用步骤:

函数

使用场景:

不同的用户,或者同一个用户的多次循环,使用不同的测试数据。不需要提前准备数据。

使用步骤:

在这里插入图片描述
常用的几个函数:
random:在给定的最小值和最大值之间生成一个随机数
counter:生成一个递增的计数器值
time:生成一个当前时间的时间戳或格式化日期时间字符串。如果不提供格式,则默认生成时间戳。



Jmeter断言

断言的目的是让程序自动判断预期结果和实际结果是否一致。

添加方式:右键:添加-断言

Jmeter关联

当请求之间有依赖关系,比如一个请求的入参是另一个请求返回的数据,这时候就需要用到关联处理。

关联处理一般需要用到后置处理器,常用的为:正则表达式提取器XPath提取器JSON提取器

提取到的内容都通过${引用名称}来使用

正则表达式提取器(常用)
使用场景:可以针对任意格式的响应数据进行提取
在这里插入图片描述
XPath提取器
使用场景:可以针对HTML格式的响应数据进行提取
在这里插入图片描述
XPath教程见:https://www.w3school.com.cn/xpath/xpath_syntax.asp
JSON提取器
使用场景:可以针对JSON格式的响应数据进行提取
在这里插入图片描述
JSONPath教程见:(非官方,挂了就关键字搜索其他的)软件测试——性能测试
软件测试——性能测试
查看JSONPath提取值的网站:https://jsonpath.com/











Jmeter属性

上节提取到的内容是保存为变量的,局部生效,无法跨线程组使用。如果想要实现跨线程组使用就需要定义为属性。

步骤:

(线程组1)
1.添加合适的提取器,提取想要的内容。
在这里插入图片描述
2.将提取的内容定义为属性。需要用到setProperty函数BeanShell后置处理程序
在这里插入图片描述
在这里插入图片描述
(线程组2)
3. 使用属性。需要用到Property函数
在这里插入图片描述







Jmeter常用逻辑控制器

循环控制器

在这里插入图片描述

ForEach控制器

一般常与用户定义的变量、正则表达式提取器等配合使用。该控制器下的取样器会被循环执行,每次读取不同的变量值。

在这里插入图片描述

用户定义的变量配合使用案例在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


Jmeter常用定时器

同步定时器

作用是阻塞线程。当在规定的时间内达到一定的线程数量,这些线程会在同一个时间点一起释放,瞬间产生很大的压力。

使用场景:模拟XX个用户同时XXX
在这里插入图片描述

常数吞吐量定时器

使用场景:负载测试
在这里插入图片描述

固定定时器

Jmeter直连数据库

在这里插入图片描述

以下介绍的是直连MySQL数据库

4.添加JDBC请求 在这里插入图片描述

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/117926.html

(0)
上一篇 2025-11-17 09:20
下一篇 2025-11-17 09:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信