IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 零成本实现Web性能测试——基于Apache JMeter和Gatling 笔记(一) -> 正文阅读

[开发测试]零成本实现Web性能测试——基于Apache JMeter和Gatling 笔记(一)

在了解测试的相关理论后,需要对一些测试工具进行进一步的学习。在前面《软件测试的艺术》的书中已经展示了性能测试是系统测试关键的一种测试,所以我们加强对性能测试的理解——包括性能测试用例,性能测试工具,性能测试报告和性能测试流程等。

《零成本实现Web性能测试——基于Apache?JMeter和Gatling》这本书共有20章

  • 性能测试基础
  • JMeter基础知识
  • Web性能测试脚本录制与开发
  • 数据库性能测试脚本开发
  • FTP性能测试脚本开发
  • LDAP性能测试脚本开发
  • Web?Service性能测试脚本开发
  • JMS性能测试脚本开发
  • 服务器监控测试脚本开发
  • 详解JMeter测试元件
  • JMeter进阶知识
  • JMeter性能测试实战——电话销售系统
  • Gating基础知识
  • Gatling?会话
  • Gatling?HTTP协议
  • Gatling?JMS
  • Gatling性能测试实战——搜索引擎

本文首先从性能测试的基本概念入手,简要介绍了性能测试的定义、目的、分类、关注指标和基本流程,然后对JMeter做了一个概要介绍,主要包括JMeter的特点和一些技术术语。

性能测试基础

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

性能测试的目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,进而优化软件,最后起到优化系统的目的。主要包括:

  • 评估系统的能力:测试中得到的负荷和响应时长数据可以被用于验证所计划模 型的能力,并帮助做出决策。
  • 识别系统的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从 而修复体系的瓶颈或薄弱的地方。
  • 系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。
  • 检测软件的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中隐含的问题或冲突。
  • 验证稳定性和可靠性:在一个生产负荷下执行测试 一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。

性能测试类型包括负载测试强度测试容量测试

  • 负载测试(Load Testing):通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。
  • 压力测试(Stress Testing):在软件工程中,压力测试是对系统不断施加压力的测试,是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
  • 容量测试(Volume Testing):确定系统可处理同时在线的最大用户数

常见的观察指标:

B/S架构:平均每秒响应次数,平均每秒业务脚本的迭代次数,成功的请求,失败的请求,成功的单击次数,失败的单击次数,每秒单击次数,每秒成功的单击次数,每秒失败的单击次数,尝试连接数,吞吐率

C/S架构(软件后台通常是数据库):用户连接数,数据库死锁,数据库Cache的命中情况

其他:CPU占用率、 内存占用率、数据库连接池等

性能测试基本流程

  1. 明确性能测试需求
  2. 制定性能测试方案
    1. 测试背景
    2. 测试目的
    3. 测试范围
    4. 测试进入条件
    5. 测试退出条件
    6. 测试指标要求
    7. 测试策略
    8. 测试时机
    9. 测试风险
    10. 测试资源
  3. 编写性能测试案例
  4. 执行性能测试案例
  5. 分析性能测试结果
  6. 生成性能测试报告
    1. 测试基本信息,包含:测试目的、报告目标读者、术语定义、参考资料
    2. 测试环境描述,包含:服务器软硬件环境、网络环境、测试工具、测试人 员
    3. 性能测试案例执行分析:需要详细描述每个测试案例的执行情况,以及对 对应测试结果进行分析
    4. 测试结果综合分析及建议:对本次性能测试做综合分析,并给出测试结论 和改进建议
    5. 测试经验总结

JMeter基础知识

Apache JMeter是100%的Java桌面应用程序,用于对软件做压力测试。它最初被设计用于Web应用测试,但后来扩展到了其他测试领域。

JMeter主要特点

  • 支持对多种服务器/协议类型进行测试
  • 支持通过录制/回放方式获取测试脚本
  • 具备高可移植性,是100%纯Java程序
  • 采用多线程框架,允许通过多个线程并发取样以及通过独立的线程组对不同的功能同时取样
  • 精心设计的GUI支持高速用户操作和精确计时
  • 支持以缓存和离线的方式分析/回放测试结果
  • 具备高扩展性

JMeter常用术语

  • 采样器(Sampler):采样器是JMeter测试脚本的基础单元,用户可以用它来向服务器发出一个特定的请求,采样器会在超时前等待服务器的响应。
  • 逻辑控制器(Logic Controller):用户通过逻辑控制器来控制JMeter测试脚本的执行顺序,以便测试能够按照用户期望的顺序和逻辑执行。
  • 监听器(Listener):监听器被用来收集测试结果信息,并以用户指定的方式加以展示。
  • 配置元件(Configuration Element):配置元件被用来设置一些JMeter测试脚本公用的信息。
  • 断言(Assertion):断言被用来验证服务器实际返回的信息,与用户期望的情况是否相符。
  • 定时器(Timer):定时器被用来保存JMeter测试脚本与时间相关的一些信息,例如思考时间(Think Time)。
  • 前置处理器(Pre-Processor):在前置处理器的作用范围内,任何采样器被执行前,都要先执行前置处理器。
  • 后置处理器(Post-Processor):在后置处理器的作用范围内,任何采样器被执行后,都要执行对应的后置处理器。
  • 测试计划(Test Plan):测试计划是JMeter测试脚本的根节点,关于整个测试脚本的一些基础设置,可以在测试计划中设定,例如用户定义变量
  • 线程组(Thread Group):线程组定义了一个虚拟用户池,其中每一个虚拟用户都使用同样的测试脚本。
  • 工作台(WorkBench):工作台被用来保存暂时不使用的测试元素,当测试人员保存测试计划时,工作台中的内容不会被一起保存。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-09-26 10:29:14  更:2021-09-26 10:30:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 9:41:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码