性能测试中为了模拟大量的用户操作系统,我们往往需要做参数化,JMeter的参数化可以通过配置元件来完成。例如:CSV Data Set Config,它可以帮助我们从文件中读取测试数据。另外JMeter也提供了众多函数(通过函数助手可以查看到,后续宏哥会讲到,这里只是简单的提一下)来帮助我们动态的生成数据。当然了配置元件的作用不仅于此,它还可以记录服务器的返回数据,例如:Http Cache Manager,自动记录服务器返回的Cache信息,简而言之就是它为取样器提供预备数据,然后由取样器发出请求。配置元素与采样器紧密配合。尽管它不发送请求(HTTP(S)测试脚本记录器除外),但是它可以添加或修改请求。
配置元素只能从放置该元素的树枝内部访问。例如,如果您将HTTP Cookie Manager放置在简单逻辑控制器中,则您放置在Simple Logic Controller中的HTTP请求控制器将只能访问Cookie Manager(请参见图1)。Cookie管理器可用于HTTP请求“网页1”和“网页2”,但不能访问“网页3”。
而且,树枝内部的配置元素比“父”分支中的相同元素具有更高的优先级。例如,我们定义了两个HTTP请求默认值元素:“ Web默认值1”和“ Web默认值2”。由于我们在循环控制器内放置了“ Web Defaults 1”,因此只有“ Web Page 2”可以访问它。其他HTTP请求将使用“ Web默认值2”,因为我们将其放置在线程组(所有其他分支的“父级”)中。
在用户定义的变量配置元素是不同的。无论在何处放置,都将在测试开始时对其进行处理。为简单起见,建议将元素仅放置在线程组的开始处。
配置元件的添加路径:【测试计划】-【配置元件】。
3.12前置处理器预处理器在发出“采样器请求”之前执行一些操作。如果将预处理器附加到Sampler元素,则它将在该Sampler元素运行之前执行。预处理器最常用于在样品请求运行前修改其设置,或更新未从响应文本中提取的变量。有关执行预处理器的更多详细信息,请参见作用域规则。这块宏哥举一个使用这个元件的测试场景:在测试脚本的开发过程中,我们在请求发送之前可能会做一些环境或者参数的准备工作,那么我们可以在前置处理器中来完成这些工作。例如:我们对数据库进行操作前需要建立一个数据库连接,那么前置处理器就可以完成这个功能。
前置处理器的添加路径:【测试计划】-【前置处理器】。
3.13后置处理器后置处理器一般放在取样器之后,用来处理服务器的返回结果,例如:一个Web应用程序,我们登录之后会返回一个SessionID,这个SessionID在登录之后的业务操作过程中会作为验证条件,验证用户是否合法登录了之后才进行的业务操作。发出采样器请求后,后处理器将执行某些操作。如果将后处理器附加到Sampler元素,则它将在该Sampler元素运行之后立即执行。后处理器最常用于处理响应数据,经常从中提取值。有关执行后处理器的更多详细信息,请参见作用域规则。
到此,我们已经简单了解了jmeter的基本组成原件,我们后序的测试工作也就是使用这些元件来完成测试任务。
3.14执行顺序配置元素
预处理器
计时器
取样器
后处理器(除非SampleResult为null)
断言(除非SampleResult为null)
监听器(除非SampleResult为null)