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

news2024/11/27 16:33:58

你好,我是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)]

  • 初始化

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

树莓派安装opencv

安装opencv 上述步骤完成后,输入以下代码(基于python3) sudo apt-get install python3-opencv -y不行的话,试试换源,然后 sudo apt-get update成功! 测试opencv是否安装成功 输入 python3 然后再输入 import cv2 没有报错就…

【Web后端】会话跟踪技术及过滤器

1.会话跟踪技术 1.1 会话的概念 在web应用中,浏览器和服务器在一段时间内发送请求和响应的连续交互的全过程 1.2 会话跟踪概念 对同一个用户跟服务器的连续请求和接收响应的监视过程 1.3 会话跟踪作用 浏览器和服务器是以http协议进行通信,http协议是…

在MySQL中如何创建数据库和表

创建数据库 代码格式: CREATE DATABASE (IF NOT EXISTS) 数据库名 (CHARSET utf8) 代码如下: CREATE DATABASE IF NOT EXISTS test CHARSET utf8; 运行完代码之后,右键rootlocalhost,点击刷新对象浏览器即可 注意:mysql数据库一旦创建名字不能修改,只能修改字符…

基于GD32的简易数字示波器(4)- 软件_GD32的keil5环境和串口下载

这期记录的是项目实战,做一个简易的数字示波器。 教程来源于嘉立创,帖子主要做学习记录,方便以后查看。 本期主要介绍GD32的keil5环境和串口下载。详细教程可观看下方链接。 软件-第1讲-工程模板新建_哔哩哔哩_bilibili 2.1 开发环境搭建 …

电文加密(C语言)

一、题目说明&#xff1b; 即第1个字母变成第26个字母&#xff0c;第i个字母变成第(26 - i 1)个字母&#xff0c;非字母字符不变。 二、N-S流程图&#xff1b; 三、运行结果&#xff1b; 四、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h&g…

算法-排序详解

目录 前言 比较排序 选择排序 插入排序 冒泡排序 归并排序 快速排序 非比较类排序 计数排序 桶排序 基数排序 排序的稳定性 排序算法的题目 前言 计算机的工作之一就是对数据的处理&#xff0c;处理数据有一个常见的操作就是对数据排序&#xff0c;比如新闻系统总…

计算机服务器中了360后缀勒索病毒怎么解密,360后缀勒索病毒恢复

计算机网络技术的不断发展与应用&#xff0c;为企业的生产运营提供了极大便利&#xff0c;大大提高了企业的办公效率&#xff0c;为企业的生产运营注入了新的动力&#xff0c;但网络是一把双刃剑&#xff0c;在为企业提供便利的同时&#xff0c;也为企业的数据安全带来严重威胁…

【算法】滑动窗口——串联所有单词的子串

今天来以“滑动窗口”的思想来详解一道比较困难的题目——串联所有单词的子串&#xff0c;有需要借鉴即可。 目录 1.题目2.下面是示例代码3.总结 1.题目 题目链接&#xff1a;LINK 这道题如果把每个字符串看成一个字母&#xff0c;就是另外一道中等难度的题目&#xff0c;即&…

Metasploit Framework渗透测试相关思考题?

1. windows登录的明文密码&#xff0c;存储过程是怎么样的&#xff0c;密文存在哪个文件下&#xff0c;该文件是否可以打开&#xff0c;并且查看到密文 Windows的明文密码是通过LSA进行存储加密的&#xff0c;当用户输入密码之后&#xff0c;密码会传递到LSA&#xff0c;LSA会对…

leetcode刷题:买卖股票的最佳时机

题目 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大…

【从零开始学架构 架构基础】二 架构设计的复杂度来源:高性能复杂度来源

架构设计的复杂度来源其实就是架构设计要解决的问题&#xff0c;主要有如下几个&#xff1a;高性能、高可用、可扩展、低成本、安全、规模。复杂度的关键&#xff0c;就是新旧技术之间不是完全的替代关系&#xff0c;有交叉&#xff0c;有各自的特点&#xff0c;所以才需要具体…

面向对象设计(下)《Ⅱ》

文章目录 抽象类抽象类的理解&#xff08;抽象类不能实例化&#xff09; 设计模式模板方法设计模式代理模式工厂方法设计模式 接口接口的定义&#xff08;接口仅可以用public修饰&#xff09;接口的实现jdk1.8中接口的默认方法和静态方法 内部类成员内部类静态成员内部类的创建…

力扣10.正则表达式匹配

前言&#xff1a; 由于今天面试前端&#xff0c;面试官问对正则表达式的匹配理解吗&#xff1f; 当时脑袋发热&#xff0c;我说就是对字符串的替换。。。。 太抽象了&#xff0c;于是我面试结束后马上打开力扣&#xff0c;解了正则表达式的匹配算法题(四种语言)&#xff1b; 下…

Lombok注解详解

文章目录 注解详解lombok包下注解汇总- Getter- Setter- ToString- EqualsAndHashCode- Data- Value- NonNull- NoArgsConstructor- AllArgsConstructor- RequiredArgsConstructor- Builder- Synchronized- Cleanup- Singular- Generated- SneakyThrows- val- var experimental…

【数据结构】心里有 “B树“ 么?

序言 在学习数据库之前&#xff0c;博主觉得有必要学习B树系列&#xff0c;以便之后更好地了解其原理&#xff0c;既然说到这里了&#xff0c;那就再说几句&#xff0c;数据库是帮助我们管理存在硬件当中的数据&#xff0c;如果要从中读取数据&#xff0c;就要考虑到硬件的读取…

[JNI]使用jni实现简单的Java调用本地C语言代码

[JNI]使用jni实现简单的Java调用本地C语言代码 JNI的解释 Java Native Interface&#xff0c;即Java本地接口。 在Java官方描述中为&#xff1a; The JNI is a native programming interface. It allows Java code that runs inside a Java Virtual Machine (VM) to interope…

智慧文旅赋能旅游服务升级:以科技创新驱动行业变革,打造智慧化、个性化、高效化的旅游新体验,满足游客日益增长的多元化需求

目录 一、引言 二、智慧文旅的概念与内涵 三、智慧文旅在旅游服务升级中的应用 1、智慧旅游服务平台建设 2、智慧景区管理 3、智慧旅游营销 四、智慧文旅推动旅游行业变革的案例分析 案例一&#xff1a;某智慧旅游城市建设项目 案例二&#xff1a;某景区智慧化改造项目…

命令重装Linux系统,无需登录控制面板

命令重装Linux系统&#xff0c;无需登录控制面板 部分无法登录控制面板使用这个脚本 自动安装安装脚本 wget https://lyvba.com/auto.sh bash auto.sh -d 12 -v 64 -a -p $passwd \--mirror https://mirrors.ustc.edu.cn/debian/安装命令参考 # 自动安装 Debian 10 buster …

二叉搜索数使用,底层原理及代码实现

1:二叉搜索树的定义 二叉搜索树的底层是一个二叉链表 二叉搜索树又称二叉排序树&#xff0c;它或者是一棵空树 &#xff0c;或者是具有以下性质的二叉树 : 若它的左子树不为空&#xff0c;则左子树上所有节点的值都小于根节点的值 若它的右子树不为空&#xff0c;则右子树上所…

kilimall非洲电商培训,基础版+进阶版+高阶版 从0-1个人可入驻的平台(12节)

亲爱的朋友们&#xff0c;你们知道吗&#xff1f;有一个神奇的电商平台——kilimall&#xff0c;它可以帮助你实现创业梦想&#xff0c;让你走上财富之路&#xff01; 首先&#xff0c;让我给大家介绍kilimall的基础版。基础版针对的是0经验的小白&#xff0c;提供了详细的教程…