• 15
  • 15
分享
  • 软件测试面试复习知识点Jmeter 一次性查缺补漏个够——软件测试圈
  • 饭团🍙 2021-03-24 13:12:36 字数 2398 阅读 2923 收藏 15

Jmeter是什么?

一般情况下,我们提压力测试,通常指是指负载测试和压力测试.

我们做压力测试,基本上会使用到工具进行测试,我常用的工具,一个是jmeter,另外一个是loadRunner。我先介绍一下jmeter吧,jmeter是Apache组织开发的基于java的压力测试工具,支持接口测试,压力测试,还可以做录制回放操作,操作比较简便。

  • List item

整体流程

我先说一下JMeter的操作的整体流程吧,我们测试的时候,通常是创建一个线程组,指定并发的线程数量,然后指定要测试的接口,创建相应的监听器,比如表格结果,结果树和聚合报告信息,通过监听器来监听测试是否通过或者接口是否存在什么问题

其中在结果树中可以监测到整体的请求信息,就拿Http请求这种来讲,其实就是整个http协议的所有信息,包括请求头,请求参数,请求路径,还有响应头,响应结果等信息。

对于表格查看结果,可以看到每个请求的简单信息,本次请求的时间,以及平均的时间。

在聚合报告中,我们就可以看到整体的信息了。比如可以看到平均响应时间,90%Line 也就是90%的用户请求低于的时间。还有吞吐量 TPS,还有错误率,还有用流量来计算的吞吐量。这些都可以看到。通常,聚合报告就是反应整体的数据。

  • Jmeter参数化

做压力测试时,我们经常需要替换参数,在Jmeter中,有多种参数化的形式。可以在测试计划中设置全局参数,可以设置用户参数,还可以在前置处理器中设置用户参数。在进行多线程并发的时候,如果需要多个参数,可以使用csv配置元件。比如做登陆操作,后台有可能会限制一个用户不能重复登陆多次,如果演示登陆的并发操作,可以使用Jmeter中csv配置元件,将用户信息导出来,放到文件中,就可以让线程共享这些数据。另外,对于一些随机变化的参数,可以使用Jmeter中的函数助手,生成随机函数,进行参数化测试。比如注册这样的操作,用户名要求唯一的,那就可以使用随机函数来模拟出来。

  • Jmeter断言-检查点

在测试中,断言操作经常用到,jmeter的断言操作可以在请求后边设置一个断言结果,判断响应结果或者是响应状态码是否和预期的一致。

  • Jmeter逻辑控制器

在Jmeter中,逻辑控制器的应用比较广泛,我们可以把一组操作放到简答控制器中,用来声明范围。也可以设置循环控制器,比如我们注册1次,登陆10次,就可以使用循环控制器。还有事务控制器,对于一个完整的事务,可以使用事务控制器来控制。

  • Jmeter定时器

在Jmeter中定时器类型也比较多,我们会经常用到固定定时器,可以设置启动线程组的延迟时间是固定的。

还有高斯定时器,这种时间是可以设置随机值。另外,还有同步定时器,同步定时器可以用来做集合点,比如设置某个线程数,等并发到了该线程值的时候,才开始执行并发任务。

  • Jmeter后置处理器

对于Jmeter后置处理器,我们常用到的是正则表达式提取器,可以用来提取上一个请求的响应结果,用在下一个请求中。比如项目中会有条目展示,如果我们想要继续查看详情,就需要提取条目id,用来做下一个请求。这里还可以用到foreach循环控制器来完成。

  • Jmeter插件

对于Jmeter插件,常用的有场景设计插件,这个还是非常不错的一个功能。我们创建线程的时候,会设置线程组,而线程组太死板,不灵活。可以安装场景控制的插件,比如一开始延迟启动多少线程,如何递增启动线程,线程总数多少,总的测试时间多长,都可以使用场景控制插件来完成。

对于结果监听,结果树,表格,聚合报告都不够直观,我们可以通过安装图表插件来进行结果收集。看起来更加直观一些。比如可以获取到每秒事务量的图表,获取到平均响应时间的图表,都比较人性化。

这里有一点需要注意,就是监测服务器数据的时候,需要在服务器上启动一个插件,serverAgent,才能看到服务器的cpu和内存等数据。

  • Jmeter脚本录制

对于Jmeter脚本录制,我掌握的有两种方式,第一,可以使用Jmeter内置的http代理服务器录制脚本,这种配置方便,但是会录制无用信息。不过好处式可以录制手机端的请求。

也可以使用第三方工具,badboy录制,这种录制相对人性化一些,也会过滤掉一些请求,比如jpg,css等。

  • Jmeter数据库压力测试

有些时候,还会用到Jmeter去压测数据库,当然我们不会随便压测数据库。一般是当我们压测接口的时候,发现某个接口性能比较差,再进一步判定问题的时候,会压测数据库。

压测数据库,需要配置驱动,需要设置连接池大小,需要使用sql去操作数据库。如果我们想要看具体的哪条sql问题的话,还需要从开发那里拿到具体的sql进行压测。

  • NON GUI形式测试

所谓non GUI,就是我们不需要通过页面进行测试,这个也是我们推荐的测试方式,会提高测试机性能。或者在linux上,我们也没法打开图形化页面,就可以使用NON GUI形式的指定进行。

可以指定脚本,可以指定生成jtl文件的位置,还可以生成html报告文档。

Jmeter -n -t xxx.jmx(脚本文件) -l xx.jtl(生成结果文件) -e -o xxx.html

  • Jmeter分布式压力测试

在进行压测的时候,如果我们进行大并发的压测,往往一台测试机是达不到这么高的并发量的。那就可以使用分布式压测方式,设置一台控制器,然后几台压力机,咱们通常叫“肉鸡”,进行压测,这种压测也并不复杂,只需要做一些简单配置。

比如在肉鸡身上配置连接的端口,配置启动jmeter-server,就可以被连接测试了。在控制机master上我们,关联上肉鸡的ip和端口,就可以控制肉鸡进行分布式压力测试了。



作者:软件测试开发-虚竹

原文链接:https://blog.csdn.net/shuaigezhou10086/article/details/114677784

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 购物车对于电商系统,还是比较重要的一个功能模块,看上去比较简单,但是关于这个功能的测试分析还是不是那么轻松的,因为它真的不仅仅需要功能测试,还需要其他技术的支持才能做好。功能上:购物车是否需要登陆才能进入;账号退出后,购物车添加的内容是否还在;购物车页面是否能够显示添加的商品的详细信息(商品名称、链接、数量、单价、总价);一条商品的单价、数量、总价的计算是否正确;多条商品是否能够以列表显示;多条商品同时显示,能否在相同的位置显示相同的数据;购物车能够返回商品首页继续浏览;能够移除购物车中的商品;购物车能够调整商品的数量;限购商品数量调整时能不能超过限购数量;没有限购要求的商品,添加数量能不能超...
            0 0 2039
            分享
          • 什么是 Newman?Newman 是一款专为 Postman 打造的命令行工具,旨在通过自动运行 Postman 集合和环境,实现 API 测试的自动化。它使得开发者无需打开 Postman 图形界面,即可直接在命令行中执行测试用例。Newman 的优势使用 Newman 进行 API 测试,可以带来诸多好处:快速反馈:每当代码发生变更,开发者都可以借助 Newman 迅速获悉 API 性能的最新状况持续集成:Newman 可以与持续集成(CI)系统无缝对接。一旦有任何代码变更被推送,CI 系统便会自动触发 Newman 运行相应的 Postman 集合。全面测试:Newman 能够全方位测...
            0 0 1503
            分享
          •   在如今开源的时代,我们就不要再闭门造车了,热烈的拥抱开源吧!本文针对性能测试、Web UI 测试、API 测试、数据库测试、接口测试、单元测试等方面,为大家整理了github或码云上优秀的自动化测试开源项目,希望能给大家带来一点帮助。  一、性能自动化测试  1、项目名称:基于Jmeter实现的在线压测平台和在线管理Jmeter脚本系统。  项目简介:  本项目基于renren-fast Java开发平台开发,内核基于Jmeter-Api和Jmeter脚本实现在线性能压测。  具有如下特点:  ·友好的代码结构及注释,便于阅读及二次开发  · 实现前后端分离,...
            0 0 1928
            分享
          •   测试工作是一项极其重要的质量保证活动,因此测试部门既是软件发布质量把控的出口,也是客户意见反馈的入口。但是因为之前的不重视,导致了软件测试行业的发展相对滞后,优秀的软件测试工程师非常难得。  一个优秀的测试工程师要对一些不易重复出现的错误找到规律,要能够帮助开发人员定位问题,能够对代码进行一定的检查,将错误尽可能在项目生产的早期阶段发现,同时,测试工程师还要对各种编程语言、数据库都有一定的了解,要有编程的概念。  那么,什么样的人才适合做软件测试工程师呢?  一般情况下,分为技术技能需求和职业素质需求。  一、基础要求(技术技能需求)  软件测试工程师岗位基础要求一般包括以下几个方面。  ...
            0 0 143
            分享
          •   “系统软件配置不得当”占所有“环境配置不得当”至少30%,这其中数据库的参数配置对性能的影响最大,需要检查的点也最多,从这一期开始专门介绍数据库的性能测试检查(以Oracle为例,因为Oracle用的最广 ^v^),因为数据库的设计复杂,影响性能测试的点不计其数。  检查的目的是什么呢?如果是测试环境,首先需要检查参数配置是否和生产环境相同或相似,如果是生产环境,需要检查参数配置是否合理。并且,由于数据库的设计逻辑,相同的场景跑几遍,其性能结果也是不同的,所以,环境检查的目的也是要确保测试结果的稳定性、可重复性。  举个例子,第一次跑的时候,数据在磁盘了,跑到过程中调入了内存。第二次跑的时...
            0 0 1742
            分享
      • 51testing软件测试圈微信