每个线程组的概率

2024-03-07

如果我的测试计划中有 3 个线程组,如何为每个组设置恒定概率(请求权重)? 我是 JMeter 的新手。您能在屏幕截图上显示您的设置吗?


只需将每组的线程数设置为测试总线程数的一个因子即可。 如果有 100 个 VU,则 g1 设置为 50,g2 设置为 30,g3 设置为 20。

要使其动态,您可以使用豆壳 http://jmeter.apache.org/usermanual/functions.html#__BeanShell函数,您可以将线程数设置为:

${__BeanShell(50*${USERS}/100)}

并会使用一个用户定义变量 http://jmeter.apache.org/usermanual/component_reference.html#User_Defined_Variables包含:

USERS : ${__P(USERS, 10)} // for 10 users by default, 

然后可以将 USERS 作为命令行选项传递:

-JUSERS=100

Sample:

<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="2.4" jmeter="2.9-SNAPSHOT.20121216">
  <hashTree>
    <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
      <stringProp name="TestPlan.comments"></stringProp>
      <boolProp name="TestPlan.functional_mode">false</boolProp>
      <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
      <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="TestPlan.user_define_classpath"></stringProp>
    </TestPlan>
    <hashTree>
      <Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="USERS" elementType="Argument">
            <stringProp name="Argument.name">USERS</stringProp>
            <stringProp name="Argument.value">${__P(USERS, 20)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <stringProp name="Argument.desc">20 is default, to change it on command line -JUSERS=30</stringProp>
          </elementProp>
        </collectionProp>
      </Arguments>
      <hashTree/>
      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Run50Pct" enabled="true">
        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
          <boolProp name="LoopController.continue_forever">false</boolProp>
          <stringProp name="LoopController.loops">1</stringProp>
        </elementProp>
        <stringProp name="ThreadGroup.num_threads">${__BeanShell(50*${USERS}/100)}</stringProp>
        <stringProp name="ThreadGroup.ramp_time">1</stringProp>
        <longProp name="ThreadGroup.start_time">1356191395000</longProp>
        <longProp name="ThreadGroup.end_time">1356191395000</longProp>
        <boolProp name="ThreadGroup.scheduler">false</boolProp>
        <stringProp name="ThreadGroup.duration"></stringProp>
        <stringProp name="ThreadGroup.delay"></stringProp>
      </ThreadGroup>
      <hashTree>
        <DebugSampler guiclass="TestBeanGUI" testclass="DebugSampler" testname="DS1" enabled="true">
          <boolProp name="displayJMeterProperties">false</boolProp>
          <boolProp name="displayJMeterVariables">true</boolProp>
          <boolProp name="displaySystemProperties">false</boolProp>
        </DebugSampler>
        <hashTree/>
      </hashTree>
      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Run20Pct" enabled="true">
        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
          <boolProp name="LoopController.continue_forever">false</boolProp>
          <stringProp name="LoopController.loops">1</stringProp>
        </elementProp>
        <stringProp name="ThreadGroup.num_threads">${__BeanShell(20*${USERS}/100)}</stringProp>
        <stringProp name="ThreadGroup.ramp_time">1</stringProp>
        <longProp name="ThreadGroup.start_time">1356191395000</longProp>
        <longProp name="ThreadGroup.end_time">1356191395000</longProp>
        <boolProp name="ThreadGroup.scheduler">false</boolProp>
        <stringProp name="ThreadGroup.duration"></stringProp>
        <stringProp name="ThreadGroup.delay"></stringProp>
      </ThreadGroup>
      <hashTree>
        <DebugSampler guiclass="TestBeanGUI" testclass="DebugSampler" testname="DS2" enabled="true">
          <boolProp name="displayJMeterProperties">false</boolProp>
          <boolProp name="displayJMeterVariables">true</boolProp>
          <boolProp name="displaySystemProperties">false</boolProp>
        </DebugSampler>
        <hashTree/>
      </hashTree>
      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Run30Pct" enabled="true">
        <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
        <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
          <boolProp name="LoopController.continue_forever">false</boolProp>
          <stringProp name="LoopController.loops">1</stringProp>
        </elementProp>
        <stringProp name="ThreadGroup.num_threads">${__BeanShell(30*${USERS}/100)}</stringProp>
        <stringProp name="ThreadGroup.ramp_time">1</stringProp>
        <longProp name="ThreadGroup.start_time">1356191395000</longProp>
        <longProp name="ThreadGroup.end_time">1356191395000</longProp>
        <boolProp name="ThreadGroup.scheduler">false</boolProp>
        <stringProp name="ThreadGroup.duration"></stringProp>
        <stringProp name="ThreadGroup.delay"></stringProp>
      </ThreadGroup>
      <hashTree>
        <DebugSampler guiclass="TestBeanGUI" testclass="DebugSampler" testname="DS3" enabled="true">
          <boolProp name="displayJMeterProperties">false</boolProp>
          <boolProp name="displayJMeterVariables">true</boolProp>
          <boolProp name="displaySystemProperties">false</boolProp>
        </DebugSampler>
        <hashTree/>
      </hashTree>
      <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="false">
        <boolProp name="ResultCollector.error_logging">false</boolProp>
        <objProp>
          <name>saveConfig</name>
          <value class="SampleSaveConfiguration">
            <time>true</time>
            <latency>true</latency>
            <timestamp>true</timestamp>
            <success>true</success>
            <label>true</label>
            <code>true</code>
            <message>false</message>
            <threadName>true</threadName>
            <dataType>false</dataType>
            <encoding>false</encoding>
            <assertions>false</assertions>
            <subresults>false</subresults>
            <responseData>false</responseData>
            <samplerData>false</samplerData>
            <xml>false</xml>
            <fieldNames>true</fieldNames>
            <responseHeaders>false</responseHeaders>
            <requestHeaders>false</requestHeaders>
            <responseDataOnError>false</responseDataOnError>
            <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
            <assertionsResultsToSave>0</assertionsResultsToSave>
            <bytes>true</bytes>
            <hostname>true</hostname>
            <threadCounts>true</threadCounts>
            <sampleCount>true</sampleCount>
          </value>
        </objProp>
        <stringProp name="filename"></stringProp>
      </ResultCollector>
      <hashTree/>
      <ResultCollector guiclass="StatVisualizer" testclass="ResultCollector" testname="Aggregate Report" enabled="true">
        <boolProp name="ResultCollector.error_logging">false</boolProp>
        <objProp>
          <name>saveConfig</name>
          <value class="SampleSaveConfiguration">
            <time>true</time>
            <latency>true</latency>
            <timestamp>true</timestamp>
            <success>true</success>
            <label>true</label>
            <code>true</code>
            <message>false</message>
            <threadName>true</threadName>
            <dataType>false</dataType>
            <encoding>false</encoding>
            <assertions>false</assertions>
            <subresults>false</subresults>
            <responseData>false</responseData>
            <samplerData>false</samplerData>
            <xml>false</xml>
            <fieldNames>true</fieldNames>
            <responseHeaders>false</responseHeaders>
            <requestHeaders>false</requestHeaders>
            <responseDataOnError>false</responseDataOnError>
            <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
            <assertionsResultsToSave>0</assertionsResultsToSave>
            <bytes>true</bytes>
            <hostname>true</hostname>
            <threadCounts>true</threadCounts>
            <sampleCount>true</sampleCount>
          </value>
        </objProp>
        <stringProp name="filename"></stringProp>
      </ResultCollector>
      <hashTree/>
    </hashTree>
  </hashTree>
</jmeterTestPlan>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每个线程组的概率 的相关文章

  • JMeter 批量接口测试

    一 背景 最近在进行某中台的接口测试准备 发现接口数量非常多 有6 70个 而且每个接口都有大量的参数并且需要进行各种参数验证来测试接口是否能够正确返回响应值 想了几种方案后 决定尝试使用JMeter的csv读取来实现批量的接口测试 二 脚
  • Jmeter 压测-性能调优5大注意

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Jmeter 性能-并发量计算

    并发概念 指网站在同一时间访问的人数 人数越大瞬间带宽要求更高 服务器并发量分为 业务并发用户数 最大并发访问数 系统用户数 同时在线用户数 估算业务并发量的公式 C nL T C C 3 C的平方根 说明 C是平均的业务并发用户数 n是l
  • 在 Apache JMeter 中配置响应超时

    我试图检查特定 HTTP 请求的响应时间是否超过 30 秒 如果是 则将其标记为失败并停止线程 有时我可以看到响应时间接近 80 秒 没有浏览器等待服务器响应那么长时间 我发现了以下三种在 JMeter 中设置超时值的方法 但这让我很困惑
  • 仅在 n 个断言错误后停止 JMeter 测试执行

    Problem 我正在 JMeter 2 13 中模拟压力测试 我的想法是在达到一定的响应时间上限后停止测试 我使用 Duration Assertion 节点进行测试 但是 我不想在第一次此类失败后停止测试执行 在其他稳定的情况下 它可能
  • JMeter 3.2 中不存在 SOAP/XML-RPC Sampler

    我有点惊讶我的 JMeter 3 1 脚本在 3 2 中不起作用 JMeter 3 2 中删除 SOAP XML RPC Sampler 的原因是什么 是否存在一些性能问题等 这是 JMeter 的一部分change http jmeter
  • JMeter 中默认的响应超时是多少?

    如果我们没有在 HTTP 请求 采样器中设置任何超时 任何人都可以帮助了解 JMeter 中的默认响应时间吗 Thanks 它默认为0 无超时 设置超时的推荐方法是使用 GUI 如果由于某种原因它不适合您 您可以使用以下属性 用户属性 fi
  • Jmeter在执行过程中抛出“socketException:连接重置”错误

    我们要实现的目标是 500 个并发用户 我们尝试对 3 台机器上的 100 个用户进行测试 而且它运行得很好 没有任何错误 当我尝试使用相同数量的机器对 150 个或更多用户运行测试时 我开始收到以下响应代码 响应代码 非 Http 响应代
  • jmeter HTTP响应代码:org.apache.http.conn.HttpHostConnectException,非HTTP响应消息:连接被拒绝错误

    我正在使用 JMeter 测试负载 我正在使用 Amazon Server 当我测试 400 个并发用户的负载时 我收到错误消息 HTTP response code org apache http conn HttpHostConnect
  • 使用extentreports获取jmeter测试结果

    对于任何使用 jmeter 进行 api 功能测试的人来说 报告并不是那么好 有没有人用过类似的东西http extentreports com http extentreports com 显示他们的测试结果 关于更好地显示测试结果的其他
  • 使用Java代码进行Jmeter分布式测试

    我能够使用 Java 代码运行 Jmeter 但如果我想做与分布式测试相同的操作 那么如何在 Java 代码中添加远程引擎 这是一个sample http alvinalexander com java jwarehouse jakarta
  • 在 Jmeter 中使用 JsonPath 和 != 条件从 JSON 中提取一些值

    我有以下 JSON 我需要获取没有 type Jenkins 的实例的 id 值 data id 35002399 6fd7 40b7 b0d0 8be64e4ec09c name 94Jenkins url http 127 0 0 1
  • 使用 JMeter 对 1000 个用户进行负载测试时,Apache Tomcat 连接被拒绝错误

    我已经在 Linux 和 Apache Tomcat 7 0 42 中部署了 Java EE 应用程序 当我使用 JMeter 对 100 个用户进行负载测试 并发 100 个线程请求 时 一切正常 但是 一旦我将用户 或线程数 更改为 1
  • JMeter 记录使用 HTTPS 的 iOS 本机应用程序会导致 SSL 握手问题

    我有一个用于我们的应用程序的 IPAD 混合应用程序 它会在登录过程中尝试访问我们的 https 服务器 我想使用 JMeter 来记录这个简单的流程 我正在本地计算机上运行 JMeter 代理服务器 我更新了 IPAD 代理详细信息 以便
  • Apache JMeter 的 Cookie 管理器未将 cookie 添加到 POST 请求

    我制定了非常简单的测试计划 登录 POST 返回会话cookie 获取状态 GET 返回用户状态 创建资源 POST 为资源提供 JSON 正文 所以我的 测试计划 如下所示 Test Plan Thread Group HTTP 请求默认
  • 在jmeter中设置整个请求url

    我有一个请求 它提供上传网址作为响应正文 uploadUrl https test com 9000 sample uploadurl I m able to extract the uploadUrl using JSON extract
  • 如何在 JMeter 中使用命令行参数

    我正在使用 Jmeter 测试 API 我想从终端参数化项目的路径 然后我想在 JMeter 中使用此参数 我通过命令行发送的参数 jmeter n t your script jmx Jurl abcdef com 我在用户定义变量中使用
  • JMeter 中的周期性后台任务

    我的测试计划中的请求使用授权令牌 我知道该令牌将在 1 小时内过期 我需要以某种方式每 59 分钟重新请求一次令牌 直到测试完成 有人可以建议最好的方法吗 看起来使用 While 控制器测试将永远不会完成并停留在永恒的 while 循环中
  • Jmeter 下降的最佳方法?

    我们都知道 Jmeter 并不是最擅长在运行期间更改活动线程的数量 除非您喜欢并创建以不同时间间隔触发的单独线程组 有没有人想出一个好的解决方案来在测试结束时降低速度 例如 我从 50 个线程开始 在 30 分钟内我想要 0 个活动线程 查
  • 如何使用脚本在 Jmeter 容器中设置变量及其值,例如用户参数

    我需要在 Jmeter 中设置和获取变量以实现 API 自动化 我正在使用 groovy 脚本来实现同样的目的 我可以使用以下代码将键值存储在属性文件中 props put shubhamKey shubhamValue 我不想使用 mai

随机推荐

  • 如何停止 adb 端口转发?

    可以转发端口adb forward tcp 8080 tcp 8080 但是我需要终止 adb 服务器来停止此转发吗 我正在寻找一种方法来停止 adb 中端口的转发 在设置之后 但不再需要转发时 Try adb forward remove
  • 警告:ftp_get():删除操作成功

    我有一些从我们的开发服务器传输备份的代码 它似乎随机表现得非常奇怪 并给出以下错误 输出 Warning ftp get Delete operation successful in root cron get dev archives p
  • Android 中对 EditField 的表情符号键盘支持

    我的应用程序在 Samsung Galaxy S3 上使用 Android 4 0 我想在 Android 应用程序的 EditText 字段中集成表情符号字符支持 谁能建议我 我怎样才能实现它 例如 在whatsapp和微信应用程序中 T
  • 提供者:如何在“StreamBuilder()”中使用“notifyListener()”?它会导致错误“在构建期间调用 setState() 或 markNeedsBuild()”

    我有一个Provider model例如provider model dart import package flutter material dart class ProviderModel extends ChangeNotifier
  • 竹持续集成

    我是这个持续集成工具的新手 名为 Bamboo 有人可以为我指出正确的方向 我可以在其中获取有关如何设置此 Bamboo 的信息 如何编写用于不同环境的自动部署的脚本 谢谢提前 您将使用 ant 脚本或 Maven pom xml 进行部署
  • 是否可以在弹性布局中定位每行的第一个和最后一个元素?

    给定 Flex 布局中的缩略图列表 如果 Flex 容器具有可变宽度 是否可以仅使用 CSS 来定位每行的第一个和最后一个元素 thumbnails display flex margin 0 padding 0 list style ty
  • 账户与azure AD关联后如何从Alexa获取accesstoken

    我尝试将 Alexa AWS Lambda 函数 node js 6 10 与 Azure Active Directory 连接到我的 Azure Cloud API 读完后文档 https developer amazon com do
  • 部署后出现 Angular 的“未捕获错误:[$injector:unpr]”

    我有一个相当简单的 Angular 应用程序 它在我的开发机器上运行得很好 但在部署它后失败并显示此错误消息 在浏览器控制台中 Uncaught Error injector unpr http errors angularjs org u
  • 带 ref/Pointer 参数的 C# 反射调用方法

    我想通过反射调用类的每个方法 但无法使用指针作为引用来调用方法 通常我可以为我找到的每个指针传递 null 一切都会好起来的 问题是当函数尝试访问我传递的指针时 该指针将是对内存地址 0 的引用 这显然对我的程序来说会立即崩溃 所以我需要传
  • Spring 集成 TCP

    我想设置 Spring TCP 服务器客户端应用程序 我需要一个服务器侦听端口上的传入消息 例如 6666 并且客户端在不同的端口上发送消息 例如 7777 我已遵循文档 http docs spring io spring integra
  • 在 cocoa/iPhone 中将纪元时间转换为 NSDate

    我有纪元时间的值 比如 123456789 现在我想将其转换为NSDate在可可框架中 谁能告诉我吗 thanks 文档 http developer apple com iphone library documentation Cocoa
  • 使用 Firestore,如何使用 java 类序列化文档中的引用类型字段?

    如果我有一个包含 引用 类型字段的 Firestore 文档 那么在使用自动 POJO Java 对象序列化时如何读取和写入该字段 POJO 类型字段文档参考 https firebase google com docs reference
  • WPF 相当于 TextRenderer

    我用过TextRenderer测量字符串的长度 从而适当调整控件的大小 WPF 中是否有等效项或者我可以简单地使用TextRendered MeasureString 谢谢纪修 阅读您的链接后 我想到了以下两个内容 它们都适合我
  • Python将整列添加到csv文件中,而不读取文件内容

    我需要使用 Python 将列添加到 csv 文件 我能想到的唯一方法是读取整个文件 编辑每一行以添加 1 个元素 然后再次写入文件 然而 我真的不想这样做 因为文件的大小 超过 32000 行 每次我想添加列时似乎需要大量的读写 即使使用
  • 如何从 fgets 中检测空字符串

    我试图将 stdin 中的 fgets 输入检测为空 当我按 Enter 键而不输入任何内容时 这是我的程序 int main char input 1000 printf Enter fgets input 1000 stdin inpu
  • 如何使用 box2d 在 libgdx 中拖动对象?

    我已将对象添加到box2d世界在libgdx 我想知道是否可以用鼠标拖动对象 如果是这样 怎么办 thanks 这里有几个选项 您可以使用鼠标关节 也可以使用运动体并手动设置其位置 看看如何使用鼠标关节的一个很好的例子 http code
  • 图像作为绘制形状的“背景”

    是否可以使用图像而不是颜色来 填充 HTML5 画布上的形状 我画了一堆形状 各个角以 45 度角切掉的正方形 我希望能够用图像而不是颜色来 填充 这些形状 目前我有一行指出 context fillStyle 123456 example
  • 如何使用 Meteor.js、Twitter 和 Oauth 发布推文

    我在使用 Meteor 和 Twitter 时遇到了一些问题 我想做的就是通过点击按钮发布一条推文 为此 我必须通过 Oauth 向 Twitter 服务验证自己的身份 目前 我正在以一种非常复杂的方式进行身份验证 从客户端到服务器并返回
  • 适用于 Android 的本机 OpenCV 示例抛出 UnsatisfiedLinkError

    我尝试在模拟器上运行 opencv android 示例 带有本机代码的示例 例如示例 教程 2 高级 1 添加本机 OpenCV 失败 我有一个Win7 x86系统 我可以构建本机库 但如果运行示例 我总是会遇到以下异常 10 04 08
  • 每个线程组的概率

    如果我的测试计划中有 3 个线程组 如何为每个组设置恒定概率 请求权重 我是 JMeter 的新手 您能在屏幕截图上显示您的设置吗 只需将每组的线程数设置为测试总线程数的一个因子即可 如果有 100 个 VU 则 g1 设置为 50 g2