软件测试之 性能测试 性能测试基础指标 Loadrunner、Jmeter等工具

2024-05-12 09:20

本文主要是介绍软件测试之 性能测试 性能测试基础指标 Loadrunner、Jmeter等工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

你好,我是Qiuner. 为记录自己编程学习过程和帮助别人少走弯路而写博客 这是我的 github gitee

如果本篇文章帮到了你 不妨点个赞吧~ 我会很高兴的 😄 (^ ~ ^)

想看更多 那就点个关注吧 我会尽力带来有趣的内容
本文档基于 https://www.bilibili.com/video/BV1wC4y1Y7yX/?spm_id_from=333.337.search-card.all.click&vd_source=077127c579b82c23164b07dbc24cd570 这套黑马程序员的课,在其中加了不少个人的感悟。相信您看后一定能够加深理解

性能测试

  • 测试环境和用户环境一致
  • 性能测试的指标不是在测试结束后同意收集

测试的策略

基准测试

image-20231021111855403

image-20231021111906125

image-20231021111945410

  • 要测多次

image-20231021112004565

负载测试

image-20231021112217559

image-20231021112504511

稳定测试

image-20231021113217156

  • 1、把最大负载量变成15后再来稳定测试
  • 2、负载量以10来测试即可

image-20231021113958775

  • 绿色线是利用率,紫色线为吞吐量,蓝色线为响应时间

the optimum number of concurrent users 最佳并发用户数

the Maximum number of Concurrent Users 最大并发用户数

light load 轻负荷 heavy load 重负荷

resource saturated 资源饱和

Throughput Falling 吞吐量下降

end users effected 受影响的最终用户

Number of concurrent users 并发用户数

压力测试

image-20231021141256565

image-20231021141718648

并发测试

image-20231021142344140

image-20231021142609741

image-20231021142749453

测试的指标

响应时间

image-20231021143029894

image-20231021143534106

并发数

image-20231021143710850

image-20231021143813774

吞吐量

image-20231021144054212

image-20231021144500753

  • QPS需要配合具体操作才有意义

image-20231021144757322

  • QPS为一个请求,当TPS可能一个也可能多个

image-20231021145046318

点击数

image-20231021145246964

错误率

image-20231021145626824

资源使用率
  • 接近是可以的(超过一些)

image-20231021145749098

image-20231021150022654

性能测试流程

image-20231021150923134

image-20231021151240065

image-20231021151356657

性能测试用例

image-20231021151726709

image-20231021152916503

测试工具

image-20231021153822465

jmeter黑马理论

image-20231021154431298

image-20231021154509699

元件

image-20231021154818479

image-20231021155341069

image-20231021155651683

image-20231021155758192

线程组

image-20231021162706336

  • 直接点执行就可并行运行
  • 串行需要设定测试计划

image-20231021163041532

image-20231021163138866

image-20231021163159536

image-20231021163927821

http 请求

image-20231021164027732

结果查看

image-20231021165322507

image-20231021165439232

参数化

image-20231021165702112

image-20231021165805055

image-20231021165922850

image-20231021170626361

image-20231021170708489

  • 在此添加用户变量
用户参数

image-20231021170748707

image-20231021171329142

image-20231021171401057

  • 变量名按csv中数据一一对应

image-20231021172115957

jmeter与抓包实际应用

image-20231021194109370

  • 在这个界面。可以过滤抓包工具发过来的数据图中为只显示

  • ip地址可以增加

    image-20231021194222946

  • 点击run可以将选定的规则应用

image-20231021194822813

  • 软件的上半部分观看发送的数据,下半部分观看接收的数据

image-20231021195543334

  • 可以直接点击这里复制内容到jmeter

image-20231021195907183

点击登录按钮后出现两个ip,填写第一个ip的参数就能将数据对应并请求成功,但返回了两个内容这是为什么呢?

image-20231021200003089

  • 通过抓包工具看第二条参数的反回内容可以发现反回的是登录跳转后的页面

image-20231021201356891

  • 观看状态码,也可以得知是进行了从定向操作

想要知道请求发送是否是成功的,需要对比jmter和抓包工具的返回是否一致

image-20231021200728112

分别对应jmeter中的

image-20231021200755329

image-20231021200801557

  • 如果请求数据不一样,则需要找问题

image-20231021201010023

有多个请求相同的网址时,可以将其放在http请求默认值中

image-20231021201732328

image-20231021201741175

在两者记录数不匹配就是出问题了

image-20231021201904979

一个返回跳转后的页面,另一个返回空image-20231021201939295

  • 原因是没有cookie,协议会自动清除cookie,所以需要添加一个

  • image-20231021202138927

  • 请求间有关系时候必须加上

image-20231021202846694

当post请求上传的要

image-20231021202930063

image-20231021203034409

  • 不能直接复制过去,要手动添加
  • 文件类型要另外添加

image-20231021203811574

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

思考时间

image-20231021204314688

检查点
  • 数据断言,没有断言就不能判断是都登录成功

image-20231021204719694

参数化

image-20231021205323247

  • 随机字符串

image-20231021205304153

同步

image-20231021205438016

事物

image-20231021205606821

image-20231021205626423

  • 事物下面要有请求
关联

image-20231021205835935

image-20231021205938271

image-20231021210034440

image-20231021210050790

image-20231021210057013

生成测试报告

负载测试用命令行来做

image-20231021210356602

image-20231021210505373

  • jmeter -n -t E:\人资模块.jmx -l testgw.csv -e -o E:\a
  1. -n指定非图形模式运行,在命令行直接运行不弹出GUI界面。
  2. -t指定要运行的jmx测试文件。
  3. -l指定结果数据保存路径和文件名,生成csv格式数据文件。
  4. -e生成详细测试日志,包含每个请求的详细信息。
  5. -o指定生成HTML测试报告的目录。

性能测试的场景设计

image-20231021213404272

image-20231021215134675

  • 先理解业务需求
  • 写测试方案(没有正确答案,只有合理不合理)

loadrunner

  • 工具通过服务器有没有响应来判断是请求成功还是失败

image-20231024153554598

  • 录制前的设置

image-20231023092454952

script中上面的是录制用户的操作

下面的是录制用户发送的请求

做压力测试用下面

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 记得选上这个utf
遇到脚本录制没有内容的情况

image-20231023100350438

选择蓝色字体

image-20231023100418451

  • 在advanced中选择use the loadrunner proxy 来使用代理录制
使用面板上的代理录制

image-20231023101520838

image-20231023103328883

  • 运行脚本时,显示不能编制的错误

该错误为运行脚本字符串编制不成功的问题,函数有一些是没有成功结束字符串

image-20231023104725981

  • 文件上传记得要将文件路径更改为绝对路径或者将要找的文件放到脚本代码指定的寻找位置
脚本运行的思考时间设置了后

image-20231024103613349

  • 需要启用
  • 第三个是思考时间的倍数
  • 第四个是思考时间波动
  • 第五个是思考时间不超过

image-20231024144507594

删除谷歌登录\更新函数

image-20231024160105626

查看网页内容

image-20231024153859697 **

  • 网页快照

image-20231024154229795

  • 箭头一是自己操作时候响应的内容
  • 粉色是回放时候响应的数据

image-20231024154811752

  • 查找字符串函数搜red 函数模式一是找有特定文本的,可能会出现12OK也被匹配到
  • 将要查找的内容放在函数前面
集合点

image-20231024160419904

  • lr_rendezvous(“aa”); 把集合点名字写上即可
将关注的业务变为事物

image-20231024160932434

image-20231024161032617

  • 集合点和思考时间最好不要加在事物中
参数化

image-20231024161434636

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

image-20231024161856822

image-20231024161910354

  • 弹出的这个提示框表示是否要将全文中与选定字符串相等的内容替换

image-20231024162024922

  • 在此查看

image-20231024162903265

image-20231024163035526

image-20231024163206840

image-20231024163629794

关联

image-20231024171213621

发现添加的招聘计划附件上传不正常,于是去捕捉上传和保存的情况,

  • 得先找到变化的
  • rt_edit_id在人资料中是这个变化(保存文件招聘计划时候)

image-20231024170828093

  • 自己编写的和运行中分别寻找并进行比对
    • 可以使用抓包工具来对比有什么不同之处

image-20231024171646634

  • 先找body中的,然后找请求地址,最后zhao

image-20231024172043060

  • 左右边界查找

image-20231024172203191

  • 检查和关联很占系统的资源

做压力测试

  • 脚本使用场景中,log日志尽量少输出,选择错误时才输出

image-20231025170623343

  • 初始化

存中…(img-fCrJAdRZ-1715391138328)]

[外链图片转存中…(img-RVBTYhis-1715391138328)]

关联

[外链图片转存中…(img-cVY2aUiO-1715391138329)]

发现添加的招聘计划附件上传不正常,于是去捕捉上传和保存的情况,

  • 得先找到变化的
  • rt_edit_id在人资料中是这个变化(保存文件招聘计划时候)

[外链图片转存中…(img-U8vdEKwz-1715391138329)]

  • 自己编写的和运行中分别寻找并进行比对
    • 可以使用抓包工具来对比有什么不同之处

[外链图片转存中…(img-IJkuQlrI-1715391138330)]

  • 先找body中的,然后找请求地址,最后zhao

[外链图片转存中…(img-yTi3Gkdl-1715391138330)]

  • 左右边界查找

[外链图片转存中…(img-h7iF1soU-1715391138331)]

  • 检查和关联很占系统的资源

做压力测试

  • 脚本使用场景中,log日志尽量少输出,选择错误时才输出

[外链图片转存中…(img-sAAMaCDI-1715391138331)]

  • 初始化

这篇关于软件测试之 性能测试 性能测试基础指标 Loadrunner、Jmeter等工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

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

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

黑神话,XSKY 星飞全闪单卷性能突破310万

当下,云计算仍然是企业主要的基础架构,随着关键业务的逐步虚拟化和云化,对于块存储的性能要求也日益提高。企业对于低延迟、高稳定性的存储解决方案的需求日益迫切。为了满足这些日益增长的 IO 密集型应用场景,众多云服务提供商正在不断推陈出新,推出具有更低时延和更高 IOPS 性能的云硬盘产品。 8 月 22 日 2024 DTCC 大会上(第十五届中国数据库技术大会),XSKY星辰天合正式公布了基于星

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

【Linux 从基础到进阶】Ansible自动化运维工具使用

Ansible自动化运维工具使用 Ansible 是一款开源的自动化运维工具,采用无代理架构(agentless),基于 SSH 连接进行管理,具有简单易用、灵活强大、可扩展性高等特点。它广泛用于服务器管理、应用部署、配置管理等任务。本文将介绍 Ansible 的安装、基本使用方法及一些实际运维场景中的应用,旨在帮助运维人员快速上手并熟练运用 Ansible。 1. Ansible的核心概念