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系列-脚本编写及规范/作业。

 

posted @ 2017-07-11 09:43  hait1234  阅读(1996)  评论(0编辑  收藏  举报