Jmeter基础知识

一. 性能测试工具选择

*考虑以下几点

成本(Loadrunner license成本高)

a. 工具成本b. 学习成本

通信协议(往往通过协议来模拟压力)

a. 标准协议(HTTP,FTP,...)b. 自有协议(公司开发的对内协议)

生命力

Jmeter版本更新快,生命力强

跨平台

Loadrunner不跨平台,Jmeter跨平台

二. Jmeter语言更改

*bin目录下的jmeter.properties存储所有配置将文件内language改为en英文,然后重启

三. Jmeter工具目录

Bin:其中放置了各项配置文件(比如日志设置、JVM设置等)、启动文件(JMeter启动快捷方式,报告生成快捷方式,Heap Dump快捷方式等),jmeter.sh的linux的启动文件,启动jar包,示例脚本等

Dos:放置了JMeter API离线帮助文档,WEB方式。

Extras:JMeter 辅助功能,提供与Ant Jenkins集成的可能性,我们可以利用Ant 与Jenkins来构建性能测试自动化构架。Ant可以利用xsl脚本把XML格式的测试结果以HTML方式展示。

Lib:JMeter组件以jar包的形式放置在lib/ext目录下,如果我们要扩展JMeter组件,扩展后的jar包即放在此目录,Jmeter启动时会加载此目录下的jar包。

printable_docs:JMeter的离线帮助文件放置目录。

licenses:相关声明信息都放在此文件夹中,全部是文本文件。对测试没有实际作用,可以忽略。

LICENSE:LIcense说明文件。

NOTICE:License说明文件。

Readme:JMeter简明介绍。

四. 八大可执行元件

1.Threads线程

1.1Setup thread group

一种特殊类型的ThreadGroup的,用于执行预测试操作。这下线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试前进行     定期线程组的执行。类似LR的init().

1.2Teardown thread group

一种特殊类型的ThreadGroup的,用于执行预测试操作。这下线程的行为完全像一个正常的线程组元件。不同的是,这些类型的线程执行测试结束后执行定期的线程组。类似LR的end().

1.3Thread group(线程组) 

这个是我们通常添加的线程。可以看作是一个虚拟用户组,线程组里的每一个线程都可以理解为一个虚拟用户。线程组的线程数量在测试执行过程中不会改变,类似LR的action().主要为设置场景的起始点和用户并发数,代码的开始运行时间和要运行的时间。

1.4Stepping Thread Group(需要下载jar包)

主要用于性能测试。

2. 测试片段(Test  Fragment) 

测试片段是控制器上的一种特殊的线程组,它在测试树上与线程组处于一个层级。但它不能被执行,必须通过逻辑控制器中的Include_Controller 或者模块控制器来调用。

3.配置元件(config Element) 

对sample进行配置,避免重复内容。用来初始化默认值和变量,以便后续采样器使用,将其在作用域的初始化阶段使用,如:csv data set config可以将本机静态数据形成数据池。

4.定时器(Timer) 

用于操作之间设置等待时间

4.1 定时器是在每个sampler(采样器)之前执行的,而不是之后。

4.2 定时器是有作用域的;当执行一个sampler之前时,所有当前作用域内的定时器都会被执行;

4.3 如果希望定时器仅应用于其中一个sampler,则把该定时器作为子节点加入

4.4 如果希望在sampler执行完之后再等待,则可使用Test Action;

5.前置处理器(per processors) 

实际的请求发送之前对即将发出的请求进行特殊的处理,以及更新从上一个响应获得的变量值。eg:http url 重写修饰符可以实现url重写,当url有session id一类的session信息时,可通过该处理器填充实际发送的session id。

6.后置处理器(post processors) 

对于sampler发出请求后得到的服务器响应进行处理,一般用于提取响应中的特定数据

7.断言 

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

8.监听器 

是用来对测试结果数据进行处理和可视化展示的一系列元件,一般常用图形结果,查看结果树,聚合报告,收集运行信息,如:响应时间,请求和响应的详细信息等。

你可能感兴趣的:(Jmeter基础知识)