使用jmeter进行接口测试

jmeter介绍

JMeter是Apache基金会Jakarta上的一个纯java开源项目,起初用于基于Web的压力测试(pressure test),后来其应用范围逐渐扩展到对文件传输FTP,大型数据库(JDBC方式),脚本程序(CGI,Perl等),Web Services,Java应用系统等方面的测试。JMeter本身主要用于性能测试,如系统压力等。除此之外,JMeter能够对应用系统做功能测试和回归测试,并且能够通过使用带有断言的脚本程序来验证系统然后返回用户期望的结果。为了提高工具的应用灵活性,JMeter允许使用正则表达式创建断言。正是由于它的灵活性和可扩展性,JMeter逐渐成为流行的开源测试工具。

Jmeter特点:

  • 支持多种服务类型进行测试
  • 支持通过录制回访的方式获取测试脚本
  • 具备高移植性,是100%的Java程序
  • 采用多线程框架,允许通过多个线程并发取样及通过独立的线程组对不同的功能同时取样
  • 精心设计的GUI支持高速用户操作和精确计时
  • 支持缓存和离线的方式分析回放测试结果
  • 具备高扩展性

Jmeter与Loadrunner的对比:
1、界面、安装、协议支持、函数库、成本、开源
2、都可以实现分布式负载,相对来说Loadrunner更强大一些
3、都支持在windows和linux环境的负载生成器。控制台方面,Jmeter跨平台、而LoadRunner不是
4、LoadRunner可以指定每个负载生成器运行不同数量的并发用户,而目前Jmeter不行
5、Jmeter中测试计划之外的数据文件不会一起发送到负载生成器,而LoadRunner中的文件可以通过选择纳入LoadRunner的管理而一起发送到远端

jmeter安装

第一步:安装JDK,必须JDK1.7以上,推荐1.8版本
第二步:进入jmeter下载页面:http://jmeter.apache.org/download_jmeter.cgi下载相应安装包,如:apache-jmeter-3.0.zip
第三步:解压安装到一个英文名称目录下,如C:
第四步:配置相应环境变量: 新建JMETER_HOME:C:apache-jmeter-3.0 修改CLASSPATH:加上 %JMETER_HOME%libextApacheJMeter_core.jar;%JMETER_HOME%libjorphan. jar;%JMETER_HOME%liblogkit-2.0.jar;
第五步:进入C:apache-jmeter-3.0in,进入bin目录后,双击运行jmeter.bat,打 开的时候会有两个窗口,Jmeter的命令窗口和Jmeter的图形操作界面,不可以关闭 命令窗口。

jmeter主要测试组件

JMeter 的主要测试组件总结如下:
1.测试计划是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器。
2.线程组代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在Sampler中定义,它被线程组包含。
3.监听器负责收集测试结果,同时也被告知了结果显示的方式。
4.逻辑控制器可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
5.断言可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域, 即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。
6.配置元件维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。
7.前置处理器和后置处理器负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。
8.定时器负责定义请求之间的延迟间隔。
9.取样器(Sampler)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的sampler ,如 HTTP Request Sampler 、 FTP Request Sample 、TCP Request Sample 、JDBC Request Sampler 等,每一种不 同类型的 sampler 可以根据设置的参数向服务器发出不同类型的请求。

jmeter元件作用域与执行顺序

元件的作用域:
配置元件(config elements ) :元件会影响其作用范围内的所有元件。
前置处理程序(Per-processors):元件在其作用范围内的每一个sampler元件之前执行。
定时器(timers ):元件对其作用范围内的每一个sampler 有效后置处理程序(Post-processors):元件在其作用范围内的每一个sampler元件之后执行。
断言(Assertions):元件对其作用范围内的每一个sampler元件执行后的结果执行校验。
监听器(Listeners):元件收集其作用范围的每一个sampler元件的信息并呈现。
总结:从各个元件的层次结构判断每个元件的作用域

元件的执行顺序:
配置元件-->前置处理程序-->定时器-->取样器-->后置处理程序(除非Sampler 得到的返 回结果为空)-->断言(除非Sampler 得到的返回结果为空)-->监听器(除非Sampler 得到的返回结果为空)
关于执行顺序,有两点需要注意:
前置处理器、后置处理器和断言等元件公能对 取样器作用,因此,如果在它们的作用域内没有任何取样器,则不会被执行。
如果在同一作用域范围内有多个同一类型的元件,则这些元件按照它们在测试计划中的上下顺序一次执行。

原文地址:https://www.cnblogs.com/TD1900/p/12659853.html