新手上路:盘点「性能测试」必须掌握的技术点

2023-12-11 21:12

本文主要是介绍新手上路:盘点「性能测试」必须掌握的技术点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

新手上路:盘点「性能测试」必须掌握的技术点

前段时间,有一些小伙伴提出希望我们推送点性能测试的技术干货。所以,小编今天通过上网查资料,结合项目实操过程中的一些问题,总结了一些关于性能测试的内容,希望是大家想要了解的内容哈。

1、性能测试的目的

首先,先来明确一个问题,我们为什么要给产品/软件等做性能测试?

时下,市面上绝大多数的软件产品,都是分布式应用。这就产生了一些有意思的现象:开发的产品在少量用户使用时,可能不存在问题,一旦用户多起来,就容易出现系统瘫痪等多种问题。

那么,为什么会出现这种情况呢?这是由于用户的使用数量、用户场景的不确定性造成的。当并发用户数量超过负载量,系统就会陷入崩溃状态。由此可见,对新开发的产品做性能测试是非常重要的。它能帮助我们了解系统可承受的并发用户数量,带宽、cpu、内存、硬盘速度等。

2、性能测试的内容

性能测试主要包括以下几个方面的内容:负载测试、压力测试、容量测试等。

负载测试:不限制软件的运行资源,测试软件的数据吞吐量上限,以发现设计上的错误或验证系统的负载能力。目标是确定并确保系统在超出最大预期工作量的情况下,是否能够正常运行。

压力测试:也称为强度测试。通过模拟实际应用的软硬件环境,及用户使用过程的系统负荷,长时间或超大负荷地运行,来测试被测系统的性能、可靠性、稳定性等。

容量测试:可以看作是系统性能指标中,特定环境下的特定性能指标,即设定的界限或极限值。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:310357728【暗号:csdn999】

3、性能测试评价指标

说了这么多,下面就要对性能测试的指标做评价了。

从用户的角度来说,一般响应时间<2秒,就属于流畅的体验;如果响应时间>10秒,则要考虑改进响应速度的问题;

从产品的吞吐量来说,我们需要关注硬盘IO(读写)、网络IO(上行下行带宽)、cupIO、服务器的处理能力、客户端的打开页面数量等。

另外,我们还需要了解用户打开页面、登陆服务器、实现消息发送等某一动作的事务处理能力。

4、性能测试关注点

  • l 响应时间快慢,服务器端的处理速度
  • l 服务器端的使用情况
  • l 数据库端的资源使用情况
  • l 最大用户访问数量
  • l 同时处理最大业务数量
  • l 考察系统能否支撑7x24小时运转
  • l 内存资源、线程资源能否正常回收
  • l 代码,算法,sql语句设计是否合理
  • l 整个系统的稳定性,可恢复性

5、性能测试的核心原理

1)基于协议(前端、后端的通信机制),基于界面(与前端的交互),基于代码(后端);

2)基于网络的分布式架构:基于网络协议去模拟用户发送请求等;

3)基于多线程:模拟多线程操作,多人同时操作,模拟大负载量;

4)基于真实场景:模拟真实的网络环境,用户操作时间不确定性,操作不确定,得出数据的准确性也存在差异。场景不对,数据也不一定可用。

6、代码实现性能测试

针对某一功能做性能测试,可以通过论坛的登陆以及发帖(post协议,多线程这两点)、登陆操作、发帖操作(涉及协议)等,并采用多线程同时操作。

7、Loadrunner的使用

Loadrunner 的四个部件,分别是指:

  • Vuser generator:开发性能测试脚本;
  • Controller:提供多线程并发等操作;
  • Ananlysis:结果分析;
  • Load generator:负载生成器(controller 里面的一个主键)

下面给大家详细介绍一下。

在vuser generator (虚拟用户生成器)中,新建一个脚本:

进入界面,点击start录制一段脚本;

internet application 指的是b-s 架构,win 32 是指c-s 架构,默认是录制到action,勾选recond表示立即开始。

可以手写,可以录制。点击web_url,使用get请求;点击web_submit_data,使用post请求。

如果出现乱码,可以这样解决:

开始时:tool > advaced > support charset // utf-8 或者本机编码

运行时:vuser > preferences > option > convert from/to utf-8

最后是编码的差别,大家可以参考一下:

国标GB-x ,2byte-16bit , 2^16种组合,只对中文进行编码。

utf-8 :3byte = 24bit 2^24种组合 ,对全世界的文字进行统一的编码。

ascii码:一个字节 (2^8=128)

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

这篇关于新手上路:盘点「性能测试」必须掌握的技术点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/482131

相关文章

SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程

《SpringBoot中整合RabbitMQ(测试+部署上线最新完整)的过程》本文详细介绍了如何在虚拟机和宝塔面板中安装RabbitMQ,并使用Java代码实现消息的发送和接收,通过异步通讯,可以优化... 目录一、RabbitMQ安装二、启动RabbitMQ三、javascript编写Java代码1、引入

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

轻松掌握python的dataclass让你的代码更简洁优雅

《轻松掌握python的dataclass让你的代码更简洁优雅》本文总结了几个我在使用Python的dataclass时常用的技巧,dataclass装饰器可以帮助我们简化数据类的定义过程,包括设置默... 目录1. 传统的类定义方式2. dataclass装饰器定义类2.1. 默认值2.2. 隐藏敏感信息

如何测试计算机的内存是否存在问题? 判断电脑内存故障的多种方法

《如何测试计算机的内存是否存在问题?判断电脑内存故障的多种方法》内存是电脑中非常重要的组件之一,如果内存出现故障,可能会导致电脑出现各种问题,如蓝屏、死机、程序崩溃等,如何判断内存是否出现故障呢?下... 如果你的电脑是崩溃、冻结还是不稳定,那么它的内存可能有问题。要进行检查,你可以使用Windows 11

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义