在复杂的脚本中,会涉及到jmeter的多个元件,而元件之间的作用域和执行顺序这时候就很重要了,放错位置不仅会造成数据获取不正确,严重还会无法执行,下面即为大家介绍一下元件作用域与执行顺序。

1、元件的作用域

  • 配置元件(config elements):会影响其作用范围内的所有元件(同级别或父级起作用)
  • 前置处理程序(Per-processors):在起作用范围内的每一个sample元件之前执行
  • 定时器(timers):对其作用范围内的每一个sampler有效(同级别或父级起作用)
  • 后置处理程序(Post-processors):在其作用范围内的每一个sampler元件之后执行(同级别或父级起作用)
  • 断言(Assertions):对其所用范围内的每一个sampler元件执行后的结果执行校验
  • 监听器(Listerners):收集其作用范围的每一个samoler元件的信息并出现(同级别或父级起作用)
  • sampler元件不和其他元件相互作用,因此不存在作用域的问题

2、元件的执行顺序

  • 配置元件
  • 前置处理器
  • 定时器(首次也是定时器先执行再执行sampler)
  • Sampler
  • 后置处理器(只在有结果可用情况下执行)
  • 断言(只在有结果可用情况下执行)
  • 监听器(只在有结果可用情况下执行)

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

备注:如果两个相同配置元件作用于同一个采样器,那么这两个配置元件会进行合并,完全一样的取排序靠近的配置元件(如父子级关系)

例1:zuoyongyu1则执行结果是:one显示网页b的地址加上了a的参数(HTTP默认请求都有网页,必须取其一,那么取就近的地址,参数不受影响)。

例2:

zuoyongyu2

后置处理器debug,作用域里按照顺序执行,无就近原则。

3、元件的部分概念

  • 断言:可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。
  • 前置处理器及后置处理器:负责在生成请求之前完成工作。前置处理器常常用来修改请求的设置。
  • 后置处理器:负责在生成请求之后完成工作。后置处理器常常用来处理响应的数据,我们主要在动态关联中用到后置处理器的正则表达式提取器

标签: IT

仅有一条评论

  1. […] 4、在ForEach控制器下添加一个http请求,填写路径,路径为foreach中填写的输出变量名称,如图所示,注意jmeter元件作用域与执行关系,这个可以看文章:http://blog.jianjiexuan.com/tools/jmeter/213.html […]

添加新评论