性能指标

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

如何做性能测试?

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

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

  1. 创建性能脚本

image.png

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

image.png
image.png

  1. 设置线程组

image.png

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

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

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

image.png

聚合报告

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

image.png


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

性能测试实战

安装禅道

下载

  1. wget https://www.zentao.net/dl/zentao/15.0.1/ZenTaoPMS.15.0.1.zbox_64.tar.gz

解压

  1. tar -xf ZenTaoPMS.15.0.1.zbox_64.tar.gz -C /opt/

启动

  1. /opt/zbox/zbox start

登录
image.png

录制性能脚本

打开Firefox 浏览器, 打开【设置】
image.png

找到网络设置
image.png

设置代理
image.png

http代理: 127.0.0.1
端口号: 8888

JMeter 新建测试计划

image.png
在新的测试计划中创建线程组,以及Http代理服务器
【测试计划】—【右键】—【添加】—【非测试元件】—【http代理服务器】
image.png

设置代理服务器

在代理服务器中设置 目标控制器
image.png
【目标控制器】—【测试计划-》线程组-禅道】
image.png

设置排除模式,
使用JMeter自带的排除模式
image.png

点击 【启动】
image.png

启动成功之后 使用 Firefox 浏览器 打开登录页面
image.png

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

image.png

停止之后 可以看到 服务器端录制的请求
image.png


总结

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

参考:

相关需求

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

编写脚本

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

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

    脚本设置好之后: 如果业务上存在上下游关联,我们通过设置json提取器或者正则表达式提取器 将数据提取出来设置为变量;

测试用户的数据准备

开发协助 从数据库中导出一部分账号信息 保存在csv文件中 在JMeter 设置csv数据驱动来模拟用户

在必要的接口上添加断言

设置线程组,在线程组中 设置对应线程数和执行时间
添加聚合报告;

执行测试

执行测试的时候,

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

发现性能缺陷并解决缺陷

开发和运维

测试报告

整个团队一起出测试报告