• 12
  • 12
分享
  • JMeter进阶之理解元件执行顺序——软件测试圈
  • 曼倩诙谐 2021-03-26 09:45:57 字数 1408 阅读 1808 收藏 12

  在JMeter脚本设计中,搭配使用各类测试元设计接近实际场景的步骤是整个脚本设计环节的关键。各元件组合搭配,在完整的测试交互周期中,发挥了数据抽取转换、分支逻辑控制、响应解析判断等多种功能,将标准交互请求进行包裹、扩充、衔接、串联形成触达不同数据、激活不同逻辑的树形执行结构。

  因此了解JMeter各测试元件在执行线程生命周期内的执行顺序,对复杂场景脚本设计有重要帮助。

1-1.jpg

  取样器(Sampler)。作为支持JMeter实现协议交互的核心元件,也是线程执行的主体部分,在实现请求交互的前后阶段为其他元件发挥增强功能提供基础。环绕在取样器元件之外,有“切入式”的增强元件,也有具备全局性质的功能元件。所以脚本设计都是以取样器元件为核心向外不断扩展。

  逻辑控制器(Logic Controller)。逻辑控制器元件在取样器元件的上一层级部署,在线程组级别下创建,负责控制不同的Sampler逻辑触发,从而实现脚本的多逻辑执行预期。因此逻辑控制器是在其子节点Sampler执行之前就执行的,需要注意的是本元件控制范围仅针对其子节点之内的脚本逻辑。

  前置处理器(Pre Processor)。前置处理器顾名思义是在协议交互之前进行处理的元件,简单理解在Sampler组件执行前设置了一个交互准备阶段,在此处可为Sampler执行提供一些增强操作,包括参数调整、数据修改等。

  后置处理器(Post Processor)。类比前置处理器,只是方向相反,后置处理器元件是在Sampler交互完成后执行,简单理解为请求结束后的结果处理增强操作,可自定义实现响应修改、数据提取等功能。

  断言(Assert)。断言元件是在Sampler交互完成和增强处理完成后运行,用于自定义判断交互是否成功,因此需要注意断言是在同一Sampler逻辑下后置处理之后启动。本元件核心功能是允许用户自定义规则解析测试结果,并实现自主化的请求结果判断。

  定时器(Timer)。定时器元件主要是为Sampler元件提供执行前的自定义等待时间,常用于模拟真实业务场景的操作等待环节,本元件在Sampler启动前运行,由于确保等待时间紧密关联协议交互的正常启动时点,因此定时器会在前置处理元件后执行。

  配置元件(Config Element)。配置元件提供了全局性的配置准备功能,提供变量初始化、参数自定义、数据准备等操作,常见的有header设置、包括csv参数化、自定义变量等功能元件,因此本元件在测试中最先执行,为上下文提供全局配置。

  监听器(Listener)。监听器是和Sampler同级别的元件,主要负责收集响应结果或执行测试数据统计,是交互完成的最后环节。常见的结果树、聚合报告组件,都是用于查看测试结果所用,需要注意的是监听器的结果输入强关联断言组件,因此在执行顺序的最后一步。

  需要注意的是,在使用各元件中Beanshell自定义逻辑时,要明确当前元件的执行位置,以免出现无效处理或数据为空的情况,影响脚本的场景设计逻辑。下面简单用图展示各元件的执行顺序。

1-2.jpg

  以上就是简单对元件执行顺序的介绍,尽管通常测试场景的简单交互中不会应用到上文所有类别的元件,但面对复杂业务场景时明确元件执行顺序会很好的加速脚本设计效率和执行质量,而且能加深对JMeter 运行逻辑的理解。


作者:杨易寰   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 一、前提开启模拟器(我的是直接用的Android Studio的模拟器,所以在开启模拟器之前我还要开启Android Studio)打开appium服务器打开pycharm打开cmd二、上实战打开模拟器在cmd中输入代码:adb shell dumpsys window | findstr mCurrentFocus可查询到包名和界面名(界面名可以省略包名,但是我害怕漏了那个点,一般都不省略)比如说我的包名:com.google.android.apps.messaging界面名.conversation.screen.Convers...
            12 12 1784
            分享
          •   多年之后,当我们回顾过往时,总能发现一些漫不经意的选择却影响了我们一生的走向。  学院路两旁的树叶逐渐发黄掉落,阿聪背着书包从宿舍出发去图书馆。道路上熙熙攘攘的师兄、师姐拿着一踏踏厚厚的求职简历,晃的阿聪的内心泛起波波焦虑。阿聪在旁人眼里是一个从小长到大的听话孩子,在家听父母的话,在学校听老师的话,甚至出去玩也听朋友的话。这样的成长经历,使得阿聪喜欢随大流、喜欢被动。看着周围的同学都出去找实习机会,阿聪也萌生了找个实习机会的想法。  说干就动手,第二天阿聪就整理了一大堆实习机会,有在本地(某内陆省会城市)的实习机会,有北上广深一线城市的实习机会。在本地实习的优点就是吃住不愁,学校都有,缺点...
            0 0 348
            分享
          •   随着科技的发展和进步,自动化测试的应用越来越广泛深入,作为一种软件质量管控的重要手段,自动化测试通过将人为驱动的测试行为转为机器执行的一种过程。在替代大量重复性工作和提高回归测试效率方面发挥了很大的优势。  目前,自动化测试还不能完全的取代人工测试,自动化测试是否能够有效开展依赖于系统的稳定性。对于投产周期短,需求变更频繁,版本更新频率较高,甚至存在系统架构重构的可能性的系统,使用自动化测试工具录制的案例,在系统迭代更新后,需要频繁的修改调试自动化脚本,成本较高,因此此类系统不适用于自动化测试;对于部分优化升级系统,系统架构都趋于稳定,程序版本稳定,特别是投产周期长,需要频繁重复执行测试案...
            15 14 810
            分享
          •   在平时工作当中会用到漏洞扫描工具,用户只需要输入待检测网址,点击一下按钮就可以等待网站的安全检测报告了。作为刚入门的安全小白,对其工作原理产生了浓厚的兴趣,逐渐深层剥离Web应用漏洞检测的本质是网络爬虫技术与漏洞检测技术的结合,网络爬虫主要爬取网站结构并收集可能存在的攻击面,漏洞检测技术则是在爬虫结果的基础上进行针对性的修改并重放,根据服务器响应进行判断。在本篇文章中,我们将重点介绍爬虫技术方面的知识。  1、应用场景  通常我们看到的网页内容是通过浏览器呈现的,Web站点的页面渲染方式对用户是透明的,然而不同的Web站点渲染方式对爬虫的影响是巨大的。对于Web站点来说,其页面渲染方式主要...
            12 13 2725
            分享
          • 36氪独家获悉,由罗永浩联合创立的交个朋友公司正在布局海外电商培训业务,主要由‘交个朋友海外事业部’和基于Tik Tok生态下的‘交个朋友电商学苑’承担。并且,36氪注意到杭州交个朋友教育科技有限公司已申请注册“交个朋友海外电商学苑MAKING FRIENDSE-COMMERCE ACADEMY”商标,国际分类为广告销售、教育娱乐,当前商标状态为申请中。同时,36氪在交个朋友海外电商学苑的抖音官方蓝V发现,交个朋友的核心名师已陆续开始为该课程代言。此外,交个朋友高管层向36氪透露,交个朋友确有布局海外电商培训业务,并将其定位为公司未来的重点项目之一。因此,该项目得以集合到公司内外大量顶级教学教...
            0 0 946
            分享
      • 51testing软件测试圈微信