• 0
  • 0
分享

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

步骤

第 1 步:创建测试计划

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

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


11.png

第 2 步:添加线程组

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

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


22.png


填写线程组信息。

33.png

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

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

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

第 3 步:添加取样器

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

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

44.png

填写 HTTP 的调用信息。

55.png

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

66.png

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

77.png

第 4 步:添加断言

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

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

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

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

响应断言

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

88.png

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

99.png

对 HTTP 的响应码 做断言:

100.png

JSON 断言

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

101.png

对接口返回的 total 做断言:

102.png

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

103.png

上面的 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"。

断言结果

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

104.png

第 5 步:添加监听器

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

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

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

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

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

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

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

105.png

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

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

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

查看结果树:

106.png

汇总报告:

107.png

图形结果:

108.png

技巧

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

更多 Jmeter 使用技巧:


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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   2022年度软件测试行业的趋势预测:如果你也想了解更多发展趋势,那就点击下方链接填写调查问卷吧!助力测试行业发展,还能获得精美礼包哦~ 链接:http://vote.51testing.com/   我有一个秋招群,有时会看到他们在聊外包岗的相关话题,基本是 99% 的人都在尽力躲开外包岗。  确实,很多人都不想被套上外包岗的标签,但事实上,外包公司真的很多,总有人会在外包岗。  那外包岗真的一点也不值得去吗?  答是我也不清楚,不过今天咱不谈值不值得去的话题,而是谈一谈帅地身边的外包同事,注意,腾讯那么大,可能每个部门的外包人员待遇也是不一样的,所以我指的是,我身边的外包同事。  信息主...
            0 0 1405
            分享
          •   百度文心一言App已在苹果应用商店AppStore上架,App体积为46.1MB。实测发现,用户可用百度账号登陆,不过对于未获得授权用户,仍需要申请体验权限。  文心一言是百度的大语言模型,提供了人机智能问答、文本创作、图片生成等功能。今年4月,由于“文心一言”盗版App泛滥,百度对苹果公司及相关开发者团队发起诉讼。百度公司当时表示,“目前文心一言没有任何官方App!在我司官宣前,凡是在AppStore和各种应用商店看到的‘文心一言’App都是假的”。  截至发文,百度未对文心一言App上线AppStore进行回应。作者:佚名原文链接:新浪科技_新浪网(sina.com.cn)
            0 0 1314
            分享
          •   ChatGPT 迅速“风靡”全球,无疑成为了人工智能领域备受瞩目的“明星产品”,然而随着 ChatGPT 应用越来越广泛,陆续爆出被用于学术造假、制作黑客武器以及泄露用户敏感聊天信息等一系列负面新闻。至此,社会开始重新审视类似 ChatGPT 的人工智能技术。  相较于以往服务于工业领域的智能机器人,仅能代替人类从事繁杂、机械、危险的体力劳动,类似 ChatGPT 人工智能技术具有更强的可对话性,灵活性以及不俗的“独立思考能力” ,重新塑造了社会对人工智能领域的认知。目前,科技巨头发布的人工智能产品已经融入文字工作、编程、绘画等各类型的产业中,引起了新一轮科技变革。  无可争议,一旦类似 ...
            0 0 876
            分享
          • 面试官常问问题1、描述一下软件测试活动周期答案:需求评审—测试计划、方案制定—编写测试用例—执行测试用例—缺陷提交、跟踪—伦次回顾、输出测试报告。2、请描述一个bug周期答案:对于我们公司来说,bug创建及关闭是比较规范的,首先是先创建、提交一个缺陷到缺陷管理平台,然后制定给对应的开发负责人修改;等到开发修改完成后,我们会使用开发提供的程序进行验证,如果bug已经解决的话,那么我们会关闭这个bug,如果没有真正解决的话,那就重新打回给对应的开发重新进行解决。3、测试人员在软件开发过程中的任务是什么?答案:1、尽可能早的找出系统中的缺陷  2、避免软件开发过程中缺陷的出现&n...
            0 0 1268
            分享
          •   根据美国商标和专利局(USPTO)公示的最新清单,苹果近日获得了一项新的可折叠手机专利,最大的亮点是让折痕区域自愈。  根据专利描述,苹果计划通过外部施加的热、光、电流或其他类型的外部刺激,来实现折痕的自我修复。  IT之家附相关草图如下,苹果构想的未来设备配有一个铰链,允许设备通过铰链进行折叠。而在铰链部分的屏幕采用柔性屏幕覆盖层,可以插入在显示器覆盖层的第一刚性和第二刚性部分之间。  苹果表示电子设备的显示覆盖层可能会被划伤或凹陷。为了改善电子设备的美观性,可能需要降低划痕和凹痕的存在感,于是在屏幕覆盖层中引入一层自愈材料。  自愈材料层可以在整个显示器覆盖层上形成,也可以仅在显示器覆...
            0 0 977
            分享
      • 51testing软件测试圈微信