• jmeter性能测试


    一、性能测试问题导入

    1.关注于哪些指标

    • 单位时间内的响应速度快不快(1个用户和多个用户)——打开速度快不快
    • 单位时间内能够处理的数量——能够同时让多少人访问(并发量)

    2.怎么调优

    性能评估汇报:某某app,在1000用户同时(**并发量**)进行以下操作(**性能场景**):
       1.登录
       2.查询
       3.评价
    
    消息成功率:100%
    平均响应时间为0.03s(**响应时间**)
    CPU使用率:80%,内存使用率:90%,网络带宽:50M,磁盘空间:50%(**资源使用率**)
    

    3.性能测试的关键点

    • 监控,分析,调优

    二、测试对象

    1.服务器的接口性能测试(80%):验证服务器是否满足需求

    • 模拟器-jemeter,模拟http协议,链接到后台服务器(web服务器+数据库服务器MySQL+Linux操作系统)

    2.终端性能测试(web端渲染/APP启动速度——UI性能):受用户环境影响,如网络较好/较差

    三、什么是性能测试

    1.性能测试也是软件测试的一种,它的主要方向是测试系统在一定的负荷压力下,系统的响应时间,吞吐量(TPS),稳定性,系统的可扩展性等性能指标

    • 吞吐量(漏斗,倒东西可以很快流下来)

    2.性能测试的基本目的

    • 验证是否达到用户的性能指标(逐步加压,1000人-》2000人,是否会有响应超时等错误)
    • 发现软件中存在的性能瓶颈并优化
    • 测试中得到的负荷和响应时间数据用于验证——评估系统的能力

    四、性能测试重点:关键业务领域的性能

    • 测试是在时间、成本、质量之间权衡

    五、性能测试一般流程

    • 评估-》加压-》bug,瓶颈-》分析,调优-》长时间跑(稳定性)

    六、性能测试与项目

    1.性能测试做的成功与否,与测试方法和测试自身所关联的项目背景都有关系(并不是所有的项目都需要性能测试)
    2.学习性能:测试思维方法、分析方法

    七、性能测试关键指标

    + 多:并发量
    + 快:延时,响应时间(用户感知的时间,是端到端的)
    + 好:稳定性(长时间运行)
    + 省:资源使用率
    
    思考时间(think time):指用户进行操作时每个请求之间的时间间隔,`为了能更加真实的模拟用户的操作`
    

    1.响应时间:对请求作出响应所需要的时间,是用户感知软件性能的主要指标;

    • 对于一个web系统,普遍接受的响应时间标准为2/5/8秒

    2.并发用户数

    • 平均并发用户数的计算模型:C=nL/T(常用计算模型-可供参考)

      • C-是平均的并发用户数
      • n-是平均每天访问用户数
      • L-是一天内用户从登录到退出的平均时间
      • T-是考察时间长度(一天内多长时间有用户使用系统)
    • 估算并发用户数量公式:使用系统用户数量*(5%~20%)

    3.吞吐量:指单位时间内系统处理用户的请求数

    • TPS(吞吐率):每秒事务数
    • 若用户数增加到某个值后,用户数增加,吞吐量不变,一般原因是由于网络堵塞,需要增大带宽

    八、jmeter基础简介

    1.jmeter性能测试工具简介

    • 多线程框架——支持多并发操作
    • 用户对服务器模拟负载(一台机器若负载太大,可做分布式性能测试)
    • 支持web、数据库、FIP服务器系统的性能测试
    • 开源(源码公开)、纯JAVA,可二次定制化开发

    2.jmeter运行环境搭建
    1) 下载安装JDK(若jmeter版本为5.11,JDK版本需安装大于1.8的)

    2)设置环境变量(Java环境是OK的)

    3)启动方式

    • GUI(界面化):windows(jmeter.bat启动)或Mac(jmeter.sh启动)系统
    • 非GUI(非界面化,命令行):Linux系统
    在jmeter安装路径的bin文件夹下创建终端命令窗口,输入sh jmeter命令打开GUI界面
    

    4)属性配置:更改jmeter.properties文件

    • language=zh_ch(37行)将应用程序设置为中文简体

    3.jmeter基本操作

    • 独立运行每个线程组(勾选,线程组有前后逻辑关系;不勾选,线程组同步进行)
    • 调度器(设置执行一段时间)(循环次数勾选永远)
    • 黄色/红色的三角标志,操作日志

    九、jmeter主要元件

    1.配置元件

    • http请求默认值:所有线程组的请求都会使用这个默认值
      • 性能工具:多进程(roadrunner),多线程(jmeter),线程数就代表用户数
    • http消息头管理器:添加授权头的值
    • http cookie管理器:添加后会自动管理cookie,即上个接口响应返回的cookie值可用于下个接口的请求中
    • http cache管理器:缓存,静态资源不是从服务器获取而是从静态中取的
    • 提取返回请求返回结果中的值赋予某个变量用于下一个接口,使用$.token——关联接口

    2.监听器元件

    • 察看结果树

      • 分析查看具体某一个请求的详情(请求头、请求体、响应头、响应体)
      • 在做性能测试场景的时候分析错误请求的原因——勾选仅错误日志按钮,在高并发状态下只显示错误日志
    • 聚合报告

      • 汇总统计:请求数、响应时间(平均的,90%,95%)等,单位是ms
      • 错误率——越低越好
      • 吞吐量——越高越好
      • 发送/接收——带宽
    • 用表格查看结果

    • 图形结果

    3.其他常用元件

    • 前置处理器:请求发出去之前执行的控制器(元件),比如加密 md5
    • 后置处理器:请求发出去之后执行的控制器(元件),比如提取数据——关联接口
    • 定时器
      • 思考时间-固定定时器
      • 同步定时器-集合点(例如九点开始预售)
      • 随机定时器
      • 吞吐量定时器
    • 断言(作用域,对某个请求做断言,把断言放在请求下)

    2.常用端口号

    • 80端口:HTTP协议的默认端口
    • 8080:tomcat默认端口号
    • 8888:重定向端口
    • 443端口:HTTPS协议的默认端口

    3.python常用的库:request,pandas
    4.jmeter高级应用(分布式、jenkins等)/监控平台/性能瓶颈分析

    十、性能测试过程

    1.什么是jmeter脚本

    • 用户操作被测软件系统某些场景的动作流程
    • 性能测试:重要场景从1到N
      • 功能测试:1个用户
      • 性能测试:N个用户

    2.快速开发漂亮的脚本

    • 准确——最基本要求,脚本可以正常运行
    • 快速——借助技术手动快速高效完成脚本开发
    • 漂亮——脚本逻辑、维护性高

    3.开发脚本方案(任何脚本开始之前都要先建一个线程组)

    • jmeter自带代理录制脚本:配置jmeter和浏览器代理服务器,点击启动,粗略录制请求过程(不常用)
    • 文档+抓包——导出脚本(抓包后导出会话export sessions->all sessions,jmx文件)拖拽到jmeter

    4.先使用一个线程组,即一个用户,使用查看结果数看是否能正确返回,再考虑并发

    5.jmeter参数化(将脚本中的某些输入使用参数来代替,运行时指定参数的取值范围和规则)流程

    • 找出需要做参数化的数据
    • 准备提供给参数化需要的数据源
    • 把脚本里的变量-》常量

    6.jmeter参数化方式

    • CSV文件-需要配置的元件
      • 使用场景:账号,密码
    • 函数式
      • 随机数
      • time
      • counter计数器
    • 变量
    • 编程式
  • 相关阅读:
    影响Scala语言设计的因素列表
    mysql查询不区分大小写问题分析和解决
    mysql基础之三:char与varchar区别,varchar(M)能存多少
    Springboot Actuator之三:spring boot健康检查对Redis的连接检查的调整
    nginx实现带参数目录域名重定向二级域名方法
    Nginx正则表达式之匹配操作符详解
    微服务API网关 vs. 传统企业级API网关
    无法打开SQL Server的连接
    URAL 1146 Maximum Sum(最大子矩阵的和 DP)
    leetCode 70.Climbing Stairs (爬楼梯) 解题思路和方法
  • 原文地址:https://www.cnblogs.com/jasmine0112/p/13560911.html
Copyright © 2020-2023  润新知