• 0
  • 0
分享

  JMeter 是一个开源的负载测试工具,它可以模拟多种协议和应用程序的负载,包括 HTTP、FTP、SMTP、JMS、SOAP 和 JDBC 等。在进行接口自动化测试时,使用 JMeter 可以帮助我们快速地构建测试用例,模拟多种场景,发现接口的性能问题。下面是一些 JMeter 接口自动化测试的步骤和技巧。

  步骤

  第 1 步:创建测试计划

  在 JMeter 中,测试计划是测试的最高级别,它包含了各种元素和配置,如线程组、断言、监听器等。测试人员需要在 JMeter 中创建一个新的测试计划,并添加必要的元素和配置。

  要创建新的测试计划,请选择: 文件 > 新建 > 填写计划名称。

16-1.jpg

  第 2 步:添加线程组

  在 测试 计划中,测试人员需要添加一个或多个线程组。线程组是测试的基本单位,它定义了测试的并发用户数量、持续时间和其他属性。测试人员需要根据需求设置线程组的属性。

  要创建线程组,请右击测试计划并选择: 添加 > 线程(用户) > 线程组。

16-2.jpg

  填写线程组信息。

16-3.jpg

  ·线程数:10 个线程就是模拟 10 个用户。

  · Ramp-Up 时间 (秒):线程准备时长。如果线程数为 10,准备时长为 10,那么需要 1秒钟启动 1 个线程。

  · 循环次数。如果线程数为 10,循环次数为 10,那么每个线程发送 10 次请求。总请求数为 10*10 = 100。如果勾选了“永远”,那么所有线程会一直发送请求,直到手动停止。

  第 3 步:添加取样器

  取样器 是 JMeter 测试的核心组件,它模拟了用户执行的操作。测试人员需要添加一个或多个取样器,并设置它们的属性。常见的取样器类型包括 HTTP 请求、TCP 请求、FTP 请求、JDBC 请求等。

  这边以添加 HTTP 请求为例。添加 HTTP 请求,右击线程组并选择:添加 > 取样器 > HTTP 请求。

16-4.jpg

  填写 HTTP 的调用信息。

16-5.jpg

  传过去的数据是 json 格式的,因此要添加头信息:Content-Type:application/json。右击 HTTP 请求并选择:添加 > 配置元件 > HTTP 信息头管理。

16-6.jpg

  添加头信息:Content-Type:application/json。

16-7.jpg

  第 4 步:添加断言

  断言是 JMeter 测试中的重要组件,它用于验证服务器的响应是否符合预期。测试人员需要添加一个或多个断言,并设置它们的属性。

  常见的断言类型包括响应断言 和 JSON 断言:

  · 响应断言包括:文本、响应代码、响应头、响应时间等。

  · JSON 断言允许用户指定 JSON 路径表达式并验证 JSON 响应是否符合该表达式。

  响应断言

  添加响应断言: 右击接口 > 添加 > 断言 > 响应断言。

16-8.jpg

  对 响应文本中 包含字符串 “Apple” 做断言:

16-9.jpg

  对 HTTP 的响应码 做断言:

16-10.jpg

  JSON 断言

  添加 JSON 断言: 右击接口 > 添加 > 断言 > JSON断言。

16-11.jpg

  对接口返回的 total 做断言:

16-12.jpg

  对接口返回的 data 的第 1 项 name 做断言:

16-13.jpg

  上面的 JSON Path 指的是 JSON 路径表达式。表达式由一系列的属性名和数组索引组成:以 “$.” 开头,用“.”和“[]”分隔。例如,以下 JSON 响应:

  "name": "John",
      "age": 30,
      "cars": [
          {
              "name": "Ford",
              "models": [
                  "Fiesta",
                  "Focus",
                  "Mustang"
              ]
          },
          {
              "name": "BMW",
              "models": [
                  "320",
                  "X3",
                  "X5"
              ]
          }
      ]
  }

  可以使用以下表达式获取相应的值:

  · $.name:获取 "John"。

  · $.cars[0].name:获取 "Ford"。

  · $.cars[1].models[2]:获取 "X5"。

  断言结果

  运行用例。如果 响应符合断言,则什么都不会发生。否则,在 结果树监听器 中会看到报错信息。

16-14.jpg

  第 5 步:添加监听器

  监听器是 JMeter 测试中的另一个重要组件,它用于收集测试结果并生成报告。测试人员需要添加一个或多个监听器,并设置它们的属性。以下是一些常用的 JMeter 监听器:

  · 聚合报告:提供有关事务响应时间、吞吐量和错误率的信息。

  · 查看结果树:显示每个请求的响应,包括请求头、请求正文和响应正文。

  · 监听器图形结果:将测试结果可视化,以便更轻松地分析性能问题。

  · 断言结果:验证响应是否满足特定条件。

  · 分布式负载测试图:显示不同服务器上的负载情况。

  添加监听器:请右键单击线程组(或取样器) > 添加 > 监视器 > 具体的监视器。这里以最常用的 “查看结果树” 为例。

16-15.jpg

  第 6 步:运行测试计划,查看报告

  测试人员完成测试计划的配置后,可以运行测试计划并收集测试结果。测试人员可以通过监听器生成报告,并根据结果调整测试计划的配置。

  等用例运行结束,可以在配置不同的监视器中看到对应的结果。

  查看结果树:

16-16.jpg

  汇总报告:

16-17.jpg

  图形结果:

16-18.jpg

  技巧

  使用 CSV 数据文件

  如果你需要模拟多种场景,可以使用 CSV 数据文件。你可以将不同的请求参数保存在 CSV 文件中,然后在 JMeter 中使用 CSV 数据文件配置请求参数。这样可以快速地生成多个测试用例,提高测试效率。

  使用 JMeter 插件

  JMeter 插件 有很多可以扩展其功能。例如,你可以使用 JSON Path Extractor 插件,从接口返回的 JSON 数据中提取特定的字段。你还可以使用 Response Assertion 插件,验证接口返回的结果是否符合预期。

  如果你需要使用插件,你需要按照以下步骤进行安装:

  1、下载插件管理器

  首先,你需要下载 JMeter 插件管理器。插件管理器是一个用于安装和升级 JMeter 插件的工具。你可以在官方网站上下载最新版本的插件管理器。

  2、安装插件管理器

  将下载好的插件管理器文件复制到 JMeter 的 lib/ext 目录下,并重启 JMeter。

  3、安装插件

  打开 JMeter 并选择 Options -> Plugins Manager。在 Plugins Manager 界面中,你可以搜索要安装的插件,并点击 Install 按钮进行安装。

  4、重启 JMeter

  完成插件的安装后,你需要重启 JMeter 才能使其生效。

  使用分布式测试

  如果你需要模拟大量并发用户访问接口,可以使用 JMeter 的分布式测试功能。你可以将测试计划分发到多个 JMeter 客户端,同时运行多个线程组,模拟大量并发用户访问接口。这样可以提高测试效率,发现接口的性能问题。

  总之,使用 JMeter 进行接口 自动化测试 是一种快速、高效、可靠的测试方法。通过合理的配置和技巧,可以发现接口的性能问题,提高应用程序的质量和稳定性。


作者:Hong1    

来源:http://www.51testing.com/html/46/n-7797746.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 我们写用例的时候一般是先写测试点,然后再写测试用例,也可以这么理解,测试点就是精简版的测试用例。编写用例四个基本方法:等价类、边界值、正交法、场景法。我认为对于一般的企业测试来说,这四个方法足够了。编写测试用例的策略:先点后面,先局部再整体,最忌讳的是点和面混在一起,局部和整体不明。在测试点设计的时候,需要思考如下几点:1、测试操作的难度;测试操作包括环境、配置、执行等因素,在测试设计时,尽量减小操作的难度。2、重要性及优先级;测试点一定要区分重要性及优先级,以便在实际项目测试中进行选择。重要性部门建议突出内部测试、外部验收、线上问题等标签,便于管理和分类更新。3、自动化可实现性;测试点一定要...
            0 0 3071
            分享
          • 作为一名多年的测试人员,对测试这个岗位的存在,也有自己的一点拙见。纵观现在的互联网公司,不管是国际巨头,行业巨头,或初创型公司,测试的岗位都必不可少。但不同的公司之间,却又有很多的差异性,拿测试开发比来说:在 Google 公司,测试开发比为 1:10;但微软则能达到 1:1 甚至更高;笔者现在所在的公司,大概是到 1:3 左右。其实每个公司的配比,都是视本公司的业务形态/协作方式决定的,单纯靠配比来决定什么,也是不科学的。微软的一些测试人员需要写单元测试,相当于测试开发的角色,写出来的东西去测试开发写出来的代码,加之微软产品性质比如复杂操作系统,服务器产品之类的,需要的测...
            0 0 1934
            分享
          •   关于SQL语句的优化,本质上就是尽量降低SQL语句的执行时间,对于如何降低SQL语句的执行时间,可以从以下几个方面入手。  一、降低SQL语句执行时的资源消耗  这是我们在数据库性能调优中常用的方法,该方法以分析SQL语句的执行计划为切入点,核心思路是找到执行计划中开销较高的操作,通过改写SQL语句或改变表访问方式调整执行计划,从而达到降低SQL语句执行消耗,缩短执行时间的目的。  对于改变表访问方式,常见的手段是使用索引替代开销较高的全表扫描,但这种方式不是万能的,是有一定的使用前提的,有时候,滥用索引反而会带来较高的性能开销。  以下列举一些适合采用访问索引的方式替代原有操作的案例。 ...
            0 0 665
            分享
          •   你知道成功的关键是什么吗?我想你会说努力工作。嗯,这只是部分正确。作为软件测试人员工作了很长时间,我可以说测试人员和开发人员之间的协作对于成功极为重要。测试人员和开发人员之间的沟通不畅会进一步影响 Web 应用程序的发布日期。如今,大多数公司都采用敏捷框架来消除工作环境中的孤岛。但是,即使这种方法打破了许多部门壁垒,协作也可能不是最强的。  当开发人员和测试人员协作时,他们能够更好地沟通。适当的沟通有助于确保两个团队更好地了解需求,从而加快项目交付速度。但是公司如何实现这一目标?测试人员如何与开发人员有效协作?这正是我们将在本文中解决的问题。那么,让我们开始吧!  根据我的观察,QA 和开...
            0 0 654
            分享
          • IT之家 9 月 13 日消息,苹果今日发布了 iOS 16 正式版更新,具体版本号为 (20A362),这是专为 iPhone 设计的最新操作系统。与 Apple 的所有软件更新一样,iOS 16 可以免费下载。 iOS 16 可在 iPhone 8 及更高版本上使用,苹果今年不再支持 iPhone 6s、iPhone 7 / Plus 和初代 iPhone SE。iOS 16 通常伴随着 iPadOS 16,但苹果今年仍在开发 iPadOS 16 功能,例如台前调度,因此 iPadOS 16 已被推迟,预计 iPadOS 16.1 更新将在 10 月份与 iOS 16.1 一起发布。苹果 ...
            0 0 1274
            分享
      • 51testing软件测试圈微信