性能04篇-JMeter基础知识

    ​    ​JMeter与LoardRunner都是非常优秀的性能测试软件,它们孰优孰劣众说纷纭。相对于JMeter而言,商业性能测试软件LoardRunner支持的测试协议更广,图形分析能力更强,易用性也要强一些。但是这些并无质的差距,LoardRunner的基本功能,JMeter都具备,只是没有那么完善而已。由于LoardRunner价格非常昂贵,因此这些差距是完全可以接受的。特别是对于中小软件企业而言,JMeter的性价比无疑拥有致命的吸引力。

    ​    ​JMeter和LoardRunner对比

    ​    ​JMeter:安装简单,下载解压即可;支持录制/回放模式;测试协议偏少,用户可自行扩展;支持分布式大规模压力测试;不支持IP欺骗功能;支持图形报表,较弱;支持测试逻辑控制;支持监控服务器资源(CPU、内存等);支持功能测试。

    ​    LoardRunner:安装复杂,LoardRunner安装包大于1GB,在一台主频3.0、1GB内存的计算机上安装,安装时间大于1小时;支持录制回放模式;测试协议较多,用户不可自行扩展;支持分布式大规模压力测试;支持IP欺骗功能;支持图文报表功能,很强;支持测试逻辑控制;支持监控服务器资源(CPU、内存等);不支持功能测试。

    ​    ​JMeter简介

JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证被测程序返回了期望的结果。为了保证最大限度的灵活性,JMter允许使用正则表达式创建断言。

Apache JMter 可以用来对静态和动态资源(文件、Servlet、Perl脚本、Java对象、数据库和查询、FTP服务器等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试他们的强度或分析不同压力类型下的整体性能。测试人员可以使用它做性能图形分析或者测试服务器/脚本/对象在大并发负载下的表现。

    ​    ​JMeter特点

    ​    ​1、支持对多种服务类型进行测试,包括:Web-HTTP,HTTPS/SOAP/FTP/Database基于JDBC/LDAP/Message-Oriented Middleware(MOM)基于JMS/JMS/Mail-POP3(S)and IMAP(S)/MongoDB(NoSQL)/本地命令或者shell脚本/TCP

    ​    ​2、支持通过录制/回放方式获取测试脚本。

    ​    ​3、具备高可移植性,是100%纯Java程序。

    ​    ​4、采用多线程框架,允许通过多个线程并发取样及通过独立的线程组对不同的功能同时取样。

    ​    ​5、精心设计的GUI支持高速用户操作和精确计时。

    ​    ​6、支持缓存和离线的方式分析/回放测试结果。

    ​    ​7、具备高扩展性,包括:

    ​    ​插拔式的取样器支持无限制扩充测试能力。

    ​    ​提供各种负载统计表和可插拔的计时器。

    ​    ​数据分析和可视化插件提供了很好的扩展性及个性化。

    ​    ​支持通过预置函数为测试提供动态输入数据,以及通过预置函数对测试数据进行操作。

    ​    ​支持用脚本构造采样器(BeanShell、BSF兼容语言和JSR兼容语言)。

JMeter常用术语

    ​    1. Sample:负责发出请求及响应数据。
    ​    ​2. 线程组页面的Ramp-Up Period:指的是时间间隔,即一个请求发送并且接收完毕之后一直到第二个请求发出的时间间隔。
    ​    ​3. 工作台的作用: 可以录制脚本等
    ​    ​4. setUp Thread Group、 tearDown Thread Group和线程组:一般setUp Thread Group是用于启动线程组,接着是tearDown Thread Group,然后是普通线程组,这是一般的执行顺序,主要是如果在使用线程组之前需要初始化一些,则可以使用setUp Thread Group,一般情况,使用线程组即可。
    ​    ​5. 正常情况下,端口号可以不填,但是如果“服务器名称或IP”中填写的是IP,则必须要填写端口号。

    ​    ​6、自动重定向:如果是期望结果就是301或302这个返回状态,则一定要勾选自动重定向,否则JMeter系统会默认这是个错误。(一般测API需要填写{不是很确定,待实践}),在断严重也需要注意,见下图:

    ​    ​7. 仅一次控制器:这个控制器可以保证线程在多次循环跑得情况下只登陆一次,只需要对登录的HTTP请求进行设置。
    ​    ​8. Linux:top命令获取CPU等资源的消耗情况,datat命令可以查看资源统计。
    ​    ​9. 若是json数据,则需要添加HTTP Header Manager,并且在HTTP请求中不能使用Parameters,应该使用Body data。

    ​    ​10. Jmeter中,有时候post请求也可以使用get,而且不会报错,但是使用get是不能达到请求的目的的,使用get获取的是页面而不能够发出请求,使用post才可以发出请求。

    ​    ​11. 聚合报告中90%Line的单位是毫秒。

    ​    ​JMeter工作原理    ​    ​

JMeter可以作为Web服务器与浏览器之间的代理网关,以便捕获浏览器的请求和Web服务器的相应,如此就可以很容易地生成性能测试脚本。有了性能测试脚本,JMeter就可以通过线程组来模拟真实用户对Web服务器的访问压力。这与LoardRunner的工作原理基本一直。


        长按二维码识别关注,您的支持是我们最大的动力。       

        公众号:测试梦工厂

        QQ一群:300897805

  

原文地址:https://www.cnblogs.com/testdream/p/6492787.html