• 0
  • 0
分享
  • 高频JMeter软件测试面试题
  • 程序员馨馨 2023-07-18 16:52:50 字数 1976 阅读 1963 收藏 0

近期,有很多粉丝在催更关于Jmeter的面试题,索性抽空整理了一波,以下是一些高频JMeter面试题,拿走不谢~


一、JMeter的工作原理


JMeter就像一群将请求发送到目标服务器的用户一样,它收集来自目标服务器的响应以及其他统计数据,这些统计数据通过图形或表格显示应用程序或服务器的性能。


二、用JMeter怎么做接口测试的


1、根据开发提供接口文档,编写接口测试用例


2、利用JMeter做接口测试,添加线程组和HTTP请求,在HTTP请求中,添加对应的ip,port,url,请求参数等


3、添加响应断言


4、添加查看结果树


5、执行用例


6、查看结果,验证接口返回与预期是否一致


三、JMeter是怎么实现接口之间关联的


有两种方式,即正则表达式提取器和json提取器,比如说我们要获取一个Token,可以把获取到的Token值赋予一个变量,在下一个接口调用这个变量即可,如果需要提取的文本是页面上某元素的属性值,建议使用json提取器,如果需要提取的文本在页面上的位置不固定,或者不是元素的属性,建议使用正则表达式提取器


四、性能测试流程


主要分五个阶段:


1、需求调研


进行需求调研和需求分析,输出性能测试需求表和性能测试计划书


2、测试准备


构建测试模型,制定测试方案,设计性能测试案例,准备压测的数据和脚本,输出性能测试方案和测试用例文档


3、用例执行


执行测试用例,记录性能测试结果,做好性能测试的监控,对测试结果进行分析,输出性能测试的执行日志


4、测试报告编写


编写性能测试报告,包含测试结果,出现的缺陷和问题,结果分析和性能测试的结论,输出性能测试分析报告


5、测试总结


对本次压测过程进行总结和复盘


五、JMeter中如何设置断言


鼠标右击请求---断言---响应断言---响应断言,输入要检查比对的项,设置好断言后,执行接口用例,查看结果树,如果通过,不会有任何报错提示,如果断言失败,就会有红色报错。


如果接口返回的数据是Json格式的,也可以添加Json断言.


六、JMeter添加http请求默认值元件的作用


相当于给其范围内的所有http请求取样器都设置了默认值,比如协议,主机地址、端口、编码等,将这些参数统一管理,减少了接口的维护成本,取值的顺序(优先级)是:


HTTP 请求本身设置的值


HTTP 请求下的 HTTP 请求默认值设置的值


线程组下的 HTTP 请求默认值设置的值


七、JMeter参数化的方式有哪些?


主要有4种方式:


1、CSV Data Set Config


在配置元件中添加,适合场景参数范围较大的场景,方便用户随时修改参数数据,使用较多的就是参数化用户名和密码的场景


2、函数助手


是Jmeter自带的函数,适合生成随机数的场景,例如生成随机字符串,随机日期,随机数字等


3、用户自定义变量


在配置元件中添加,适用于在测试计划中参数不经常变化的场景,例如设置host、端口号、url等


4、用户参数


在前置处理器中添加,适用于参数取值范围很小的场景,一般会将登录的用户账号和密码作为用户参数


八、JMeter常用断言方法有哪些?


主要有四种:


1、响应断言(Response Assertion)


响应断言是最常用的一种断言方法,主要是对响应结果中的文本内容进行断言,比如响应结果是否包含指定的值,或者是否等于指定的值。


响应断言可以适用各种返回类型的响应结果,如Test、html、application/json、application/xml等


2、JSON断言


它一般用于断言某个字段值是否等于指定的值。


JSON断言只能针对响应结果为applicaton/json格式的进行断言操作,如果是其他类型(如:Test、xml),则无法使用这种方式


3、断言持续时间(Duration Assertion)


通常用于做性能测试,一般用于检查HTTP请求的响应时间是否超过预期值


4、beanshell 断言


使用BeanShell脚本来执行断言检查,可以用于更复杂的个性化需求,使用更灵活,功能更强大,但是要能够熟练使用beanshell脚本。


九、JMeter测试元件的执行顺序


配置元件 -> 前置处理器 -> 计时器 -> 取样器 -> 后置处理器 -> 断言 -> 监听器


十、如何减少JMeter的资源需求


1、使用非GUI模式进行测试,例如jmeter -n -t test.jmx -l test.jtl

2、使用尽可能少的监听器

3、不要在负载测试期间使用“查看结果树”或“在表中查看结果”监听器,仅在脚本编写阶段使用它们来调试脚本

4、在循环中对于相似的请求,最好使用同一个采样器,结合CSV Data Set Config来改变样本,而不是使用多个相似的取样器

5、不要使用功能模式

6、使用CSV输出而不是XML

7、仅保存需要的数据

8、使用尽可能少的断言

9、使用性能最佳的脚本语言

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   【缘起】:“云计算”三个字在IT圈内的人士眼中绝对不陌生,至少听过见过不下数十次,近百次,甚至更多,但倘若要刨根究底这三个字背后的技术含义,势必会难倒不少人,说不清道不明的当不在话下。本次分享就带圈内人士们一起组队揭开“云计算”背后的神秘,从此不再做云端“盲人”,身在“云端”深处而浑然不知。  1.“云”深不迷茫  云计算可视为一种服务,以互联网为媒介,提供数据存储,数据访问及相关大数据计算等功能。之所以称之为“云”,一是因为它不会在我们本地个人计算机上存储任何数据,其二是由于该服务属于“on-demand service”,即按需服务,更接地气的说法是“点播业务”,仅根据用户需求提供服务...
            2 2 1574
            分享
          • 前言今天在做验证码识别项目的时候,一开始就碰到了一个问题,出了各种各样的报错,研究查询了很久终于解决了,在这里归纳分享一下。碰到的问题及解决方法在我定位验证码滑块元素的时候一直显示我定位语句错误,多次调试定位方法及路径未果,后来发现这里验证码的部分是用iframe写入的,也就是子Frame,相当于页面的子页面,它的结构与外部网页完全一致,selenium在打开网页后,默认在父级Frame里面操作,所以获取不到子Frame的节点。这时需要用switch_to.frame()的方式切换到iframe:from selenium import webdriver &nb...
            0 0 3965
            分享
          •   埃隆·马斯克周四晚间起诉他十年前参与创立的生成式人工智能公司 OpenAI,此举震惊业界。据最新报道,周五晚间 OpenAI 向员工发送了一份备忘录,驳斥了马斯克的指控,并对其提起诉讼的原因提出了另一种解释。  马斯克在诉讼文件中表示,OpenAI 违背了协议,不再像非营利组织那样开发 ChatGPT 等生成式人工智能产品。他指控该公司现在正在开发软件服务只是为了给微软赚钱,而微软此前向 OpenAI 投资了数十亿美元,并利用 OpenAI 帮助其开发 Copilot 等人工智能产品。  据 CNBC 报道,OpenAI 首席战略官 Jason Kwon 在周五向其在职员工发送了一份备忘录...
            0 0 743
            分享
          • 摘要:我们希望在划分我们的测试时,我们将考虑所有的场景,但是太容易忽略不常用的用例。这就是随机测试生成器的好处。我们可能在测试几十个测试用例后感觉很舒适;这些工具能生成几百个。随着更多的东西被扔到墙上,一些有趣的东西更有可能被粘在墙上。在第一个尝试FsCheck和基于属性的测试后,我恼火了。Haskell编程语言已经存在一段时间了,然而我从来不用它。吸引我注意的是一个名为QuickCheck的工具和它引进的算法。因为我一直工作在.NET领域,我采选用FsCheck做研究,一个F#端口的QuickCheck。我的恼火来自于演示list集合的属性。当我们反转一个列表,然后再反转一次,我们希望得到初...
            0 1 1455
            分享
          • 1、JMeter简介JMeter是Apache组织开发的基于Java的压力测试工具。具有开源免费、框架灵活、多平台支持等优势。除了压力测试外,JMeter在接口测试方面也有广泛的应用。2、JMeter安装访问JMeter官网:https://jmeter.apache.org/download_jmeter.cgi,点击下载后解压缩,依次打开\apache-jmeter-4.0\JMeter\bin,运行jmeterw.cmd即可。(建议在桌面创建jmeterw.cmd的快捷方式,方便快速打开)3、使用JMeter完成单个接口测试3.1 添加线程组在“测试计划”上点击鼠标右键-->添加-...
            12 12 3616
            分享
      • 51testing软件测试圈微信