美文网首页软件测试测试员的那点事
Jmeter的安装部署以及录制脚本

Jmeter的安装部署以及录制脚本

作者: 测试学习之旅 | 来源:发表于2019-01-30 15:34 被阅读2次




学习目标

1.Jmeter环境搭建

2.Jmeter元件介绍

3.Jmeter的作用域

4.JMeter执行顺序

5.使用JMeter录制并回放脚本



我的环境:win7 64位 JDK:jdk-8u191-windows-i586
                                   JMeter:apache-jmeter-5.0


JMeter环境搭建

安装java依赖环境

        JDK下载:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

        配置java环境地址:https://jingyan.baidu.com/article/9f63fb91d87fb0c8400f0e93.html

校验

        cmd命令 --- java -version

运行

         jmeter官网:http://jmeter.apache.org/download_jmeter.cgi    

        进入...\apache-jmeter-3.2\bin\解压目录,双击ApacheJMeter.jar启动(注:一定要配置Java环境)


JMeter中组件中的常见的元件介绍

测试计划与线程组不属于元件

取样器

取样器(Sample)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter原生支持多种不同的sampler ,如 HTTP Request Sampler 、 FTP Request Sample 、TCP Request Sample 、JDBC Request Sampler 等,每一种不同类型的 sampler 可以根据设置的参数向服务器发出不同类型的请求。

逻辑控制器

逻辑控制器,包括两类无件,一类是用于控制测试计划(test plan) 中 取样器(sampler) 节点发送请求的逻辑顺序的控制器,常用的有 如果(If)控制器 、switch Controller 、Runtime Controller、循环控制器等。另一类是用来组织可控制 sampler 来节点的,如 事务控制器、吞吐量控制器。。

配置元件

配置元件(config element)用于提供对静态数据配置的支持。CSV Data Set config 可以将本地数据文件形成数据池(Data Pool),而对应于HTTP Request Sampler和 TCP Request Sampler等类型的配制元件则可以修改Sampler的默认数据。(例如,HTTP Cookie Manager 可以用于对 HTTP Request Sampler 的 cookie 进行管理)

监听器

这个监听器可不是用来监听系统资源的元件。它是用来对测试结果数据进行处理和可视化展示的一系列元件。 图形结果、察看结果树、聚合报告等都是我们经常用到的元件。

定时器

定时器(Timer)用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手段。类似于LoadRunner里面的“思考时间”。JMeter 定义了Bean Shell Timer、Constant Throughput Timer、固定定时器等不同类型的Timer。

前置处理器

用于在实际的请求发出之前对即将发出的请求进行特殊处理。例如,HTTP URL重写修饰符则可以实现URL重写,当RUL中有sessionID 一类的session信息时,可以通过该处理器填充发出请求的实际的SessionID 

后置处理器

用于对 Sampler 发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据(类似LoadRunner测试工具中的关联概念)。例如,XPath Extractor 则可以用于提取响应数据中通过给定XPath值获得的数据

断言

断言用于检查测试中得到的相应数据等是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互是否与预期一致。


JMeter的作用域

JMeter中共有8类可被执行的元件(测试计划与线程组不属于元件),这些元件中,取样器是典型的不与其它元件发生交互作用的元件,逻辑控制器只对其子节点的取样器有效,而其它元件(配置元件 、定时器 、后置处理器、断言、监听器、)需要与取样器(sampler)等元件交互。我们从各个元件的层次结构就可以判断每个元件的作用域。

采样器

采样器会按照其在测试树中的顺序去执行,还可以用逻辑控制器来改变采样器运行的重复次数。

逻辑控制器

逻辑控制器可以改变其子测试元件的请求执行顺序。

监听器

监听器可以在测试的任何地方添加,包括直接放在测试计划之下。它们仅收集测试树中相同或者更低级别测试元件的数据。

定时器

定时器会让作用域内的每一个采样器都在执行前等待一个固定时长。如果测试人员为线程组添加了多个定时器,那么JMeter会将这些定时器的时长叠加起来,共同影响作用域范围内的采样器。定时器可以作为采样器或者逻辑控制器的子项,目的是只影响作用域内的采样器。

断言

断言会影响作用域内的所有采样器。如果要让断言只影响某个采样器,需要将断言作为该采样器的子项

配置元件

配置元件仅对其所在的测试树分支有效。例如,假设测试人员在一个简单逻辑控制器中放置了一个HTTP Cookie管理器,那么该HTTP Cookie管理器只对放置在简单逻辑控制器内的其他逻辑控制器生效。

前置处理器

前置处理器通常用于在采样器发出请求前修改采样器的某些设置,或者更新某些变量的值(这些变量不在服务器响应中获取值)。

后置处理器

如果后置处理器附着在某个采样器之下,那么它只会在该采样器运行之后执行。后置处理器通常被用来处理服务器的响应数据,特别是服务器响应中提取数据。


Jmeter的执行顺序

配置元件(config elements ) --- 前置处理器(Per-processors) --- 定时器(timers ) --- 取样器(Sampler) --- 后置处理器(Post-processors) --- 断言 (Assertions)--- 监听器(Listeners)

注意:

前置处理器、后置处理器和断言等元件只能对 取样器作用,因此,如果在它们的作用域内没有任何取样器,则不会被执行。

如果在同一作用域范围内有多个同一类型的元件,则这些元件按照它们在测试计划中的上下顺序一次执行。

一个断言在测试树中是分等级的。如果它的父元件是请求,它就被应用于那个请求。如果它的父元件是控制器,它就影响所有那个控制器下的所有请求。

使用JMeter创建一个简单的性能测试


JMeter录制脚本并回放

1.新建线程组

       新建线程组以及重要的属性解释

2.新建HTTP Cookie管理器

3.新建HTTP代理服务器

              netstat -an使用这个命令查看已用的端口号,这里填写的端口号必须是唯一的

包含和排除模式

包含模式

包含模式可以写为:.*服务器地址.* 例如:".*192\.168\.1\.100.*"

排除模式

.*\.js.*|.*\.css.*|.*\.jpg.*|.*\.jpeg.*|.*\.gif.*|.*\.png.*|.*\.bmp.*

4.设置代理服务器

如果被测的客户端是PC机,如图下设置代理

线程组

地址:该处填写Jmeter代理服务器所在的机器的IP。(如果jmeter代理服务器和客户端在同一台电脑上,则该处可以填写localhost。)

端口:该处填写Jmeter代理服务器所配置的端口。

win7 设置代理

设置浏览器代理

5.执行操作

如果客户端与被测服务器是同一台电脑,访问时不要使用localhost,应该使用ip地址,否则代理不生效

6.关闭连接

JMeter停止代理服务器

还原客户端的代理设置,否则客户端无法访问外网。


我碰见的问题

1.问题如下:

解决:

      蠢!!!!是JMeter5.0的新特性

     录制特性增加了一个始终在顶部的弹出框,当你在浏览器中操作时,可以命名你的事务。

2.响应数据乱码

解决:

1:指定请求节点下,新建后置控制器"BeanShell PostProcessor"

2:其脚本框中输入:prev.setDataEncoding("UTF-8");

3:保存

相关文章

网友评论

    本文标题:Jmeter的安装部署以及录制脚本

    本文链接:https://www.haomeiwen.com/subject/gpxcsqtx.html