Укажите отдельные данные для каждого пользователя в Tsung

Я использую Tsung для нагрузочного тестирования. Вот файл конфигурации для Tsung.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE tsung SYSTEM "/usr/share/tsung/tsung-1.0.dtd" []>
<tsung loglevel="warning">

  <clients>
    <client host="t1" cpu="2" maxusers="30000000"/>
    <client host="t2" cpu="2" maxusers="30000000"/>
  </clients>

  <servers>
    <server host="localhost" port="9200" type="tcp"/>
  </servers>

  <load>
    <arrivalphase phase="1" duration="1" unit="minute">
      <users arrivalrate="5" unit="second"/>
    </arrivalphase>
  </load>
</tsung>

Но я хочу следующее:

  1. Каждый раз только один пользователь на клиенте
  2. Конкретные данные для чтения из файла для каждого пользователя. Например, я хочу прочитать данные из файла user1.json для пользователя 1 (на клиенте 1) и из файла user2.json для пользователя 2 (на клиенте 2).

Возможно ли это в Цунге? Я просмотрел документы, но не нашел возможности сделать это. Может ли кто-нибудь помочь мне с этим?


person skjindal93    schedule 17.01.2017    source источник


Ответы (1)


Не совсем то, о чем вы просите. Но возможно нечто подобное, с одним входным файлом.

<options>
  <option name="file_server" id="inputUsers" value="/tmp/users.txt"/>
</options>

<sessions>
  <session probability="100" name="test" type="ts_http" >

    <setdynvars sourcetype="file" fileid="inputUsers" delimiter=";" order="iter">
      <var name="userId"/>
      <var name="deviceMac"/>
      <var name="tKey"/>
    </setdynvars>

    <request subst="true">
      <http url="/abc/%%_userId%%/%%_deviceMac%%?arg=%%_tKey%%" version="1.1"></http>
    </request>

    <request subst="true">
      <http url="/123/%%_userId%%" version="1.1"></http>
    </request>

  </session>
</sessions>

Где /tmp/users.txt содержит пользовательские значения, разделенные двоеточием, примерно так (userId;deviceMac;tKey):

97099;05d4e99de98a;4xrwgyyze54kefnwsd74kj4ghvn5f1

Учитывая, что значением заказа setdynvars является «iter», он будет перебирать каждую строку и использовать эти входные данные в качестве параметров запроса. В приведенном выше примере он сделал бы эти два запроса:

/abc/97099/05d4e99de98a?arg=4xrwgyyze54kefnwsd74kj4ghvn5f1
/123/97099

Таким образом, вы можете реализовать «специфический для пользователя» сценарий нагрузочного теста.

person diarpi    schedule 23.05.2017