JMeter元件简介与JMeter测试计划
《JMeter核心技术、性能测试与性能分析(编程与应用开发丛书)》(张永清,张永松)【摘要 书评 试读】- 京东图书
JMeter元件简介
JMeter元件是使用JMeter来完成性能测试的基础,是整个JMeter的核心。JMeter是由很多个不同种类的元件来共同组成的,每个元件具有不同的功能,编写JMeter的性能测试脚本就是将多个功能不同的元件串联起来完成一个性能测试场景的过程。如图3-1所示,图中展示的就是JMeter中常用到一些元件的种类。每个不同种类的元件可以在性能测试中起到不同的作用,通常需要不同的元件来共同协作,才能完成一个性能测试场景。
图3-1 JMeter元件使用
测试计划
JMeter 测试计划是JMeter中最底层的逻辑运行容器,是用来描述和组织一个性能测试脚本和测试场景的前提。所有的JMeter元件都必须运行在一个测试计划下面,如图3-2所示。
图3-2
从图中可以看到,测试计划主要包括:
(1)测试计划的名称和注释:整个测试计划命名的名称和对该测试计划的详细注释,通常可以自定义填写,当然建议最好能表达脚本的意义,方便将来对历史脚本进行追溯时,能知道当初编写性能测试计划及其脚本的作用。
(2)用户定义的变量:JMeter允许用户在测试计划中添加自定义的变量,这里定义的变量是整个测试计划中使用到的全局变量。
(3)独立运行每个线程组:由于在测试计划中,可以添加多个线程组,该选项主要用于控制多个线程组的执行顺序。当勾选该选项时表示每个线程组都是独立运行的。通常可以做到按照顺序来执行每一个线程组,比如先运行线程组A,等待线程组A运行完后再运行线程组B。如果不勾选该选项,表示每个线程组可以并行执行,如图3-3所示。
图3-3 线程组的执行
这个选项通常适用于混合场景的性能测试。如图3-4所示,我们以在淘宝商城购买商品为例。
- 用户需要先登录然后再查询商品,而登录只需要做一次,因此,多个并发用户登录可以设置成一个线程组A,用于并发完成用户的登录。
- 用户登录后,就可以查询商品或者提交订单了,所以查询商品和提交订单可以分别设置为线程组,而且这两个线程组可以并行运行。
- 由于登录时,每个用户只需要执行一次,并且通常都是先登录,然后再去查询商品或者提交订单,所以登录、查询商品和提交订单之间通常建议设置成串行执行。
图3-4 淘宝商城购买商品示例
(4)主线程结束后运行tearDown线程组:表示是否当线程组停止运行时继续运行tearDown线程组。一般很少用到该选项。
(5)函数测试模式:表示是否保存性能测试的响应结果数据或者性能样本数据。如果勾选此选项,通常会消耗比较大的本地磁盘IO资源。一般不建议勾选,除非是在做性能测试脚本调试时,需要特殊定位问题才建议勾选,并且在问题定位完成后,就去掉该选项的勾选。
(6)添加目录或jar包到ClassPath:用于向JMeter中添加第三方的jar包,在前面已经提到JMeter底层是基于Java语言开发的,这个功能就是用于向JMeter中添加第三方的外部jar包。比如,我们需要通过JDBC的协议对SQL Server数据库进行性能压测,但是由于JMeter自身没有自带连接SQL Server数据库的驱动jar包,所以就需要用到这个功能来添加一个SQL Server的驱动jar包,以完成通过JDBC协议来对SQL Server数据库做性能压测。