性能测试

性能指标

  • xxx功能,在 xxxx并发场景下,服务器CPU使用率 内存使用率,响应时间

如何做性能测试?

  1. 拿到性能测试对应的性能指标 (上级领导)
  2. 测试人员 准备测试脚本
  3. 执行测试
  4. 发现问题,修复之后,再压测试
  5. 测试报告

以 Cnode 社区为例,
5个用户
发帖和查看话题详情以及收藏话题
5分钟
要求 服务器的CPU 使用率 不超过 85%
内存不超过 85%
响应时间不大于1秒

  1. 创建性能脚本

性能测试 - 图1

脚本如下:
📎性能测试.jmx
使用到用户
📎user.csv

性能测试 - 图2
性能测试 - 图3

  1. 设置线程组

性能测试 - 图4

  • 线程数: 模拟的用户数 (一般多少个并发 就设置多少个线程数)
  • Rump-Up 时间: 启动上面设定总的线程数所需要的总时间,比如:线程数设置为10000,Rump-time 时间设置为20秒, 即20秒内生成10000个线程,每秒生成500个线程。 (配置主要依据总的线程数和自己电脑配置)
  • 循环次数: 执行多少次。 如果设置为永远,则一直运行

当设置为永远的时候,会跟下面的调度器一起使用

  • 持续时间: 运行的时间
  • 启动延迟: 点击开始运行按钮之后 延迟多少秒之后才开始运行。比如设置10,点击运行10秒之后才开始运行脚本。

性能测试 - 图5

聚合报告

运行性能测试的时候,添加聚合报告
【线程组】—【右键】—【添加】—【监听器】—【聚合报告】
性能测试 - 图6

性能测试 - 图7


实战:
1, 搭建Linux服务器 禅道服务
2。 压测禅道

性能测试实战

安装禅道

下载
wget https://www.zentao.net/dl/zentao/15.0.1/ZenTaoPMS.15.0.1.zbox_64.tar.gz
解压
tar -xf ZenTaoPMS.15.0.1.zbox_64.tar.gz -C /opt/
启动
/opt/zbox/zbox start
登录
性能测试 - 图8

录制性能脚本

打开Firefox 浏览器, 打开【设置】
性能测试 - 图9

找到网络设置
性能测试 - 图10

设置代理
性能测试 - 图11

http代理: 127.0.0.1
端口号: 8888

JMeter 新建测试计划

性能测试 - 图12
在新的测试计划中创建线程组,以及Http代理服务器
【测试计划】—【右键】—【添加】—【非测试元件】—【http代理服务器】
性能测试 - 图13

设置代理服务器

在代理服务器中设置 目标控制器
性能测试 - 图14
【目标控制器】—【测试计划-》线程组-禅道】
性能测试 - 图15

设置排除模式,
使用JMeter自带的排除模式
性能测试 - 图16

点击 【启动】
性能测试 - 图17

启动成功之后 使用 Firefox 浏览器 打开登录页面
性能测试 - 图18

登录成功之后 点击【停止】

性能测试 - 图19

停止之后 可以看到 服务器端录制的请求
性能测试 - 图20


总结

  1. 性能测试的流程? (你们公司是如何做性能测试的)

参考:

相关需求

拿到性能测试相关的需求已经对应性能指标;

编写脚本

根据需求 在JMeter 编写对应的测试脚本

  1. 如果有接口文档,我们根据接口编写http请求
  2. 如果是web页面的话, 通过设置代理抓取对应http请求

脚本设置好之后:
如果业务上存在上下游关联,我们通过设置json提取器或者正则表达式提取器 将数据提取出来设置为变量;
测试用户的数据准备
开发协助 从数据库中导出一部分账号信息 保存在csv文件中
在JMeter 设置csv数据驱动来模拟用户
在必要的接口上添加断言
设置线程组,在线程组中 设置对应线程数和执行时间
添加聚合报告;

执行测试

执行测试的时候,

  1. 查看聚合报告: 响应时间 (99%), 错误率
  2. 查看服务器的状态: top (cpu,内存)

    发现性能缺陷并解决缺陷

    开发和运维

    测试报告

    整个团队一起出测试报告