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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   无论自动化或手工测试其主要目的都是为了持续提高产品的质量,无论企业的项目采取哪种软件开发模型, 自动化测试早已成为当下测试过程中不可或缺的一部分,增加自动化测试覆盖率也已被企业视为衡量测试团队效率的关键绩效指标(KPI)之一。  今天我们就来聊一聊Web自动化测试中的页面对象模型(POM),开启你对它的认知,探访POM是如何通过减少代码重复来有效减轻自动化维护的工作。  1. 页面对象模型(POM)攻略  页面对象模型是一种设计模式,其核心重点是通过减少代码重复,进而达到最小化代码更新/维护中涉及的工作量。 基于页面对象模型(POM)的实现包含以下关键要素:  (1) 页面类(P...
            13 13 2277
            分享
          • 没错,我,本人,就是那种卷心菜,就是那种想卷但卷不过别人的, 我每天吭哧吭哧写代码,写到办公区里空荡荡地只剩下我一个人,但我们组里,就我需求写得最慢,bug写得最多,我弟常问我:“哥,别的同事加班都没你多你绩效一定不错吧?”但、其实是因为我写不过别人,尤其公司里那个卷王,代码写得好,还写得快,改bug测试小姐姐一提他立马响应改好。 搞得测试组那边买奶茶常常会给他捎一杯,从来不带我。我真的、写bug写得好慢啊。 这天,卷王关掉关掉显示器,拎起电脑包甩到肩膀上就要走,经过我的工位凑过来瞄了一眼,意味深长地说“其实代码没必要自己写。”“我很多代码都复制粘贴的”他神秘一笑。我眼睛都瞪大了:“不是吧!没...
            0 0 1148
            分享
          •   再过两天,Galaxy S24 系列就要正式发布了,围绕这款新设备的消息可谓热闹非凡。几乎每一天,我们都能看到新的营销材料展示新设备的某些方面。在经历了昨天的两次大规模泄密之后,新手机又经历了一次大规模泄密,突出了三星希望你了解的一些新特性。  从上面的图片中可以看出,三星在 Galaxy S24 的设计之初就非常注重人工智能功能的引入,即时翻译功能被放到了非常重要的位置,看来,三星并没有把人工智能仅仅作为一项新奇的卖点来添加,而是希望用户能够利用它来提高工作效率,期待看到它们真正能够发挥作用。  除此之外,摄像头和屏幕的改进等几个重大亮点都出现在海报资料中。  Galaxy S24 系列...
            0 0 361
            分享
          •   国外科技媒体 Six Colors 报道,苹果 macOS 提醒和警告严重影响 Mac 设备迁移升级体验。  该媒体主编杰森?斯内尔(Jason Snell)在评测苹果 M3 iMac 和 M3 MacBook Pro 过程中,在迁移数据方面遇到了一些问题。  他表示在迁移完成之后首次重新开机 Mac 之后,出现了大量的安全警报,IT之家在此附上该媒体截图如下:  迁移助理已经迁移了我的所有应用程序,并自动启动了登录项中列出的任何应用程序或设置为在后台自动启动的应用程序。  迁移完成之后这些应用都会同时启动,并向用户发出通知提醒,告知或者提示用户这些应用的执行权限。  这些提醒和通知彼此重...
            0 0 1184
            分享
          • 沐沐一直在思考UI自动化有用吗?毕竟UI自动化的投入产出比(ROI)实在太低。对于测试人员而言,UI自动化就像是一个装备,升级打怪不一定用的到这个小装备,但是没有这个装备就会被鄙视。因此从投入的角度分析,选择UI自动化框架时,尽量选择学习成本和维护成本的较低的框架;从产出的角度而言,脚本需要产生效益,就需要更多的受众去使用;如果一定要选择一种UI自动化框架,沐沐一定会选择Cypress。Cypress是基于node.js环境的,安装则极为便利,如果我们测试人员维护好了自动化脚本,就可以直接将js脚本分享给研发人员,辅助研发人员进行自测。如果能将UI自动化普及到整个部门都去使用,辅助提升产品研发...
            1 0 4663
            分享
      • 51testing软件测试圈微信