jmeter--作为测试你必须要知道的基础名词与环境搭建

清安无别事 清安无别事     2022-12-28     182

关键词:

        大家好,我们本章开始学习Jmeter,后续还会有RF以及LoadRunner 的介绍,为什么要学习Jmeter,它主要是用来做性能测试的,其中它也需要间接或直接的需要用到抓包工具,至于为什么需要用到抓包工具,我们第二章就会讲到。

        本人自己也有个公众号(Sea_Cha),各位朋友想了解测试的各种问题可以留言告诉我,我会直接在公众号里进行更新。

   那么什么是性能测试,它与功能测试有什么样的区别?

        性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试          

        简单的来说性能测试和功能测试最大的区别在于功能测试通常有明确的需求说明。而性能测试却需要顾及方方面面。

        测试人员眼中的性能测试需要考虑全面的性能,包括用户、开发、管理员等各个视角的性能。做性能测试时除了要关注表面的现象如响应时间,也需要关注本质,比如用户看不到的服务器资料利用率,架构设计是否合理?代码是否合理等方方面面。

        所以,做性能测试的测试工程师也很不简单,难度远比功能测试高。

名词解释

        jmeter中有很多的功能,还有一些容易让你产生错误理解的字词,让我们来看看有哪些吧。

虚拟用户】:模拟现实中的实际用户,测试工具使用虚拟用户替代真实用户。

性能测试场景】:可理解为一个具体的测试用例。它是测试资源包括测试脚本、运行设置、运行用户数等的集合。在场景中,可以定义并发用户的数目,定义要运行的脚本。在一个场景中,可以是单个流程,也可以是多个流程的混合。

事务】:为一个流程中某个或某些环节的称谓,一个流程可称为一个大的事务,在这个大的事务中可包含许多小的事务。

响应时间】:性能测试中衡量交易性能的重要手段。计算的是端到端的时间,通俗讲是指从客户端发出交易请求到得到响应的整个过程。

平均响应时间】:指在测试过程中所有交易请求过程中平均的响应时间。也就是总共的交易量除以总共的交易时间。通常以秒为时间单位。

90%响应时间】:将所有交易的响应时间按照从小到达排列,取排在90%的那个值,主要用于衡量系统的稳定性,比如两组数据 1,3,5,10,16 和 5,6,7,8,9,他们的平均响应时间都是7,但是前面一组数据的90%响应时间值为16,而后面一组为9。越靠近90%,那么说明越稳定。

TPS】:系统每秒处理交易的数量,单位是笔/秒。其是衡量系统处理能力的重要指标。通常表示一次交易申请和响应返回的过程。

QPS】:通常指的是每秒查询率,是一台服务器每秒能够相应的查询次数,是对查询服务器规定时间内处理流量多少的称量标准。

网络吞吐量】:指单位时间内通过网络成功传输的数据量。单位为Byte/s。

【资源利用率】:主要指服务器硬件资源,网络资源等如cpu,内存使用率,磁盘IO,网络IO等。

【思考时间】指在测试过程中虚拟用户在与系统产生交互之间的一个等待时间,用于模拟真实环境真实用户在使用系统时每一步操作的等待间隔时间。

【并发数】:指在某一时间,一定数量的虚拟用户同时对系统进行交互操作,通常性能测试工具可以设置集合点以加强并发点

性能测试意义

        1.评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。

        2.识别体系中的弱点:受控的压力可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。

        3.系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。

检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。

        4.验证稳定性(resilience)可靠性(reliability):在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。

        5.通过预埋未来数据,比如三年后的数据量来评估系统未来的支撑情况。

        6.通过节点性能测试可以用于计算生产服务器节点配比。

环境搭建       

        Apache JMeter是Apache组织开发的基于Java的压力测试工具,是一款开源软件,并且是100%的纯java开发,可以在window和linux上面运行。

        Jmeter下载地址:https://jmeter.apache.org/download_jmeter.cgi

        Jmeter下载后可以配置下jmeter的环境变量
        (1)变量名:JMETER_HOME 变量值:  D:\\apache-jmeter-5.0

        (2)变量名:Path 变量值:  %JMETER_HOME%\\bin;

        (3)变量名:CLASSPATH 变量值:  

        %JMETER_HOME%\\lib\\ext\\ApacheJMeter_core.jar;%JMETER_HOME%\\lib\\jorphan.jar;

        这里注意了:即使不配置环境也是可以使用的,只不过需要进入到文件夹里面找到jmeter.bat双击打开即可。

         官网下载的都是这种英文的,虽然也会有汉化的可以下载,不过没必要,jmeter还是比较人性化的,里面可以直接设置。

         上面的是简体,下面的是繁体,设置完成后虽然不能完全汉化,但是也是够用了。

         我们可以添加一个线程组,线程组中添加一个HTTP请求

         这里说到HTTP请求,下一章节我们讲讲抓包,使用的工具是fiddler,可以自己去下载下来玩玩,除了jmeter可以用到fiddler,postman也是可以用到的,而且postman用到的更加的频繁。

         除此之外我们在里面可以添加很多的小工具,可以断言,断言则需要根据具体所需进行对应的选择才行。

         还有模式匹配规则,一般的话是包括,比如断言某一段文字,从登录界面跳转到主页面,主页面某些固定的文字信息,则可以用来断言。

        本章就先讲到这,下一章讲讲fiddler的使用。

你必须要知道的软件测试3个主流方式

在产品项目的最后推进过程中,会经过一系列的测试来判断以及优化产品,在测试中使产品的属性特征最优化,最终达到吸引更多客户的目的;本文作者分享了三种软件测试的主流方式,我们一起来了解一下... 查看详情

作为web开发人员,你必须要知道的问题!(持续更新)

GET和POST的区别 GET请注意,查询字符串(名称/值对)是在GET请求的URL中发送的:/test/demo_form.asp?name1=value1&name2=value2GET请求可被缓存GET请求保留在浏览器历史记录中GET请求可被收藏为书签GET请求不应在处理敏感数据时使用GET... 查看详情

oracle!你必须要知道的knowledgepoints(下)(代码片段)

...我们可以把两个查询语句嵌套起来,提供条件的查询语句作为子查询。子查询,也叫内部查询,先于主查询执行,子查询的结果被用于主查询。子查询分为单行子查询、多行子查询和多列子查询,单行子查询作为判断条件时用单... 查看详情

oracle!你必须要知道的knowledgepoints(入门篇)(代码片段)

...户,上课就以这个用户里的三张员工表empno、dept、salgrade作为示例来授课。启动服务1.快捷键ctrl+alt+del打开任务管理器2.选择服务3.启动OracleServiceXXXX(XXXX是全局名字)和o 查看详情

你必须要知道的雪崩穿透预热更新降级

以前总觉得,写得一手好Java代码,走遍天下都不怕,后来随着时间得推移,才意识到程序的高效性流畅性才是最重要最重要的。所有的技术都是前人不断实践突破革新留下的产物,它们的存在以及运用一定有... 查看详情

自动化脚本如何切换环境?pytest这些功能你必须要掌握

...交道,比如线上环境,测试环境,预上线环境等等,那么作为自动化测试人员写的代码,我们也要具备能自由切换环境的能力,那么今天小编就给大家聊一下,如何能让我们python语言写的测试用例可以自由切换到不同的环境下面... 查看详情

深入集合类系列——你必须要知道的两棵继承树

查看详情

你必须要知道的软件测试3个主流方式

在产品项目的最后推进过程中,会经过一系列的测试来判断以及优化产品,在测试中使产品的属性特征最优化,最终达到吸引更多客户的目的;本文作者分享了三种软件测试的主流方式,我们一起来了解一下... 查看详情

关于程序国际化你必须要知道这事

银弹谷零代码开发平台V百科|新功能:关于国际化你必须要知道这事小张最近有一个烦恼!他们公司最近接了一个跨国合作的项目,小张因为业绩优秀英语功底扎实,也有多年做项目的经验,所以就被领导派去做项目负责人。但... 查看详情

你必须要知道的10款app开发框架

对于大部分Web开发人员,HTML、CSS和Javascript是他们最熟练的开发技能。然而,开发一个原生的移动App,对他们来说却是完全陌生的领域。因为开发Android,iOS或WindowsPhone上的原生App(app开发公司ty300.com),需要掌握完全不同的开发... 查看详情

关于ffmpeg-php你必须要知道的

1#PHPFFmpeg23[![BuildStatus](https://secure.travis-ci.org/PHP-FFMpeg/PHP-FFMpeg.png?branch=master)](http://travis-ci.org/PHP-FFMpeg/PHP-FFMpeg)45[![SensioLabsInsight](https://insight.sensiolabs.com/pr 查看详情

关于http协议,你必须要知道的(代码片段)

引言HTTP协议是HyperTextTransferProtocol(超文本传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议。HTTP是基于TCP/IP协议通信协议来传递数据(HTML文件,图片文件,查询结果等)。它不涉及数据包(packet)传... 查看详情

关于配置,你必须要知道这一点....(代码片段)

kafka管控平台推荐使用滴滴开源的Kafka运维管控平台(戳我呀)更符合国人的操作习惯、更强大的管控能力、更高效的问题定位能力、更便捷的集群运维能力、更专业的资源治理、更友好的运维生态、BliBli视频:石臻臻的杂货铺kafka的... 查看详情

你必须要搞清楚的几大图片框架的区别

...icassoFaceBook推出的frescogoogle推荐的glide 对图片框架进行的测试:内存测试,大图片测试,小图片测试,本地图片,网络 查看详情

你必须要会的测试用例基本功(代码片段)

...规模的持续增大,业务复杂度的持续增加,软件测试的复杂度也随之越来越大。而软件测试工作复杂度的直接体现就是测试用例编写、维护、执行和管理,所以编写易读、易维护和易管理的测试用例可以有效的降低测... 查看详情

做自动化测试之前,你必须要了解的

前言随着软件测试技术的发展,人们已经从最初的纯粹的手工测试转变为手工与自动化测试技术相结合的测试方法。近年来自动化测试越来越受到人们的重视,对于自动化测试的研究也越来越多。我在做自动化测试期间经历了不... 查看详情

想要节省空间,你必须要知道——动态内存管理(附通讯录动态内存版源码)(代码片段)

想要节省空间,你必须要知道——动态内存管理(附通讯录动态内存版源码)1.    为什么存在动态内存分配2.    动态内存函数的介绍2.1    malloc2.2    freemalloc和free通常配合一起使用:2.3    calloc2.4   ... 查看详情

单元测试基础(代码片段)

...什么要有这篇文章呢?个人在不断实践中越发觉得,单元测试对于代码质量的保障真的太有意义了,至少能体现在如下两个方面:①让你写出更好的代码,可测试的代码一定是优雅的代码(为了可测试,你必须要解耦,必须要遵... 查看详情