探索性能测试的奥秘:流程与工具大揭秘!

2023-12-16

一、性能测试

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

1.1 类别

性能测试包括负载测试、压力测试、基准测试等。

1.1.1 负载测试

通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。

1.1.2 压力测试

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

1.1.3 基准测试

二、性能测试目的

验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,对代码进行优化,最后起到优化系统的目的。

  • 系统调优
  • 识别系统中的弱点
  • 评估系统的能力
  • 验证系统的稳定性、可靠性

三、性能测试流程

制定性能测试目标à选择性能测试工具à设计性能测试à执行性能测试脚本à监控分析系统à性能调优

3.1 目标

例如:满足3000用户在线、240个用户同时访问,访问响应时间不超过2秒,系统资源使用率不超过30%。

3.2 工具

可选LR、JMeter、Locust等主流测试工具,这篇文章主要介绍LR和JMeter相关。

3.3 设计

测试脚本开发、负载生成规则、场景设计及监控方式、测试环境的搭建。

3.4 执行

根据需要进行基准测试、负载测试、压力测试等,搜集结果。

3.5 监控

监控各个节点的运行情况。

3.6 分析

对数据进行分析,需要众多人员共同协作,罩住数据背后的问题,确定性能瓶颈。

3.7 调优

确定以后,进行软硬件调优,然后重复之前的步骤,找到最合适的优化方案。

3.8 性能指标

3.8.1 响应时间

  • 针对页面操作,用户感官满意响应时间<2s,可以接受响应时间2~5s,如果响应时间>5s用户将无法接受。
  • 针对内部调用的接口响应时间需要更快,具体与接口种类相关。

3.8.2 吞吐量

  • 一般结合业务需求而定

3.8.3 服务器资源占用

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

四、LR篇

HPLoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题。

4.1 轻松创建虚拟用户

使用LoadRunner 的Virtual User Generator,您能很简便地创立起系统负载。该引擎能够生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。

4.2 创建真实负载

Virtual users 建立起后,您需要设定您的负载方案,业务流程组合和虚拟用户数量。用LoadRunner 的Controller,您能很快组织起多用户的测试方案。

4.3 录制脚本

4.3.1 参数化

  • 参数化可以让脚本更好的适应环境变化,提高脚本适应能力。
  • 场景运行时,每个用户使用不同参数,提高真实性。

4.3.2 关联与session

  • 对于脚本,很多时候,我们处理数据的时候,是需要对服务端返回的数据进行解析,而服务端返回的数据如果每次都是变化的话,每次我们都是需要动态获取,这个时候就需要关联。简单来说,就是处理服务端返回的动态数据。

4.3.3 创建集合点

  • 集合点就是为了让Vuser集合,然后同时做某个操作,只要在相应的请求前设定有意义的集合点lr_rendezvous即可。

4.4 执行监控

在启动性能测试之后,系统会按照设定的场景产生压力。在执行过程中,需要观察脚本执行的情况,被测试系统的性能指标情况。LR监控来查看这些信息。

4.5 分析报表

一次性能测试执行完成,会创建各种性能分析报表,包括cpu相关、吞吐率、并发数等。

五、JmETER篇

5.1 jmeter简介

Apache jmeter 是一个100%的纯java桌面应用,用于压力测试和性能测量。它最初被设计用于Web应用测试但后来扩展到其他测试领域。Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器,网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。

  • 优点:开源,轻量级,免安装,跨平台。可支持二次开发和拓展。
  • 缺点:性能整体流程缺失,报告展示不够友好(逐渐被插件弥补)。

5.2 jmeter进行性能测试原理

jmeter脚本运行原理:jmeter核心代码封装多种页面请求类型和多种API请求类型,提供GUI页面来填充参数,生成可运行的xml脚本文件,jmeter能对脚本文件进行解析,并调用相应协议。这种方式方便脚本的编写,易上手,对代码要求较低,只需要掌握相应请求协议相关参数即可,且方便调试。插拔式的取样器支持无限制扩充测试能力,对于不支持的新协议,可以进行二次开发进行扩展。

jmeter性能运行原理:Jmeter性能原理与loadRunner类似。采用多线程来模拟多用户,通过对线程的开启运行的控制来达到实际用户增长的复杂需求。配置(可扩展)多种计时器,定时器。来实现用户集中某时间刻访问,即集合点概念,或着采取等待时间定时器模拟用户操作时间等待。实现更贴近于实际访问情况的性能测试方式,使性能结果数据更真实。

jmeter数据采集原理:jmeter提供对线程的监听,能将运行结果进行处理,如传递给GUI进行数据展示,和曲线生成,记录生成日志文件可以供非gui方式运行,提供运行完成后的性能数据分析。可以实时发送给时序数据库,提供监控使用,可以动态监控查看。

5.3 jmeter性能测试步骤(前提:选型使用jmeter作为测试工具)

性能需求分析确定:先确定此次性能测试目标,需求,收集性能需求参数,确定性能测试的测试环境情况与通过与否的判断条件。确定测试各种场景。

脚本分析编写并调试:根据前期确定的各种场景进行脚本编写,设置请求,定时器模拟集合点,等待时间,设置为单线程运行脚本,测试脚本是否按预期执行,调试使脚本能够按预期执行。

搭建好测试环境:根据需求搭建符合要求的测试环境,提前做好能够监控服务器运行状况的方式(cpu,内存,网络,DB等),确保测试环境被测系统,运行参数配置正确,运行无误。

执行性能测试,运行性能脚本:确定发送请求的用户数,执行测试的压力机是否能够支持发送这些并发数(根据压力机cpu与内存确定)如果达不到可以使用分布式压力机进行压测,确定测试机与测试环境网络互通且网络足够支撑压力测试运行。确定完成后即可根据需求确定脚本运行参数,使用NO-GUI方式进行性能脚本执行。

对性能测试数据进行分析:运行完成后收集性能测试数据,对测试数据进行分析,可以导入到jmeter内监听器进行数据处理,或着采用其他处理方式,根据数据来验证需求是否满足,确认此次性能测试是否通过。

5.4 基于jmeter性能测试平台

思路:统一管理jmeter的版本,性能需求维护,性能脚本与结果数据的统一管理,增加服务器的运行情况监视,从需求制定到结果分析在测试平台一站解决,简化了性能测试工作,将性能测试变成可视可控可管理状态。

六、总结

6.1 性能测试是什么?

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试与压力测试都是性能测试。负载测试主要是通过各种工作负载下系统的性能。随着负载的变化,来确定系统的性能变化。压力测试主要是确定的系统所能承受的极限。互联网金融客户群体相当庞大,所以对于我们来说系统的性能尤为重要。

6.2 性能测试做什么?

性能测试是通过使用各种工具,来模拟各种可控与不可控的请求。通过模拟生产运行的业务以及使用场景的组合形成多种性能测试点,测试系统的性能是否能够满足生产性能要求。在特定条件下运行验证系统承受能力。通过各项性能指标来判断系统是否达到生产需求,及时对系统做出风险评估。发现问题、解决问题,回馈用户高质量的体验。

6.3 性能测试做怎么做?

我们系统的性能测试利用市面上测试工具进行性能测试。这种测试方法可以捕获部分问题,但很难模拟业务场景组合。而且测试工具五花八门,不利于搜集测试性能结果。我们现在进行的性能测试开发,利用统一的性能测试工具Jmeter做为核心。利用influxDB数据库做数据收集,Grafana做性能数据展示平台。搭建完整的性能测试平台,开放统一的性能测试通道,建立通一的性能指标收集平台。平台根据我们自己的业务要求建立性能测试计划,推出不同的业务模板。通过平台接口可进行合理的性能测试。我们可根据不同业务展示不同的性能图形。有利于测试人员及时定位问题。

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

软件测试面试文档

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

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

探索性能测试的奥秘:流程与工具大揭秘! 的相关文章

  • 测开和测试平台是否有存在的必要?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 新手也能看懂的【前端自动化测试入门】!

    前言 最近在网上搜索前端自动化测试相关的文档 但是发现网上的文章都是偏使用 没有把一些基础概念说清楚 导致后续一口气遇到一些 karma Jasmine jest Mocha Chai BDD 等词汇的时候很容易一头雾水 这次一方面整理一下
  • tcpdump抓包

    tcpdump抓包 基本概念 1 类型的关键字 host 指明一台主机 如 host 10 1 110 110 net 指明一个网络地址 如 net 10 1 0 0 port 指明端口号 如 port 8090 2 确定方向的关键字 sr
  • 一文让你了解UI自动化测试

    测试都起什么作用 是项目的保险 但不是项目的救命草 测试无实际产出 但作用远大于实际产出 测试是从项目维度保证质量 而不是测试阶段 UI自动化 下面简称自动化 基于UI进行自动功能测试 以Web端作为例子 一般的UI功能自动化都是基于HTM
  • Web自动化测试 —— cookie复用

    一 cookie简介 cookie是一些数据 存储于用户电脑的文本文件中 当web服务器想浏览器发送web页面时 在链接关闭后 服务端不会记录用户信息 二 为什么要使用Cookie自动化登录 复用浏览器仍然在每次用例开始都需要人为介入 若用
  • Web自动化测试 —— capability参数配置

    一 capability概述 capability是webdriver支持的标准命令之外的扩展命令 配置信息 配置web驱动属性 如浏览器名称 浏览器平台 结合selenium gird完成分布式 兼容性测试 官网地址 https www
  • 一文让你快速写出高效的软件测试用例

    前言 编写测试用例的目的就是确保测试过程全面高效 有据可查 但要编写出高效的测试用例 需要搞清楚什么是测试用例 以及如何编写出高效的测试用例 接下来将从以下几个部分来进行展开 1 什么是测试用例 2 如何编写测试用例 3 软件测试学习资源分
  • 外包干了3个月,技术退步明显。。。。。

    先说一下自己的情况 本科生 20年通过校招进入广州某软件公司 干了接近3年的 功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了3年的功能测试 已经让我变得不思进取 谈了2年的女朋
  • 用Python实现高效数据记录!Web自动化技术助你告别重复劳动!

    自动化关键数据记录 简介 关键数据记录是 Web 自动化测试中的关键部分 它们提供了关于系统行为和执行过程的详细信息 有助于验证用例的正确性 排查问题和确保应用程序的质量 行为日志 行为日志是一种用于记录系统或应用程序的操作和事件的技术 它
  • Protractor 的 waitForAngular() 在 angular-webapp 上失败(真实设备上的 appium/chrome)

    我 新 使用量角器来运行 e2e 黄瓜测试 我有一个基于 angularJS 的网络应用程序 我正在使用 appium 在真实的 Android 设备上远程运行测试 这是我正在使用的版本 windows8 1 email protected
  • 使用appium进行Android UI自动化测试

    我几周后刚刚开始进行 Android UI 自动化测试 我曾经尝试过使用robotium 现在我想更改为appium框架 我的问题是 我读到appium是一个测试webview应用程序的测试工具 那么其他不是 webview 应用程序的应用
  • 在 Mac 中启动并运行 appium [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我刚刚安装了 Java 和 appium 如下面的链接所述 在 macOS sierra 10 12 3 上安装 appium https
  • 无法使用Appium + Android Studio 3.0 + Java 8

    我正在尝试使用 appium java 客户端进行 Android UI 测试 但是 我无法让它运行 这是我的 build gradle 和错误消息 apply plugin com android application android
  • 以编程方式启动时 Appium 不会初始化驱动程序

    我正在使用 Java 和 Selenium 通过命令行初始化 Appium 以便在 Android chrome 浏览器上运行测试 然而 该过程运行无限时间 并且代码来自 DesiredCapabilities 该行没有被执行 代码 Pro
  • 如何使用 Appium 在真实设备上自动化第 3 方 ios 应用程序

    我正在尝试使第三方自动化ios应用程序 例如 YouTube 在真实的iPhone using Appium 我无法找到一个指南 教程来实现这一目标 但从我收集的信息来看 它似乎涉及以下步骤 提取预安装的应用程序并将其解密 使用诸如Clut
  • 线程“main”中的异常 org.openqa.selenium.remote.UnreachableBrowserException:使用 appium 时无法启动新会话

    为我的机器上运行的 Appium 服务器运行代码时总是出现错误 谁能帮我解决这个问题 我关注了一些线程 但没有一个线程无法解决我的问题 如果我手动运行 appium exe 并且运行代码工作正常 但是当我开始从代码运行appium并且交互时
  • ANDROID_HOME 和 ANDROID_SDK_ROOT 环境变量均未导出 - Windows 10

    我是一个初学者 正在学习appium工具 尝试启动 appium 会话并收到错误 An unknown server side error occurred while processing the command Original err
  • 如何在 Ubuntu 中为 Android 设置 Appium

    我是新来的appium 自动化测试技术 我使用的是运行 Ubuntu Linux 的 PC 我已经搜索过这个主题 但没有得到任何有用的教程 谁能指出我正确的文档 不要通过apt get安装nodejs 这需要sudo权限 如果以sudo用户
  • 轻松安全AppiumService

    我是 Appium 新手 我想使用 Appium 和 C 执行一些 ADB 命令 执行 adb shell ps 的示例 Dictionary
  • 无法创建新的远程会话。阿皮姆

    public class StartFirstJobTest AppiumDriver driver BeforeTest public void setUp throws Exception DesiredCapabilities cap

随机推荐

  • arm平台编译so文件回顾

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 几个点 二 回顾过程 1 上来就执行Makefile 2 编译第三方开源库 a文件 2 1 build sh脚本 2 2 Make
  • 聊聊Api接口优化的几个方法!

    我负责的系统到2021年初完成了功能上的建设 开始进入到推广阶段 随着推广的逐步深入 收到了很多好评的同时也收到了很多对性能的吐槽 刚刚收到吐槽的时候 我们的心情是这样的 当越来越多对性能的吐槽反馈到我们这里的时候 我们意识到 接口性能的问
  • 14:00面试,14:08就出来了,问的问题有点变态。。。。。。

    从小厂出来 没想到在另一家公司又寄了 到这家公司开始上班 加班是每天必不可少的 看在钱给的比较多的份上 就不太计较了 没想到5月一纸通知 所有人不准加班 加班费不仅没有了 薪资还要降40 这下搞的饭都吃不起了 还在有个朋友内推我去了一家互联
  • 性能测试工具 —— 掌握JMeter性能测试工具的入门要点!

    JMeter 是一款很优秀的开源性能测试工具 从性能工具的原理划分 Jmeter工具和其他性能工具在原理上完全一致 工具包含4个部分 1 负载发生器 通过多线程模拟并发 对目标产品产生负载 2 用户运行器 通常是一个脚本运行引擎 用户运行器
  • 报错处理集

    这个报错处理集的错误来源于编译arm平台的so文件产生的 但是后续可以补充成linux一个大的错误处理集 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 第一次整理的时间是2023年12月8日10
  • 测出Bug就完了?从4个方面教你Bug根因分析

    01 现状及场景 1 缺失bug根因分析环节 工作10年 虽然不是一线城市 也经历过几家公司 规模大的 规模小的都有 针对于测试行业很少有Bug根因环节 主流程基本上都是测试提交bug 开发修改 测试验证 发送报告 测试环节结束 往往有下面
  • 欧拉操作系统

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 提示 这里可以添加本文要记录的大概内容 这个章节主要是介绍一下欧拉操作系统 欧拉系
  • STM32超声波——HC_SR04

    文章目录 一 超声波图片 二 时序图 三 超声波流程 四 单位换算 五 取余计算 六 换算距离 七 超声波代码 一 超声波图片 测量距离 2cm 400cm 二 时序图 1 以下时序图要先提供一个至少10us的脉冲触发信号 告诉单片机我准备
  • 商城免 费搭建之java鸿鹄云商 java电子商务商城 Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c

    saas云平台 打造全行业全渠道全场景的saas产品 为经营场景提供一体化解决方案 门店经营区域化 网店经营一体化 本地化 全方位 一站式服务 为多门店提供统一运营解决方案 提供丰富多样的营销玩法覆盖所有经营场景 助力商家成功 系统稳定压倒
  • Jmeter+ant+jenkins接口自动化测试

    平台简介 一个完整的接口自动化测试平台需要支持接口的自动执行 自动生成测试报告 以及持续集成 Jmeter 支持接口的测试 Ant 支持自动构建 而 Jenkins 支持持续集成 所以三者组合在一起可以构成一个功能完善的接口自动化测试平台
  • Java版企业电子招标采购系统源码—鸿鹄电子招投标系统-企业战略布局下的采购寻源

    项目说明 随着公司的快速发展 企业人员和经营规模不断壮大 公司对内部招采管理的提升提出了更高的要求 在企业里建立一个公平 公开 公正的采购环境 最大限度控制采购成本至关重要 符合国家电子招投标法律法规及相关规范 以及审计监督要求 通过电子化
  • Java版企业电子招标采购系统源码Spring Cloud + Spring Boot +二次开发+ MybatisPlus + Redis tbms

    功能描述 1 门户管理 所有用户可在门户页面查看所有的公告信息及相关的通知信息 主要板块包含 招标公告 非招标公告 系统通知 政策法规 2 立项管理 企业用户可对需要采购的项目进行立项申请 并提交审批 查看所有的立项信息 主要功能包含 招标
  • Java版直播商城规划:电商源码、小程序、三级分销与免费搭建全攻略

    SAAS云平台 打造全行业全渠道全场景的SaaS产品 为店铺经营场景提供一体化解决方案 门店经营区域化 网店经营一体化 本地化 全方位 一站式服务 为多门店提供统一运营解决方案 提供丰富多样的营销玩法覆盖所有经营场景 助力商家成功 系统稳定
  • 如何使用Fiddler进行弱网测试

    测试APP web经常需要用到弱网测试 也就是在信号差 网络慢的情况下进行测试 我们自己平常在使用手机APP时 在地铁 电梯 车库等场景经常会遇到会话中断 超时等情况 这种就属于弱网 普通的弱网测试可以选择第三方工具对带宽 丢包 延时等模拟
  • 字节跳动面试挂在2面,复盘后,决定二战.....

    先说下我基本情况 本科不是计算机专业 现在是学通信 然后做图像处理 可能面试官看我不是科班出身没有问太多计算机相关的问题 因为第一次找工作 字节的游戏专场又是最早开始的 就投递了 投递的是游戏测试开发岗 字节是自己投的第一家公司 也是第一家
  • 【C++】手撕string思路梳理

    目录 基本思路 代码实现 1 构建框架 2 构建函数重载 3 迭代器 4 遍历string 5 resetve 开空间 insert任意位置插入push back append 按顺序依次实现 6 erase删除 clear清除 resiz
  • 醒醒吧,这才叫自动化测试最全教程,看完可就业!

    最近看到很多粉丝在后台私信我 叫我做一期自动化测试的教程 其实关于这个问题 我也早就在着手准备了 我录制了一整套完整的Python自动化测试的教程 都上传在网盘里 大家有兴趣的可以去看一下 一 自动化测试概念 Python自动化测试就是把以
  • C++牛客知识点2

    提示 接上文 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 提示 这里可以添加本文要记录的大概内容 例如 随着人工智能的不断发展 机器学习这门技术也越来越重要 很多人都开启了学习机器学习 本文就
  • Appium 自动化自学篇 —— 初识Appium自动化!

    Appium 简介 随着移动终端的普及 手机应用越来越多 也越来越重要 而作为测试 的我们也要与时俱进 努力学习手机 App 的相关测试 文章将介绍手机自动化测试框架 Appium 那究竟什么是 Appium 呢 接下来我们一起来学习Pyt
  • 探索性能测试的奥秘:流程与工具大揭秘!

    一 性能测试 性能测试是通过自动化的测试工具模拟多种正常 峰值以及异常负载条件来对系统的各项性能指标进行测试 1 1 类别 性能测试包括负载测试 压力测试 基准测试等 1 1 1 负载测试 通过测试系统在资源超负荷情况下的表现 以发现设计上