0


Jmeter性能测试1

性能测试的概述

 性能:百度百科定义:器物的性质与效用。

 生活中:买手机,买电脑,买车—》性能好:快(时间短)、资源

 软件的性能:软件在允许的过程中反应的速度(时间),消耗的资源的情况等等。

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

  负载测试、压力测试都是属于性能测试。

       负载测试:确定各种工作负载下系统的性能,目标是测试负载逐渐增加时各项指标的变化情况;

       压力测试:是通过确定一个系统的瓶颈值或者不能接受的性能点,并且获取提供最大服务级的测试。

为什么要做性能测试?

应用程序是否能够很快的响应客户的需求?

应用程序是否能够处理预期的用户负载并且还有盈余的能力?

应用程序是否能够处理业务所需的事务数量?

应用程序在预期或者非预期的用户负载下,运行是否稳定?

是否能够确保用户在使用软件的时候获得比较舒服的体验。

性能的问题的根源?

多平台,超多服务器,异构系统,多应用并行,数千个网站,相互协作同时工作,这个过程中很容易出现交叉的故障点。

误区:提高一些硬件配置,性能就变好了,优化了,所以不用做性能测试了,或者说性能测试不重要?

错误:只是临时解决问题,根本问题没有解决。

影响性能的因素有哪些?

。硬件环境

。软件本身(算法逻辑、数据、中间件)

。网络带宽

。软件环境

性能的评定标准:性能指标

 响应时间:指的是从客户端发出请求开始,到接收到服务器的响应,并且看到响应的内容为止,这个时间段,称为响应时间。

 响应时间=网络传输的时间+服务器处理的时间+浏览器解析呈现的时间

     如何弱化网络传输的时间和浏览器解析呈现的时间:
  1. 前期测试建议在局域网中进行;

  2. 性能测试建议一定要独立的测试环境;(测试环境必须进行数据初始化)

  3. 在晚上测试性能

    用户数:

      在线数:在软件上,不一定在操作
    
      并发数:在软件上,并且在操作。(特定的时间点或者时间段,操作不一定相同)
    
      在线数>=并发数
    

实际需求 –》 测试用例

  1. 测试 500 人登录的性能 –》在线数500,并发数没有要求;可以是一组线程或者多个线程组一起实现;
  2. 测试500人并发登录的性能—》在线数500,并发数500;

测试的时候建议使用一个线程组实现,多线程组需要进行设置;

  1. 测试300人并发登录的同时,有200人正在注册 –》在线数500,并发数500

注册和登录在不同的线程组中设置

资源的利用率:cpu、内存、磁盘、网络

吞吐量:处理事务的总数据量

吞吐率:单位时间内处理的数据量

点击量:点击的数量

点击率:单位时间内点击的次数

     吞吐量、吞吐率、点击量、点击率 都是从软件的处理能力来判断软件性能的。

例如:软件的响应时间是1秒,所以性能就很好,判断正误?

  错的,太片面了,其它的性能指标不清楚,用户数清楚,比如只有一个用户使用…

软件性能是否达标,依据是用户的性能的需求。

不同的角度出发,关注的性能指标不一样,不同的平台对性能的要求也不一样的。

何时进行性能测试?

  一般都是在功能测试的中后期进行,性能测试是依赖于功能测试的。

  性能测试一定要有自己独立的测试环境,并且测试环境还要进行用户数据的初始化。

性能测试的过程?

 前期准备(功能稳定、组建团队)

 选择合适的测试工具(loadrunner 商用型、jmeter(开源的)、自研的(华为:loadspace)

 性能测试的计划方案(需求分析,计划,策略,资源)

 性能测试的实现(准备环境->设计场景->编写测试脚本->辅助工具)

 性能测试的执行(工具执行脚本->记录结果)

 性能调优分析-》回归测试

 性能测试报告

     要测试的目的:本次性能测试预期要达到的性能要求

     测试概要描述:结构,人员,环境,场景(重点),过程简介

     测试结果和数据

     测试结论

Jmeter

基于java开发的开源的测试工具:轻量级

性能测试

接口测试

支持多种协议

Jmeter 的组成部分

性能测试的原理:基于协议,用工具模拟实际操作(发送多个请求),并且收集测试数据,生成报告。

负载发生器:产生负载,产生压力,多进程或者多线程模拟用户行为

用户生成器:脚本运行的引擎,附加在进程或者线程之上

资源生成器:生成测试过程中服务的资源数据(收集测试数据)

报表生成器:根据测试中获取的数据生成报表,提供可视化数据显示方式

Jmeter 环境搭建

  1. 基于java,运行的时候需要 java的环境:JDK,要配置环境变量

Java 的环境: jdk(软件开发工具包)、jre(运行环境)、jvm(java的虚拟机)

dk 配置环境变量:JAVAHOME: C:\Program Files\Java\jdk1.8.0_111

              Path: %JAVAHOME%\bin

 CLASSPATH:.;%JAVAHOME%\lib;%JAVAHOME%\lib\tools.jar

 验证:cmd命令窗口,输入 java 或者 java –version
  1. jmeter 是免安装模式,需要配置环境变量

JMETER_HOME: D:\apache-jmeter-5.2.1

   PATH: %JMETER_HOME%\bin

   CALSSPATH: ;%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;

验证:cmd 命令窗口:jmeter -v 或者 jmeter

  1. jmeter 的启动

  2. 命令启动:jmeter, GUI 模式,供制定测试计划,调试脚本

  3. 批处理文件启动:

汉化:

  • 当前页面一次汉化

打开jmeter的jmeter.bat文件,直接转换语言:

→option

→choose language

→Chinese simplified

二、永久汉化,修改配置文件,去掉 # 注释符,保存文件,重新启动Jmeter。

Jmeter 常见的测试框架

性能测试工具本质就是:依赖于协议,模拟人的操作(发送请求)。

测试计划:启动Jmeter ,就会有一个默认的测试计划生成,这个测试计划包含了本次测试所有相关的功能。建议名称进行修改,让其有意义。

线程(用户):线程组(主线程组,核心):需要进行性能测试的内容放在其中,不能为空;

例如:访问ecshop首页: http://localhost/ecshop/

         Setup 线程组:初始化的(准备部分)内容,可以没有;如果有,一定是最先执行的。

         Teardown 线程组:收尾的内容,可以没有

         线程属性:线程数 ==》 用户数

         Ramp-up :虚拟用户启动的时间,即用户开始发送请求的时间

         循环次数:具体次数

         永远:必须勾选添加调度器,有持续时间,不然无法结束,运行时系统会提示错误。

当同时设置了次数,并且添加了调度器,设置持续时间:系统运行会以循环次数为准。

取样器:测试对象及测试内容,基于线程,即要模拟的动作,就是需要模拟的请求。一个请求放在一个取样器中,例如 http 请求:协议、服务器地址、URL、端口号等等。

性能测试的过程类似于实际中拍电视或者电影的过程:

拍电视:剧本—》导演找演员,对演员的要求,按照剧本演—》录下来—》后期剪辑

性能测试:脚本(写/录制)--》 线程(虚拟用户),按照脚本运行(模拟人操作:发送请求)--》录下来(监听)--》性能结果和性能需求比对,性能调优—》回归测试

**Jmeter **中支持多个请求一起同时发送。

监听器:用来查看测试结果的,图形化显示,列表信息,常见几个监听器:

    查看结果树:同时查看请求和响应的信息,绿色表示测试地址畅通,不代表成功,红色表示异常;

    汇总报告:汇总请求发送的情况

聚合报告:汇总请求发送的情况结果

    图形结果:图形化展示

    表格显示展示:可以查看启动时间(starttime)

报告中各项指标说明:

注意:平均响应时间的单位是 毫秒

  标准偏差:系统离散程度,体现系统的稳定性,值越小,越稳定

聚合报告

汇总报告

注意:导出报告报表时,打开出现乱码

处理过程:用记事本打开,另存为 csv 格式,另存的时候修改编码格式,从utf-8修改 ANSI,再重新打开另存好的文件,就可以了。

性能测试的过程类似于拍电视的过程:

拍电视:剧本 –》导演、演员 –》录下来 –》后期制作 –》成片

性能测试:脚本(写/录制)--》虚拟用户(按照脚本执行)--》收集数据(工具自动)--》分析,调优—》达标

脚本增加:配置元件

  http 请求默认值:http 请求默认公用信息的设置

http 请求页面参数说明:

请求响应结果出现乱码,处理:

原因应该是响应页面没有做编码处理,jmeter默认是按照 ISO-8859-1编码格式进行解析。

找到属性配置文件,修改参数:找到配置文件中 sampleresult.default.encoding ,此行是默认注释掉的,将iso-8859-1 修改为 utf-8,去掉注释符号,重启jmeter

修改后:


本文转载自: https://blog.csdn.net/weixin_64652936/article/details/123217927
版权归原作者 钟旬 所有, 如有侵权,请联系我们删除。

“Jmeter性能测试1”的评论:

还没有评论