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