zoukankan      html  css  js  c++  java
  • JMeter (二) 逻辑控制器的含义和用途详解

    版权声明:知识本来就是要分享的,此为学习沐童博客后的电子版笔记,用来加深印象。欢迎分享,请注明出处--沐童的博客。

    首先我们来看看一共有多少个逻辑控制器(我用的是jmeter 2.6,)一共是16个。

    1.ForEach 控制器

    含义:在“用户定义的变量”中设置一些变量,ForEach控制器,会按照设置的规则,从变量中取数据,用于其下面的节点中。下面张图来详细解释下。(“用户定义的变量”是属于“配置原件”下的,这里我们先添加一个“用户定义的变量”):

    (1)用户定义的变量:

     接着点击ForEach逻辑控制器,按照下图填写参数:

    完成上面的步骤之后,我们再添加一个HTTP请求(注意:是在ForEach的节点下点击sampler后添加,不是在线程组的节点下添加),如图:

    点击这个HTTP请求,按照下图填写参数:

    这里我们会发现,填写的路径和ForEach中的“输出变量名”一致,添加监听器后我们来看下执行的结果。

    用户定义的变量中,url_1为baidu,url_2为goole,变量前缀为url_,输出后的变量名称为returnVal,由此可见,ForEach逻辑控制的作用即为根据用户定义的变量,各执行一次请求操作。

    2.Include Controller(包含控制器)

    ---------------------------------------------------------------------------------------------------------分割线--------------------------------------------------------------------------------------------------------------------------------------

    为了更进一步的学习jmeter,我们对各个组件进行了简短的小结,以帮助理解和记忆,详情如下:

    1.线程组:场景的起点,设置多少用户并发,什么时候开始跑,跑多久。

    2.控制器:包含循环控制器和逻辑控制器。

    3.配置元件:对samplers进行配置,避免重复内容。

    4.定时器:请求之前的暂停。

    5.前置处理器:运行在samplers之前,多用于设置samplers,和更新从上一个响应获取的变量值。

    6.sampler:是真正的请求,jmeter脚本中必须要有sampler。

    7.后置处理器:运行在samplers之后,多用于对响应数据的处理。

    8.断言:验证服务器返回的信息是否正确。

    9.监听器:收集测试用例运行信息,例如响应时间,请求和响应的详细内容。

    二、jmeter组件执行顺序

    1.配置元件

    2.前置处理器

    3.定时器

    4.取样器

    5.后置处理器

    6.断言

    7.监听器

    PS:只有有samplers的时候,定时器,断言,前置后置处理器才会被运行,逻辑控制器和samplers按他们在树里的排列顺序执行。

    三、jmeter的作用域

    元件的作用域是靠测试计划的树型结构中元件的父子关系来确定的,作用域的原则是:

    1.采样器:元件不和其他元件相互作用,因此不存在作用域的问题。

    2.逻辑控制器:元件只对其子节点的取样器和逻辑控制器起作用。

    3.除采样器和逻辑控制器元件外的其他6类元件,如果是某个sampler的子节点,则该元件只对其父节点起作用。

    4.除采样器和逻辑控制器元件外的其他6类元件,如果其父节点不是sampler,则其作用域是该元件父节点下的其他所有后代节点(包括子节点、子节点的子节点等)。

    PS:用户定义的变量:该元件定义的变量是全局变量,不管放在那里都是有作用所有域的。

     四、jmeter脚本的编写

    1.脚步录制

    2.参数关联

    3.调试

    4.变量的提取

    5.脚本格式编写

    五、创建一个web自动化测试脚本

    请先思考:1.必须的控件有哪些?

                      答:用户定义的变量、HTTP Cookie 管理器、请求参数、线程组、简单控制器、断言、Debug Sampler、查看结果树。

    例如:

    六、自动化脚本测试规范

    1.用简单控制器记录,用户和服务器的一次交互,里面和以前的接口中有重复的,可以禁用。

    2.根据用户操作和业务名称命名和编号,生成报告后方便查看,例如:控制器需要写清楚用户操作或者访问的页面,具体接口最好能写清楚接口名称和作用。

    3.大部分接口请求都需要做断言,保证结果的正确性。

    4.切换用户(测试变量)进行调试,保证脚本的可靠性。

    七、创建一个web性能测试脚本

    请先思考:性能测试特有控件有哪些?

                      答:1.jp@gc - Stepping Thread Group(线程组)

                             2.CSV Data Set Config jp@gc - Transactions per Second

                             3.jp@gc - Response Times vs Threads

                             4.jp@gc - PerfMon Metrics Collector

    问题

    1.有没有完整的课程与教材?

    2.总有些功能是“不知道可以这样用”,是否有相关教程,提供一些开拓思路、提升技巧方面的?

    3.查看结果树,响应数据会出现乱码,已经修改了配置文件的中文格式utf-8,不知道是什么情况? 4.自己本机和巡检跑的时候,总有一个断言失败,但其他人机器上跑是正常的,机器原因?

    5.希望能以一个实际项目带领教学,让大家清楚知道怎么去做?如何分析?+1+1 +1

    6.推送jmeter接口测试/性能测试视频,分享技巧。

    7. 学习jmeter需要Java编程学到什么程度?

    8. jmeter是否可以帮助我做冒烟测试?

    9. app端的测试,jmeter如何能最大程度提供帮助?什么帮助?

    10.推荐相关jmeter由易到简的相关书籍方便自学的(易懂)。

    11. 利用jmeter巡检中常见的问题。

    12.对于录制脚本最方便的工具和录制的方法。

    13.jmeter基本操作流程 14.希望提供实战机会,例如:实际课程练习 15.由针对性的教学,有人想精深,有人只想简单维护日常巡检脚本。

    作业:拿自己的项目练手,编写自动化测试脚本。 作业上传至: https://172.16.16.87/svn/WYTesting/Share/01技术交流分享/04技术交流视屏记录/49-jmeter系列-脚本编写及规范/作业。

  • 相关阅读:
    ibatis $与#的区别
    (转载)Hibernate与Jpa的关系
    tomcat web工程 jar包冲突解决方法
    jquery 获取checkbox 选中值并拼接字符集
    mysql BLOB字段转String的方法
    Ajax工作原理
    Spring mvc 具体RequestMapping 参数含义
    覆盖bootstrap的样式
    开园啦,致曾经现在以后的自己~
    SimpleDateFormat 常规用法
  • 原文地址:https://www.cnblogs.com/hait1234/p/6767558.html
Copyright © 2011-2022 走看看