在本节中,我们将学习如何使用吞吐量控制器在JMeter中创建分布式负载测试计划。

出于测试目的,我们将在我们网站 www.yiibai.com 的URL下的某些网页上创建分布式负载。这些网页包括:

  • 主页: www.yiibai.com
  • 第1页(Java): www.yiibai.com/cplusplus/
  • 第2页(C语言): www.yiibai.com/cprogramming
  • 第3页(Python): www.yiibai.com/python

注意: 假设创建了10个虚拟用户(线程)来在网站上执行分布式负载测试,然后所有其他网页将由10个虚拟用户的持续负载进行测试。 但是,这不是一个现实世界的场景。 在现实世界中,同一URL下不同网页的负载可能存在差异。

让我们首先创建一个分布式负载测试计划,而不使用吞吐量控制器。 对于此测试,我们已将单个虚拟用户分发到每个线程组。

创建JMeter测试计划

  • 进入到JMeter/bin文件夹并双击jmeter.bat文件以启动JMeter界面。
  • 单击“测试计划”节点。
  • 将此测试计划节点重命名为Distributed Test
  • 选择Distributed Test节点,然后右键单击所选项目。
  • 鼠标悬停在“Add”选项上,然后将显示元素列表。
  • 选择Threads (Users) > Thread Group

添加采样器

接下来在Thread Group中添加一个HTTP RequestSampler。

  • 选择“Thread Group”,然后右键单击所选项。
  • 鼠标悬停在“Add”选项上,然后将显示元素列表。
  • 选择Sampler > HTTP request选项。
  • 它将添加一个空的HTTP请求采样器。

将HTTP Request Sampler的字段配置为:

  • Name - Home Page 。
  • 服务器名称或IP - 在这个示例中,Web服务器名称是 www.yiibai.com 。

现在,将复制线程组并将其粘贴到测试计划中三次。 根据测试的网页重命名每个HTTP请求采样器。每个HTTP请求采样器的服务器名称都相同。

下图显示了“分布式测试计划”下的目录结构。

分别配置Java,C_Programming和Cpp采样器的路径名。

以下图像显示了上述每个采样器的相应路径名。

主页

Java

C_Programming

CPP

添加监听器

  • 选择“Distributed Test Plan”元素。
  • 鼠标悬停在“Add”选项上,然后将显示元素列表。
  • 选择Listener -> Aggregate Report

保存并执行测试计划

  • 单击File -> Save Test Plan as
  • 将整个测试计划保存为Distributed_test1.jmx

  • 单击Run -> Start以执行测试计划。

验证输出

可以在#Samples标签中查看每个网页的加载分布。

现在,我们已经成功执行了分布式负载测试计划,但是不使用吞吐量控制器。 但是,在应用程序的实际负载测试期间,我们无法确定实际用户的数量。 在这种情况下,需要使用吞吐量控制器。

添加吞吐量控制器

首先,我们需要为测试计划创建一个主线程组(“Distributed Test”)。

  • 选择“Distributed Test”节点,然后右键单击所选项目。
  • 鼠标悬停在“Add”选项上,然后将显示元素列表。
  • 选择“Threads (Users)” -> “Thread Group”
  • 将此线程组重命名为Master Thread Group
  • 选择“Master Thread Group”节点,然后右键单击所选项。
  • 鼠标悬停在“添加”选项上,然后将显示元素列表。
  • 选择Logic Controller -> Throughput Controller

下图显示了吞吐量控制器的默认控制面板。

按照以下步骤在“Master Thread Group”节点下创建测试计划:

  • 复制“主页”采样器并将其粘贴到吞吐量控制器中。
  • 再创建三个吞吐量控制器并复制粘贴其余的网页采样器。
  • 禁用/删除分布式测试计划节点下的线程组。

下图显示了“Master Thread Group”节点下的目录结构。

现在,已将主线程组中的用户总数配置为“10”。 作为其结果,每个吞吐量控制器的“%”执行将根据主线程组中的用户总数进行分配。

我们为每个吞吐量控制器分配了“%”执行:

  • 10%为主页
  • 20%为Java
  • C_Programming为20%
  • Cpp为50%

注意:主线程组中的线程数(用户)可以根据应用程序的实际预期负载而变化。

下图显示了Master Thread Group和整个吞吐量控制器的配置。

单击Run -> Start,执行测试计划。

验证输出

可以在#Samples标签中查看每个网页的加载分布。

JMeter分布式负载测试(吞吐量控制器)的更多相关文章

  1. AWS EC2+Docker+JMeter构建分布式负载测试基础架构

    目录 概述及范围 前提条件 Part 1: Local setup-本地配置 Part 2: Cloud端基础架构--Infrastructure 总结: 原文链接 @ 概述及范围 本文介绍有关如何使 ...

  2. 【转】使用JMeter进行负载测试——终极指南

    使用JMeter进行负载测试——终极指南 这篇教程讨论的是JMeter,它是一款基于Java的.集合了几个应用程序.具有特定用途的负载和性能测试工具. 本篇主要涉及的内容: 解释一下JMeter的用途 ...

  3. 转:利用ant与jmeter实现负载测试自动化

    性能测试一直以来都是测试领域一个令人争议的话题.测试的参考标准.评判依据及测试的方法选择都很难有一个统一的说法.但无论如何,对于需要能够承受一定压力而运行的程序来说,进行其进行功能和性能测试是一个必不 ...

  4. Locust分布式负载测试工具入门

    忽略元数据末尾 回到原数据开始处 Locust简介 Locust是一个简单易用的分布式负载测试工具,主要用来对网站进行负载压力测试. 以下是github上的仓库地址 https://github.co ...

  5. 性能测试工具 jmeter 分布式压力测试实操

    性能测试工具 jmeter 分布式压力测试实操 本文在Non-GUI Mode下进行,准备好三台有jdk环境,linux操作系统,同一局域网测试机器,运行两台slave,一台master机器,进行分布 ...

  6. 使用JMeter进行负载测试——终极指南

    这篇教程讨论的是JMeter,它是一款基于Java的.集合了几个应用程序.具有特定用途的负载和性能测试工具. 本篇主要涉及的内容: 解释一下JMeter的用途 JMeter的实现方式以及采用的技术 安 ...

  7. Jmeter 分布式压力测试

      JMeter中进行分布式测试 作为一个纯 JAVA 的GUI应用,JMeter对于CPU和内存的消耗还是很惊人的,所以当需要模拟数以千计的并发用户时,使用单台机器模拟所有的并发用户就有些力不从心, ...

  8. linux上实现jmeter分布式压力测试(转)

    摘要:最近根据公司工作的需求,学习了一些压力测试的知识,目前,公司使用的是jmeter进行压力测试.下面就记录下近期的学习.我想将这次的博文分成三个部分:1.开始测试前的准备(测试环境的搭建)2.在一 ...

  9. 使用JMeter进行负载测试快速入门

    相信JMeter是很多测试人员必备技能之一,今天简单讲一下开发人员如何使用JMeter进行简单的压力测试快速入门. 安装JMeter Jmter官方地址 按提示下载JMeter,然后直接解压就可以用了 ...

随机推荐

  1. Java练习 SDUT-2733_小鑫の日常系列故事(二)——石头剪子布

    小鑫の日常系列故事(二)--石头剪子布 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 小鑫在上幼儿园的时候,喜欢跟小伙 ...

  2. phpexcel使用说明4

    <div class="postBody"> <div id="cnblogs_post_body"><p>PHPExcel ...

  3. phpexcel使用说明1

    <?php /** * PHPEXCEL生成excel文件 * @author:firmy * @desc 支持任意行列数据生成excel文件,暂未添加单元格样式和对齐 */ require_o ...

  4. CAD安装失败怎样卸载重新安装CAD,解决CAD安装失败的方法总结

    技术帖:CAD没有按照正确方式卸载,导致CAD安装失败.楼主也查过网上关于如何解决CAD安装失败的一些文章,是说删除几个CAD文件和CAD软件注册表就可以解决CAD安装失败的问题,实际的情况并没有这么 ...

  5. 13 -3 jquery选择器和 jquery动画

    一 选择器: 1 基本选择器 例子: <!--id 类 标签--> <!DOCTYPE html> <html lang="en"> <h ...

  6. @codeforces - 1205B@ Shortest Cycle

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个长度为 n 的正整数序列 a1, a2, ..., an ...

  7. Transformer的PyTorch实现

    Google 2017年的论文 Attention is all you need 阐释了什么叫做大道至简!该论文提出了Transformer模型,完全基于Attention mechanism,抛弃 ...

  8. oracle 识别’低效执行’的SQL语句

    用下列SQL工具找出低效SQL: SELECT EXECUTIONS , DISK_READS, BUFFER_GETS, ROUND((BUFFER_GETS-DISK_READS)/BUFFER_ ...

  9. SuperSocket内置的命令行协议

    内置的命令行协议(接受自定义,分隔符为“:”,“,”): 命令行协议定义了每个请求必须以回车换行结尾 "\r\n". 由于 SuperSocket 中内置的命令行协议用空格来分割请 ...

  10. ACM感想、

    从15年10月开始搞ACM,到如今的16年4月底,已经接近半年了. 大一下学期开始ACM组的人员就不断减少,有的因为坚持不下,有的因为不喜欢,有的没留下理由就走了, 瞬间感觉实验室空了很多很多.现在常 ...