jmeter - 使用 JMeter 进行负载测试

标签 jmeter

我正在尝试对 WCF REST 服务进行负载测试。
该服务采用单个参数并返回一个页面。
我想传递多个这样的单个参数。

示例:

server:8080/service/?id=1   
server:8080/service/?id=2  
server:8080/service/?id=3  
server:8080/service/?id=4  
server:8080/service/?id=5  
server:8080/service/?id=6  
......    

我该怎么做?
有什么想法吗?

最佳答案

查看Loop controllerCounter ,如果您仍有疑问,请给我留言。


更新

你的回答听起来不礼貌。
无论如何,这个怎么样 - CSV data config

你可以放任意数据。

它对我有用,这是 JMeter 项目。
将CSV文件放在c:\tmp\data.csv中,内容为这三行

1
2
3

接听这些电话:

http://localhost:81/index.php?id=1
http://localhost:81/index.php?id=2
http://localhost:81/index.php?id=3


<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="2.1">
  <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="Variables definidas por el Usuario" enabled="true">
    <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="TestPlan.user_define_classpath"></stringProp>
    </TestPlan>
    <hashTree>
      <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
    <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
    <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Controlador Loop" enabled="true">
      <boolProp name="LoopController.continue_forever">false</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    </elementProp>
    <stringProp name="ThreadGroup.num_threads">1</stringProp>
    <stringProp name="ThreadGroup.ramp_time">1</stringProp>
    <longProp name="ThreadGroup.start_time">1303164070000</longProp>
    <longProp name="ThreadGroup.end_time">1303164070000</longProp>
    <boolProp name="ThreadGroup.scheduler">false</boolProp>
    <stringProp name="ThreadGroup.duration"></stringProp>
    <stringProp name="ThreadGroup.delay"></stringProp>
      </ThreadGroup>
      <hashTree>
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">3</stringProp>
    </LoopController>
    <hashTree>
      <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="CSV Data Set Config" enabled="true">
        <stringProp name="delimiter">,</stringProp>
        <stringProp name="fileEncoding"></stringProp>
        <stringProp name="filename">c:\tmp\data.csv</stringProp>
        <boolProp name="quotedData">false</boolProp>
        <boolProp name="recycle">true</boolProp>
        <stringProp name="shareMode">Current thread group</stringProp>
        <boolProp name="stopThread">false</boolProp>
        <stringProp name="variableNames">A</stringProp>
      </CSVDataSet>
      <hashTree/>
      <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="HTTP Request" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
          <collectionProp name="Arguments.arguments">
        <elementProp name="id" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">false</boolProp>
          <stringProp name="Argument.value">${A}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">id</stringProp>
        </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain">localhost</stringProp>
        <stringProp name="HTTPSampler.port">81</stringProp>
        <stringProp name="HTTPSampler.connect_timeout"></stringProp>
        <stringProp name="HTTPSampler.response_timeout"></stringProp>
        <stringProp name="HTTPSampler.protocol"></stringProp>
        <stringProp name="HTTPSampler.contentEncoding"></stringProp>
        <stringProp name="HTTPSampler.path">index.php</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
      </HTTPSampler>
      <hashTree/>
    </hashTree>
    <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="Result Tree" 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>true</message>
          <threadName>true</threadName>
          <dataType>true</dataType>
          <encoding>false</encoding>
          <assertions>true</assertions>
          <subresults>true</subresults>
          <responseData>false</responseData>
          <samplerData>false</samplerData>
          <xml>true</xml>
          <fieldNames>false</fieldNames>
          <responseHeaders>false</responseHeaders>
          <requestHeaders>false</requestHeaders>
          <responseDataOnError>false</responseDataOnError>
          <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
          <assertionsResultsToSave>0</assertionsResultsToSave>
          <bytes>true</bytes>
        </value>
      </objProp>
      <stringProp name="filename"></stringProp>
    </ResultCollector>
    <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
</jmeterTestPlan>

关于jmeter - 使用 JMeter 进行负载测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5708643/

相关文章:

jmeter - Beanshell 脚本在 JMeter 中启动一次(测试计划的开始和结束)

database - 如何在 JMeter-5 中添加 JDBC 请求采样器

javascript - 使用 BSF 后处理器中使用的变量作为另一个采样器中的参数

JMeter 结果大小限制

javascript - 使用谷歌浏览器网络驱动程序填充 Jmeter 中的下拉框

jmeter - 不要将缺少的 "Embedded Resources"报告为 jMeter 中的错误

selenium - 如何将参数从 Selenium Webdriver 传递到 JMeter?

groovy - 如何使用 Groovy 和 JMeter 提取 json 变量

variables - 用于每个 Controller 的 JMeter 正则表达式提取器

java - 如何配置 jmeter 来测试安全的 java Rest api