Skip to content

config_client

Roman Klassen edited this page Dec 30, 2018 · 1 revision

Конфигурация модуля client

Параметры командной строки

Параметры командной строки отсутствуют. Конфигурация производится исключительно через конфигурационный файл.

Конфигурационный файл

В конфигурационном файле clientConfig.xml программы client указывается:

  • Секция <QuerySequence> описывает режима выбора очередного запроса.
    • Параметр Mode – режим выбора очередного запроса принимает 3 значения.
      • Sequential – запросы выбираются по кругу последовательно из списка запросов.
      • Random – выбор очередного запроса осуществляется случайным образом из списка запросов по равномерному закону.
      • FromList – очередной запрос выбирается из предоставленного списка запросов, в котором номера запросов соответствуют таковым в queries.xml.
  • Секция <List> вложенная в <QuerySequence> содержит список номеров запросов для режима FromList.
  • Секция <Scenario> описывает сценарий работы клиентов параметрами:
    • ClientCount – устанавливает количество симулируемых клиентов.
    • StartTime – устанавливает время запуска сценария в формате ISO 8601 [108].
  • Секция <ScenarioSteps> вложенная в <Scenario> описывает последовательность шагов сценария для всех клиентов.
  • <ScenarioStep> описывает шаг сценария параметрами:
    • Duration – длительность выполнения шага в формате ISO 8601 [108].
    • Action – действие шага, принимает значения:
    • Work – разрешает клиентам отправлять запросы.
    • Sleep – запрещает клиентам отправлять запросы.
    • Stop – останавливает выполнение сценария.
  • Секция <Log> описывает параметры журналирования и указывает названия файлов журналов.

Пример файла конфигурации:

<?xml version="1.0" encoding="utf-8"?>
<ClientConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Server Host="localhost" Port="3409" />
  <Log WriteToConsole="true" LogLevel="DEBUG" LogMode="MULTIPLE">
    <LogFile>clientLog.txt</LogFile>
    <StatsFile>clientStats.csv</StatsFile>
    <LogDir />
  </Log>
  <QuerySequence Mode="FromList">
    <List>
      <Query>9</Query>
      <Query>1</Query>
      <Query>6</Query>
      <Query>11</Query>
      <Query>10</Query>
      <Query>14</Query>
      <Query>12</Query>
      <Query>1</Query>
      <Query>14</Query>
      <Query>7</Query>
      <Query>10</Query>
      <Query>8</Query>
      <Query>12</Query>
      <Query>13</Query>
      <Query>10</Query>
      <Query>5</Query>
      <Query>5</Query>
      <Query>4</Query>
      <Query>7</Query>
      <Query>4</Query>
      <Query>13</Query>
      <Query>5</Query>
      <Query>12</Query>
      <Query>3</Query>
      <Query>9</Query>
      <Query>7</Query>
      <Query>11</Query>
      <Query>5</Query>
      <Query>3</Query>
      <Query>12</Query>
      <Query>10</Query>
      <Query>8</Query>
      <Query>13</Query>
      <Query>10</Query>
      <Query>13</Query>
      <Query>14</Query>
      <Query>5</Query>
      <Query>7</Query>
      <Query>1</Query>
      <Query>4</Query>
      <Query>13</Query>
      <Query>13</Query>
      <Query>3</Query>
      <Query>2</Query>
      <Query>3</Query>
      <Query>9</Query>
      <Query>12</Query>
      <Query>12</Query>
      <Query>13</Query>
      <Query>14</Query>
      <Query>10</Query>
      <Query>4</Query>
      <Query>3</Query>
      <Query>13</Query>
      <Query>11</Query>
      <Query>10</Query>
      <Query>5</Query>
      <Query>8</Query>
      <Query>8</Query>
      <Query>13</Query>
      <Query>2</Query>
      <Query>5</Query>
      <Query>1</Query>
      <Query>12</Query>
      <Query>7</Query>
      <Query>13</Query>
      <Query>9</Query>
      <Query>2</Query>
      <Query>4</Query>
      <Query>5</Query>
      <Query>11</Query>
      <Query>4</Query>
      <Query>2</Query>
      <Query>1</Query>
      <Query>12</Query>
      <Query>8</Query>
      <Query>4</Query>
      <Query>12</Query>
      <Query>7</Query>
      <Query>12</Query>
      <Query>1</Query>
      <Query>12</Query>
      <Query>1</Query>
      <Query>10</Query>
      <Query>9</Query>
      <Query>4</Query>
      <Query>12</Query>
      <Query>2</Query>
      <Query>4</Query>
      <Query>14</Query>
      <Query>12</Query>
      <Query>4</Query>
      <Query>4</Query>
      <Query>3</Query>
      <Query>3</Query>
      <Query>4</Query>
      <Query>14</Query>
      <Query>11</Query>
      <Query>10</Query>
      <Query>3</Query>
      <Query>14</Query>
      <Query>13</Query>
      <Query>6</Query>
      <Query>13</Query>
      <Query>5</Query>
      <Query>8</Query>
      <Query>8</Query>
      <Query>9</Query>
      <Query>9</Query>
      <Query>14</Query>
      <Query>1</Query>
      <Query>8</Query>
      <Query>1</Query>
      <Query>7</Query>
      <Query>4</Query>
      <Query>9</Query>
      <Query>10</Query>
      <Query>9</Query>
      <Query>3</Query>
      <Query>10</Query>
      <Query>11</Query>
      <Query>6</Query>
      <Query>7</Query>
      <Query>7</Query>
      <Query>8</Query>
      <Query>13</Query>
      <Query>6</Query>
      <Query>1</Query>
      <Query>9</Query>
      <Query>1</Query>
      <Query>1</Query>
      <Query>14</Query>
      <Query>10</Query>
      <Query>13</Query>
      <Query>11</Query>
      <Query>14</Query>
      <Query>10</Query>
      <Query>9</Query>
      <Query>14</Query>
      <Query>2</Query>
      <Query>11</Query>
      <Query>7</Query>
      <Query>1</Query>
      <Query>6</Query>
      <Query>2</Query>
      <Query>13</Query>
      <Query>12</Query>
      <Query>6</Query>
      <Query>6</Query>
      <Query>12</Query>
      <Query>12</Query>
      <Query>9</Query>
      <Query>9</Query>
      <Query>4</Query>
      <Query>11</Query>
      <Query>5</Query>
      <Query>12</Query>
      <Query>6</Query>
      <Query>1</Query>
      <Query>4</Query>
      <Query>14</Query>
      <Query>5</Query>
      <Query>1</Query>
      <Query>2</Query>
      <Query>8</Query>
      <Query>12</Query>
      <Query>10</Query>
      <Query>10</Query>
      <Query>5</Query>
      <Query>8</Query>
      <Query>2</Query>
      <Query>7</Query>
      <Query>1</Query>
      <Query>10</Query>
      <Query>9</Query>
      <Query>11</Query>
      <Query>4</Query>
      <Query>13</Query>
      <Query>1</Query>
      <Query>10</Query>
      <Query>9</Query>
      <Query>13</Query>
      <Query>10</Query>
      <Query>4</Query>
      <Query>11</Query>
      <Query>12</Query>
      <Query>1</Query>
      <Query>13</Query>
      <Query>9</Query>
      <Query>6</Query>
      <Query>2</Query>
      <Query>4</Query>
      <Query>7</Query>
      <Query>1</Query>
      <Query>5</Query>
      <Query>3</Query>
      <Query>8</Query>
      <Query>9</Query>
      <Query>5</Query>
      <Query>7</Query>
      <Query>7</Query>
      <Query>5</Query>
      <Query>2</Query>
      <Query>9</Query>
      <Query>11</Query>
      <Query>6</Query>
      <Query>13</Query>
      <Query>7</Query>
      <Query>14</Query>
      <Query>1</Query>
      <Query>11</Query>
      <Query>5</Query>
      <Query>13</Query>
      <Query>1</Query>
      <Query>6</Query>
      <Query>7</Query>
      <Query>2</Query>
      <Query>5</Query>
      <Query>3</Query>
      <Query>2</Query>
      <Query>5</Query>
      <Query>6</Query>
      <Query>11</Query>
      <Query>2</Query>
      <Query>13</Query>
      <Query>1</Query>
      <Query>14</Query>
      <Query>3</Query>
      <Query>8</Query>
      <Query>9</Query>
      <Query>12</Query>
      <Query>7</Query>
      <Query>14</Query>
      <Query>9</Query>
      <Query>6</Query>
      <Query>5</Query>
      <Query>7</Query>
      <Query>12</Query>
      <Query>10</Query>
      <Query>6</Query>
      <Query>13</Query>
      <Query>12</Query>
      <Query>3</Query>
      <Query>11</Query>
      <Query>4</Query>
      <Query>12</Query>
      <Query>13</Query>
      <Query>3</Query>
      <Query>14</Query>
      <Query>14</Query>
      <Query>6</Query>
      <Query>14</Query>
      <Query>5</Query>
      <Query>9</Query>
      <Query>13</Query>
      <Query>4</Query>
      <Query>2</Query>
      <Query>2</Query>
      <Query>11</Query>
      <Query>8</Query>
      <Query>1</Query>
      <Query>1</Query>
      <Query>4</Query>
      <Query>12</Query>
      <Query>10</Query>
      <Query>4</Query>
      <Query>14</Query>
      <Query>4</Query>
      <Query>5</Query>
      <Query>14</Query>
      <Query>10</Query>
      <Query>8</Query>
      <Query>4</Query>
      <Query>6</Query>
      <Query>11</Query>
      <Query>13</Query>
      <Query>11</Query>
      <Query>8</Query>
      <Query>12</Query>
      <Query>3</Query>
      <Query>2</Query>
      <Query>13</Query>
      <Query>2</Query>
      <Query>5</Query>
      <Query>9</Query>
      <Query>5</Query>
      <Query>3</Query>
      <Query>2</Query>
      <Query>11</Query>
      <Query>1</Query>
      <Query>7</Query>
      <Query>1</Query>
      <Query>6</Query>
      <Query>3</Query>
      <Query>1</Query>
      <Query>12</Query>
      <Query>12</Query>
      <Query>8</Query>
      <Query>4</Query>
      <Query>9</Query>
      <Query>3</Query>
      <Query>7</Query>
      <Query>13</Query>
      <Query>9</Query>
      <Query>11</Query>
      <Query>3</Query>
      <Query>12</Query>
      <Query>6</Query>
      <Query>12</Query>
      <Query>11</Query>
      <Query>2</Query>
      <Query>3</Query>
      <Query>9</Query>
      <Query>8</Query>
      <Query>3</Query>
      <Query>10</Query>
      <Query>12</Query>
      <Query>10</Query>
      <Query>7</Query>
      <Query>13</Query>
      <Query>11</Query>
      <Query>1</Query>
      <Query>3</Query>
      <Query>4</Query>
      <Query>5</Query>
      <Query>10</Query>
      <Query>9</Query>
      <Query>1</Query>
      <Query>14</Query>
      <Query>5</Query>
      <Query>8</Query>
      <Query>7</Query>
      <Query>13</Query>
      <Query>5</Query>
      <Query>14</Query>
      <Query>9</Query>
      <Query>13</Query>
      <Query>5</Query>
      <Query>9</Query>
      <Query>2</Query>
      <Query>4</Query>
      <Query>3</Query>
      <Query>2</Query>
      <Query>11</Query>
      <Query>8</Query>
      <Query>3</Query>
      <Query>1</Query>
      <Query>6</Query>
      <Query>3</Query>
      <Query>7</Query>
      <Query>3</Query>
      <Query>12</Query>
      <Query>7</Query>
      <Query>11</Query>
      <Query>2</Query>
      <Query>7</Query>
      <Query>5</Query>
      <Query>6</Query>
      <Query>4</Query>
      <Query>10</Query>
      <Query>4</Query>
      <Query>9</Query>
      <Query>9</Query>
      <Query>11</Query>
      <Query>2</Query>
      <Query>13</Query>
      <Query>7</Query>
      <Query>9</Query>
      <Query>4</Query>
      <Query>13</Query>
      <Query>9</Query>
      <Query>7</Query>
      <Query>6</Query>
      <Query>5</Query>
      <Query>12</Query>
      <Query>13</Query>
      <Query>1</Query>
      <Query>13</Query>
      <Query>12</Query>
      <Query>4</Query>
      <Query>4</Query>
      <Query>11</Query>
      <Query>14</Query>
      <Query>9</Query>
      <Query>7</Query>
      <Query>9</Query>
      <Query>11</Query>
      <Query>7</Query>
      <Query>6</Query>
      <Query>8</Query>
      <Query>4</Query>
      <Query>8</Query>
      <Query>2</Query>
      <Query>4</Query>
      <Query>12</Query>
      <Query>8</Query>
      <Query>10</Query>
      <Query>3</Query>
      <Query>13</Query>
      <Query>9</Query>
      <Query>7</Query>
      <Query>6</Query>
      <Query>12</Query>
      <Query>12</Query>
      <Query>6</Query>
      <Query>12</Query>
      <Query>1</Query>
      <Query>6</Query>
      <Query>10</Query>
      <Query>10</Query>
      <Query>11</Query>
      <Query>1</Query>
      <Query>3</Query>
      <Query>5</Query>
      <Query>12</Query>
      <Query>14</Query>
      <Query>1</Query>
      <Query>14</Query>
      <Query>14</Query>
      <Query>11</Query>
      <Query>13</Query>
      <Query>8</Query>
      <Query>3</Query>
      <Query>8</Query>
      <Query>10</Query>
      <Query>8</Query>
      <Query>2</Query>
      <Query>3</Query>
      <Query>14</Query>
      <Query>4</Query>
      <Query>10</Query>
      <Query>6</Query>
      <Query>14</Query>
      <Query>9</Query>
      <Query>1</Query>
      <Query>10</Query>
      <Query>11</Query>
      <Query>6</Query>
      <Query>5</Query>
      <Query>12</Query>
      <Query>14</Query>
      <Query>10</Query>
      <Query>12</Query>
      <Query>14</Query>
      <Query>2</Query>
      <Query>6</Query>
      <Query>7</Query>
      <Query>7</Query>
      <Query>2</Query>
      <Query>7</Query>
      <Query>4</Query>
      <Query>4</Query>
      <Query>6</Query>
      <Query>6</Query>
      <Query>6</Query>
      <Query>12</Query>
      <Query>6</Query>
      <Query>4</Query>
      <Query>3</Query>
      <Query>11</Query>
      <Query>14</Query>
      <Query>12</Query>
      <Query>13</Query>
      <Query>2</Query>
      <Query>3</Query>
      <Query>7</Query>
      <Query>2</Query>
      <Query>13</Query>
      <Query>9</Query>
      <Query>7</Query>
      <Query>2</Query>
      <Query>2</Query>
      <Query>12</Query>
      <Query>6</Query>
      <Query>4</Query>
      <Query>9</Query>
      <Query>6</Query>
      <Query>9</Query>
      <Query>13</Query>
      <Query>4</Query>
      <Query>11</Query>
      <Query>12</Query>
      <Query>3</Query>
      <Query>8</Query>
      <Query>1</Query>
      <Query>8</Query>
      <Query>3</Query>
      <Query>6</Query>
      <Query>8</Query>
      <Query>11</Query>
      <Query>6</Query>
      <Query>13</Query>
      <Query>2</Query>
      <Query>5</Query>
      <Query>2</Query>
      <Query>13</Query>
      <Query>7</Query>
      <Query>6</Query>
      <Query>6</Query>
      <Query>4</Query>
      <Query>3</Query>
      <Query>4</Query>
      <Query>9</Query>
      <Query>2</Query>
      <Query>12</Query>
      <Query>8</Query>
      <Query>1</Query>
      <Query>5</Query>
      <Query>11</Query>
      <Query>2</Query>
      <Query>2</Query>
      <Query>3</Query>
      <Query>6</Query>
      <Query>2</Query>
      <Query>1</Query>
      <Query>12</Query>
      <Query>3</Query>
      <Query>11</Query>
      <Query>10</Query>
      <Query>11</Query>
      <Query>14</Query>
      <Query>8</Query>
      <Query>4</Query>
      <Query>1</Query>
      <Query>3</Query>
      <Query>13</Query>
      <Query>6</Query>
      <Query>5</Query>
      <Query>2</Query>
      <Query>12</Query>
      <Query>10</Query>
      <Query>3</Query>
      <Query>14</Query>
      <Query>3</Query>
      <Query>2</Query>
      <Query>5</Query>
      <Query>11</Query>
      <Query>9</Query>
      <Query>8</Query>
      <Query>7</Query>
      <Query>3</Query>
      <Query>12</Query>
      <Query>6</Query>
      <Query>9</Query>
      <Query>9</Query>
      <Query>14</Query>
      <Query>2</Query>
      <Query>3</Query>
      <Query>9</Query>
      <Query>9</Query>
      <Query>2</Query>
      <Query>8</Query>
      <Query>13</Query>
      <Query>5</Query>
      <Query>11</Query>
      <Query>11</Query>
      <Query>2</Query>
      <Query>2</Query>
      <Query>9</Query>
      <Query>10</Query>
      <Query>13</Query>
      <Query>6</Query>
      <Query>11</Query>
      <Query>7</Query>
      <Query>11</Query>
      <Query>8</Query>
      <Query>7</Query>
      <Query>3</Query>
      <Query>7</Query>
      <Query>4</Query>
      <Query>9</Query>
      <Query>6</Query>
      <Query>9</Query>
      <Query>3</Query>
      <Query>14</Query>
      <Query>2</Query>
      <Query>1</Query>
      <Query>3</Query>
      <Query>13</Query>
      <Query>3</Query>
      <Query>11</Query>
      <Query>6</Query>
      <Query>3</Query>
      <Query>8</Query>
      <Query>8</Query>
      <Query>6</Query>
      <Query>7</Query>
      <Query>8</Query>
      <Query>8</Query>
      <Query>1</Query>
      <Query>3</Query>
      <Query>10</Query>
      <Query>1</Query>
      <Query>5</Query>
      <Query>4</Query>
      <Query>14</Query>
      <Query>4</Query>
      <Query>3</Query>
      <Query>12</Query>
      <Query>12</Query>
      <Query>10</Query>
      <Query>14</Query>
      <Query>4</Query>
      <Query>10</Query>
      <Query>14</Query>
      <Query>5</Query>
      <Query>5</Query>
      <Query>10</Query>
      <Query>7</Query>
      <Query>14</Query>
      <Query>10</Query>
      <Query>14</Query>
      <Query>11</Query>
      <Query>5</Query>
      <Query>11</Query>
      <Query>3</Query>
      <Query>8</Query>
      <Query>9</Query>
      <Query>8</Query>
      <Query>1</Query>
      <Query>14</Query>
      <Query>2</Query>
      <Query>14</Query>
      <Query>1</Query>
      <Query>8</Query>
      <Query>13</Query>
      <Query>2</Query>
      <Query>2</Query>
      <Query>2</Query>
      <Query>2</Query>
      <Query>13</Query>
      <Query>7</Query>
      <Query>11</Query>
      <Query>13</Query>
      <Query>2</Query>
      <Query>6</Query>
      <Query>3</Query>
      <Query>14</Query>
      <Query>9</Query>
      <Query>10</Query>
      <Query>12</Query>
      <Query>5</Query>
      <Query>8</Query>
      <Query>1</Query>
      <Query>12</Query>
      <Query>14</Query>
      <Query>2</Query>
      <Query>2</Query>
      <Query>5</Query>
      <Query>2</Query>
      <Query>10</Query>
      <Query>2</Query>
      <Query>1</Query>
      <Query>11</Query>
      <Query>4</Query>
      <Query>1</Query>
      <Query>7</Query>
      <Query>9</Query>
      <Query>13</Query>
      <Query>10</Query>
      <Query>3</Query>
      <Query>11</Query>
      <Query>6</Query>
      <Query>13</Query>
      <Query>11</Query>
      <Query>7</Query>
      <Query>13</Query>
      <Query>2</Query>
      <Query>13</Query>
      <Query>12</Query>
      <Query>3</Query>
      <Query>11</Query>
      <Query>14</Query>
      <Query>3</Query>
      <Query>2</Query>
      <Query>4</Query>
      <Query>6</Query>
      <Query>3</Query>
      <Query>12</Query>
      <Query>3</Query>
      <Query>1</Query>
      <Query>13</Query>
      <Query>2</Query>
      <Query>11</Query>
      <Query>6</Query>
      <Query>4</Query>
      <Query>6</Query>
      <Query>7</Query>
      <Query>4</Query>
      <Query>10</Query>
      <Query>5</Query>
      <Query>4</Query>
      <Query>7</Query>
      <Query>1</Query>
      <Query>12</Query>
      <Query>14</Query>
      <Query>13</Query>
      <Query>7</Query>
      <Query>1</Query>
      <Query>9</Query>
      <Query>7</Query>
      <Query>11</Query>
      <Query>11</Query>
      <Query>1</Query>
      <Query>3</Query>
      <Query>9</Query>
      <Query>9</Query>
      <Query>3</Query>
      <Query>8</Query>
      <Query>13</Query>
      <Query>3</Query>
      <Query>5</Query>
      <Query>5</Query>
      <Query>1</Query>
      <Query>7</Query>
      <Query>12</Query>
      <Query>12</Query>
      <Query>8</Query>
      <Query>3</Query>
      <Query>8</Query>
      <Query>11</Query>
      <Query>13</Query>
      <Query>3</Query>
      <Query>4</Query>
      <Query>14</Query>
      <Query>7</Query>
      <Query>8</Query>
      <Query>9</Query>
      <Query>7</Query>
      <Query>5</Query>
      <Query>10</Query>
      <Query>11</Query>
      <Query>11</Query>
      <Query>8</Query>
      <Query>12</Query>
      <Query>7</Query>
      <Query>4</Query>
      <Query>11</Query>
      <Query>2</Query>
      <Query>3</Query>
      <Query>11</Query>
      <Query>3</Query>
      <Query>8</Query>
      <Query>12</Query>
      <Query>7</Query>
      <Query>6</Query>
      <Query>5</Query>
      <Query>14</Query>
      <Query>1</Query>
      <Query>8</Query>
      <Query>14</Query>
      <Query>2</Query>
      <Query>3</Query>
      <Query>11</Query>
      <Query>4</Query>
      <Query>13</Query>
      <Query>3</Query>
      <Query>4</Query>
      <Query>11</Query>
      <Query>13</Query>
      <Query>10</Query>
      <Query>1</Query>
      <Query>6</Query>
      <Query>11</Query>
      <Query>6</Query>
      <Query>11</Query>
      <Query>6</Query>
      <Query>3</Query>
      <Query>3</Query>
      <Query>3</Query>
      <Query>6</Query>
      <Query>8</Query>
      <Query>1</Query>
      <Query>5</Query>
      <Query>3</Query>
      <Query>11</Query>
      <Query>2</Query>
      <Query>4</Query>
      <Query>3</Query>
      <Query>10</Query>
      <Query>4</Query>
      <Query>12</Query>
      <Query>3</Query>
      <Query>10</Query>
      <Query>2</Query>
      <Query>12</Query>
      <Query>13</Query>
      <Query>3</Query>
      <Query>10</Query>
      <Query>7</Query>
      <Query>7</Query>
      <Query>3</Query>
      <Query>9</Query>
      <Query>11</Query>
      <Query>12</Query>
      <Query>8</Query>
      <Query>9</Query>
      <Query>4</Query>
      <Query>13</Query>
      <Query>7</Query>
      <Query>3</Query>
      <Query>12</Query>
      <Query>5</Query>
      <Query>14</Query>
      <Query>4</Query>
      <Query>3</Query>
      <Query>13</Query>
      <Query>9</Query>
      <Query>2</Query>
      <Query>7</Query>
      <Query>10</Query>
      <Query>11</Query>
      <Query>4</Query>
      <Query>9</Query>
      <Query>10</Query>
      <Query>9</Query>
      <Query>14</Query>
      <Query>11</Query>
      <Query>7</Query>
      <Query>10</Query>
      <Query>8</Query>
      <Query>10</Query>
      <Query>10</Query>
      <Query>10</Query>
      <Query>3</Query>
      <Query>5</Query>
      <Query>4</Query>
      <Query>12</Query>
      <Query>13</Query>
      <Query>9</Query>
      <Query>6</Query>
      <Query>5</Query>
      <Query>4</Query>
      <Query>9</Query>
      <Query>3</Query>
      <Query>9</Query>
      <Query>6</Query>
      <Query>7</Query>
      <Query>3</Query>
      <Query>1</Query>
      <Query>7</Query>
      <Query>4</Query>
      <Query>13</Query>
      <Query>5</Query>
      <Query>13</Query>
      <Query>8</Query>
      <Query>6</Query>
      <Query>10</Query>
      <Query>1</Query>
      <Query>13</Query>
      <Query>8</Query>
      <Query>7</Query>
      <Query>9</Query>
      <Query>6</Query>
      <Query>7</Query>
      <Query>9</Query>
      <Query>9</Query>
      <Query>8</Query>
      <Query>13</Query>
      <Query>1</Query>
      <Query>9</Query>
      <Query>6</Query>
      <Query>9</Query>
      <Query>10</Query>
      <Query>12</Query>
      <Query>9</Query>
      <Query>4</Query>
      <Query>5</Query>
      <Query>12</Query>
      <Query>6</Query>
      <Query>5</Query>
      <Query>9</Query>
      <Query>4</Query>
      <Query>4</Query>
      <Query>6</Query>
      <Query>2</Query>
      <Query>9</Query>
      <Query>3</Query>
      <Query>11</Query>
      <Query>13</Query>
      <Query>9</Query>
      <Query>9</Query>
      <Query>10</Query>
      <Query>14</Query>
      <Query>11</Query>
      <Query>11</Query>
      <Query>8</Query>
      <Query>12</Query>
      <Query>6</Query>
      <Query>10</Query>
      <Query>9</Query>
      <Query>8</Query>
      <Query>5</Query>
      <Query>11</Query>
      <Query>10</Query>
      <Query>6</Query>
      <Query>3</Query>
      <Query>7</Query>
      <Query>3</Query>
      <Query>8</Query>
      <Query>12</Query>
      <Query>6</Query>
      <Query>10</Query>
      <Query>9</Query>
      <Query>4</Query>
      <Query>13</Query>
      <Query>5</Query>
      <Query>2</Query>
      <Query>12</Query>
      <Query>13</Query>
      <Query>9</Query>
      <Query>5</Query>
      <Query>8</Query>
      <Query>7</Query>
      <Query>3</Query>
      <Query>1</Query>
      <Query>14</Query>
      <Query>5</Query>
      <Query>9</Query>
      <Query>12</Query>
      <Query>3</Query>
      <Query>7</Query>
      <Query>8</Query>
      <Query>11</Query>
      <Query>3</Query>
      <Query>7</Query>
      <Query>1</Query>
      <Query>5</Query>
      <Query>5</Query>
      <Query>4</Query>
      <Query>3</Query>
      <Query>12</Query>
      <Query>14</Query>
      <Query>5</Query>
      <Query>3</Query>
      <Query>6</Query>
      <Query>5</Query>
      <Query>14</Query>
      <Query>9</Query>
      <Query>4</Query>
      <Query>11</Query>
      <Query>13</Query>
      <Query>9</Query>
      <Query>14</Query>
      <Query>2</Query>
      <Query>1</Query>
      <Query>1</Query>
      <Query>6</Query>
      <Query>1</Query>
      <Query>2</Query>
      <Query>6</Query>
      <Query>7</Query>
      <Query>11</Query>
      <Query>6</Query>
      <Query>2</Query>
      <Query>10</Query>
      <Query>10</Query>
      <Query>11</Query>
      <Query>2</Query>
      <Query>7</Query>
      <Query>12</Query>
      <Query>4</Query>
      <Query>13</Query>
      <Query>12</Query>
      <Query>4</Query>
      <Query>11</Query>
      <Query>7</Query>
      <Query>3</Query>
      <Query>1</Query>
      <Query>9</Query>
      <Query>3</Query>
      <Query>11</Query>
      <Query>3</Query>
      <Query>6</Query>
      <Query>14</Query>
      <Query>11</Query>
      <Query>10</Query>
      <Query>14</Query>
      <Query>12</Query>
      <Query>9</Query>
      <Query>3</Query>
      <Query>5</Query>
      <Query>11</Query>
      <Query>12</Query>
      <Query>13</Query>
      <Query>5</Query>
      <Query>6</Query>
      <Query>5</Query>
      <Query>9</Query>
      <Query>7</Query>
      <Query>2</Query>
      <Query>14</Query>
      <Query>12</Query>
      <Query>10</Query>
      <Query>11</Query>
      <Query>1</Query>
      <Query>7</Query>
      <Query>13</Query>
      <Query>10</Query>
      <Query>4</Query>
    </List>
  </QuerySequence>
  <Scenario ClientCount="50" StartTime="2018-12-30T17:16:16.4700104+03:00">
    <ScenarioSteps>
      <ScenarioStep Duration="PT1S" Action="Work" />
    </ScenarioSteps>
  </Scenario>
</ClientConfig>

Конфигурация перечня запросов

Файл queries.xml содержит список запросов, которые будут использованы в симуляции работы клиентов.

В нем:

  • Секция <Queries> устанавливает список запросов
  • Секция <QueryConfig> вложенная в описывает один запрос:
    • Параметр Number – порядковый номер запроса.
    • Значение секции <QueryConfig> – собственно запрос.

Пример файла queries.xml:

<?xml version="1.0" encoding="utf-8"?>
<QueriesList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Queries>
    <QueryConfig Number="1">SELECT
	L_RETURNFLAG,
	L_LINESTATUS,
	SUM(L_QUANTITY) AS SUM_QTY,
	SUM(L_EXTENDEDPRICE) AS SUM_BASE_PRICE,
	SUM(L_EXTENDEDPRICE * (1 - L_DISCOUNT)) AS SUM_DISC_PRICE,
	SUM(L_EXTENDEDPRICE * (1 - L_DISCOUNT) * (1 + L_TAX)) AS SUM_CHARGE,
	AVG(L_QUANTITY) AS AVG_QTY,
	AVG(L_EXTENDEDPRICE) AS AVG_PRICE,
	AVG(L_DISCOUNT) AS AVG_DISC,
	COUNT(*) AS COUNT_ORDER
FROM
	LINEITEM
WHERE
	L_SHIPDATE &lt;= DATE '1998-12-01' - INTERVAL '90' DAY
GROUP BY
	L_RETURNFLAG,
	L_LINESTATUS
ORDER BY
	L_RETURNFLAG,
	L_LINESTATUS;</QueryConfig>
    <QueryConfig Number="2">SELECT
	S_ACCTBAL,
	S_NAME,
	N_NAME,
	P_PARTKEY,
	P_MFGR,
	S_ADDRESS,
	S_PHONE,
	S_COMMENT
FROM
	PART,
	SUPPLIER,
	PARTSUPP,
	NATION,
	REGION
WHERE
	P_PARTKEY = PS_PARTKEY
	AND S_SUPPKEY = PS_SUPPKEY
	AND P_SIZE = 48
	AND P_TYPE LIKE '%NICKEL'
	AND S_NATIONKEY = N_NATIONKEY
	AND N_REGIONKEY = R_REGIONKEY
	AND R_NAME = 'AMERICA'
	AND PS_SUPPLYCOST = (
		SELECT
			MIN(PS_SUPPLYCOST)
		FROM
			PARTSUPP,
			SUPPLIER,
			NATION,
			REGION
		WHERE
			P_PARTKEY = PS_PARTKEY
			AND S_SUPPKEY = PS_SUPPKEY
			AND S_NATIONKEY = N_NATIONKEY
			AND N_REGIONKEY = R_REGIONKEY
			AND R_NAME = 'AMERICA'
	)
ORDER BY
	S_ACCTBAL DESC,
	N_NAME,
	S_NAME,
	P_PARTKEY;</QueryConfig>
    <QueryConfig Number="3">SELECT
	L_ORDERKEY,
	SUM(L_EXTENDEDPRICE * (1 - L_DISCOUNT)) AS REVENUE,
	O_ORDERDATE,
	O_SHIPPRIORITY
FROM
	CUSTOMER,
	ORDERS,
	LINEITEM
WHERE
	C_MKTSEGMENT = 'HOUSEHOLD'
	AND C_CUSTKEY = O_CUSTKEY
	AND L_ORDERKEY = O_ORDERKEY
	AND O_ORDERDATE &lt; DATE '1995-03-31'
	AND L_SHIPDATE &gt; DATE '1995-03-31'
GROUP BY
	L_ORDERKEY,
	O_ORDERDATE,
	O_SHIPPRIORITY
ORDER BY
	REVENUE DESC,
	O_ORDERDATE;</QueryConfig>
    <QueryConfig Number="4">SELECT
    O_ORDERPRIORITY,
    COUNT(*) AS ORDER_COUNT
FROM
    ORDERS
WHERE
    O_ORDERDATE &gt;= DATE '1996-02-01'
    AND O_ORDERDATE &lt; DATE '1996-02-01' + INTERVAL '3' MONTH
    AND EXISTS (
        SELECT
            *
        FROM
            LINEITEM
        WHERE
            L_ORDERKEY = O_ORDERKEY
            AND L_COMMITDATE &lt; L_RECEIPTDATE
    )
GROUP BY
    O_ORDERPRIORITY
ORDER BY
    O_ORDERPRIORITY;</QueryConfig>
    <QueryConfig Number="5">SELECT
	N_NAME,
	SUM(L_EXTENDEDPRICE * (1 - L_DISCOUNT)) AS REVENUE
FROM
	CUSTOMER,
	ORDERS,
	LINEITEM,
	SUPPLIER,
	NATION,
	REGION
WHERE
	C_CUSTKEY = O_CUSTKEY
	AND L_ORDERKEY = O_ORDERKEY
	AND L_SUPPKEY = S_SUPPKEY
	AND C_NATIONKEY = S_NATIONKEY
	AND S_NATIONKEY = N_NATIONKEY
	AND N_REGIONKEY = R_REGIONKEY
	AND R_NAME = 'MIDDLE EAST'
	AND O_ORDERDATE &gt;= DATE '1995-01-01'
	AND O_ORDERDATE &lt; DATE '1995-01-01' + INTERVAL '1' YEAR
GROUP BY
	N_NAME
ORDER BY
	REVENUE DESC;</QueryConfig>
    <QueryConfig Number="6">SELECT
	SUM(L_EXTENDEDPRICE * L_DISCOUNT) AS REVENUE
FROM
	LINEITEM
WHERE
	L_SHIPDATE &gt;= DATE '1997-01-01'
	AND L_SHIPDATE &lt; DATE '1997-01-01' + INTERVAL '1' YEAR
	AND L_DISCOUNT BETWEEN 0.07 - 0.01 AND 0.07 + 0.01
	AND L_QUANTITY &lt; 24;</QueryConfig>
    <QueryConfig Number="7">SELECT
	SUPP_NATION,
	CUST_NATION,
	L_YEAR,
	SUM(VOLUME) AS REVENUE
FROM
	(
		SELECT
			N1.N_NAME AS SUPP_NATION,
			N2.N_NAME AS CUST_NATION,
			EXTRACT(YEAR FROM L_SHIPDATE) AS L_YEAR,
			L_EXTENDEDPRICE * (1 - L_DISCOUNT) AS VOLUME
		FROM
			SUPPLIER,
			LINEITEM,
			ORDERS,
			CUSTOMER,
			NATION N1,
			NATION N2
		WHERE
			S_SUPPKEY = L_SUPPKEY
			AND O_ORDERKEY = L_ORDERKEY
			AND C_CUSTKEY = O_CUSTKEY
			AND S_NATIONKEY = N1.N_NATIONKEY
			AND C_NATIONKEY = N2.N_NATIONKEY
			AND (
				(N1.N_NAME = 'IRAQ' AND N2.N_NAME = 'ALGERIA')
				OR (N1.N_NAME = 'ALGERIA' AND N2.N_NAME = 'IRAQ')
			)
			AND L_SHIPDATE BETWEEN DATE '1995-01-01' AND DATE '1996-12-31'
	) AS SHIPPING
GROUP BY
	SUPP_NATION,
	CUST_NATION,
	L_YEAR
ORDER BY
	SUPP_NATION,
	CUST_NATION,
	L_YEAR;</QueryConfig>
    <QueryConfig Number="8">SELECT
	O_YEAR,
	SUM(CASE
		WHEN NATION = 'IRAN' THEN VOLUME
		ELSE 0
	END) / SUM(VOLUME) AS MKT_SHARE
FROM
	(
		SELECT
			EXTRACT(YEAR FROM O_ORDERDATE) AS O_YEAR,
			L_EXTENDEDPRICE * (1 - L_DISCOUNT) AS VOLUME,
			N2.N_NAME AS NATION
		FROM
			PART,
			SUPPLIER,
			LINEITEM,
			ORDERS,
			CUSTOMER,
			NATION N1,
			NATION N2,
			REGION
		WHERE
			P_PARTKEY = L_PARTKEY
			AND S_SUPPKEY = L_SUPPKEY
			AND L_ORDERKEY = O_ORDERKEY
			AND O_CUSTKEY = C_CUSTKEY
			AND C_NATIONKEY = N1.N_NATIONKEY
			AND N1.N_REGIONKEY = R_REGIONKEY
			AND R_NAME = 'MIDDLE EAST'
			AND S_NATIONKEY = N2.N_NATIONKEY
			AND O_ORDERDATE BETWEEN DATE '1995-01-01' AND DATE '1996-12-31'
			AND P_TYPE = 'STANDARD BRUSHED BRASS'
	) AS ALL_NATIONS
GROUP BY
	O_YEAR
ORDER BY
	O_YEAR;
</QueryConfig>
    <QueryConfig Number="9">SELECT
	NATION,
	O_YEAR,
	SUM(AMOUNT) AS SUM_PROFIT
FROM
	(
		SELECT
			N_NAME AS NATION,
			EXTRACT(YEAR FROM O_ORDERDATE) AS O_YEAR,
			L_EXTENDEDPRICE * (1 - L_DISCOUNT) - PS_SUPPLYCOST * L_QUANTITY AS AMOUNT
		FROM
			PART,
			SUPPLIER,
			LINEITEM,
			PARTSUPP,
			ORDERS,
			NATION
		WHERE
			S_SUPPKEY = L_SUPPKEY
			AND PS_SUPPKEY = L_SUPPKEY
			AND PS_PARTKEY = L_PARTKEY
			AND P_PARTKEY = L_PARTKEY
			AND O_ORDERKEY = L_ORDERKEY
			AND S_NATIONKEY = N_NATIONKEY
			AND P_NAME LIKE '%SNOW%'
	) AS PROFIT
GROUP BY
	NATION,
	O_YEAR
ORDER BY
	NATION,
	O_YEAR DESC;
</QueryConfig>
    <QueryConfig Number="10">SELECT
	C_CUSTKEY,
	C_NAME,
	SUM(L_EXTENDEDPRICE * (1 - L_DISCOUNT)) AS REVENUE,
	C_ACCTBAL,
	N_NAME,
	C_ADDRESS,
	C_PHONE,
	C_COMMENT
FROM
	CUSTOMER,
	ORDERS,
	LINEITEM,
	NATION
WHERE
	C_CUSTKEY = O_CUSTKEY
	AND L_ORDERKEY = O_ORDERKEY
	AND O_ORDERDATE &gt;= DATE '1994-04-01'
	AND O_ORDERDATE &lt; DATE '1994-04-01' + INTERVAL '3' MONTH
	AND L_RETURNFLAG = 'R'
	AND C_NATIONKEY = N_NATIONKEY
GROUP BY
	C_CUSTKEY,
	C_NAME,
	C_ACCTBAL,
	C_PHONE,
	N_NAME,
	C_ADDRESS,
	C_COMMENT
ORDER BY
	REVENUE DESC;</QueryConfig>
    <QueryConfig Number="11">SELECT
	PS_PARTKEY,
	SUM(PS_SUPPLYCOST * PS_AVAILQTY) AS VALUE
FROM
	PARTSUPP,
	SUPPLIER,
	NATION
WHERE
	PS_SUPPKEY = S_SUPPKEY
	AND S_NATIONKEY = N_NATIONKEY
	AND N_NAME = 'ALGERIA'
GROUP BY
	PS_PARTKEY HAVING
		SUM(PS_SUPPLYCOST * PS_AVAILQTY) &gt; (
			SELECT
				SUM(PS_SUPPLYCOST * PS_AVAILQTY) * 0.0001000000
			FROM
				PARTSUPP,
				SUPPLIER,
				NATION
			WHERE
				PS_SUPPKEY = S_SUPPKEY
				AND S_NATIONKEY = N_NATIONKEY
				AND N_NAME = 'ALGERIA'
		)
ORDER BY
	VALUE DESC;
</QueryConfig>
    <QueryConfig Number="12">SELECT
	L_SHIPMODE,
	SUM(CASE
		WHEN O_ORDERPRIORITY = '1-URGENT'
			OR O_ORDERPRIORITY = '2-HIGH'
			THEN 1
		ELSE 0
	END) AS HIGH_LINE_COUNT,
	SUM(CASE
		WHEN O_ORDERPRIORITY &lt;&gt; '1-URGENT'
			AND O_ORDERPRIORITY &lt;&gt; '2-HIGH'
			THEN 1
		ELSE 0
	END) AS LOW_LINE_COUNT
FROM
	ORDERS,
	LINEITEM
WHERE
	O_ORDERKEY = L_ORDERKEY
	AND L_SHIPMODE IN ('AIR', 'SHIP')
	AND L_COMMITDATE &lt; L_RECEIPTDATE
	AND L_SHIPDATE &lt; L_COMMITDATE
	AND L_RECEIPTDATE &gt;= DATE '1994-01-01'
	AND L_RECEIPTDATE &lt; DATE '1994-01-01' + INTERVAL '1' YEAR
GROUP BY
	L_SHIPMODE
ORDER BY
	L_SHIPMODE;
</QueryConfig>
    <QueryConfig Number="13">select
	c_count,
	count(*) as custdist
from
	(
		select
			c_custkey,
			count(o_orderkey) as c_count
		from
			customer left outer join orders on
				c_custkey = o_custkey
				and o_comment not like '%special%requests%'
		group by
			c_custkey
	) as c_orders
group by
	c_count
order by
	custdist desc,
	c_count desc;</QueryConfig>
    <QueryConfig Number="14">SELECT
	100.00 * SUM(CASE
		WHEN P_TYPE LIKE 'PROMO%'
			THEN L_EXTENDEDPRICE * (1 - L_DISCOUNT)
		ELSE 0
	END) / SUM(L_EXTENDEDPRICE * (1 - L_DISCOUNT)) AS PROMO_REVENUE
FROM
	LINEITEM,
	PART
WHERE
	L_PARTKEY = P_PARTKEY
	AND L_SHIPDATE &gt;= DATE '1995-01-01'
	AND L_SHIPDATE &lt; DATE '1995-01-01' + INTERVAL '1' MONTH;
</QueryConfig>
  </Queries>
</QueriesList>