Если вы хотите сконфигурировать VS «Load Tests» для записи результатов на сервер базы данных, используйте , следуя инструкциям .
Если вы хотите запускать «нагрузочные тесты» через powershell на отдельном компьютере ( думаю, шаг выпуска TFS 2018 ), вы используете , следуя инструкциям .
Я бы хотел выполнить обе задачи на нескольких машинах в автоматическом режиме, но документации по этому вопросу не так много, я могу запустить свои тесты следующим образом:
.\mstest /testcontainer:"C:\XXX\ABC.loadtest"
Но результаты выгружаются в файл "TRX", а не помещаются в базу данных ( есть некоторые обсуждения по этому ). Как поместить результаты во внешнюю базу данных, как при локальном запуске (в соответствии с инструкциями выше)?
Примечание: @AdrianHHH указывает, что файл "TRX" является только сводкой и что большая часть информации хранится локально (файл MDF / LDF) в папке пользователя текущего пользователя, выполняющего нагрузочные тесты.
Обновление 1
Хм Интересно, где это сохранилось:
(Любопытно, также нажмите на значок «?» В поле «Управление тестовым контроллером», ничего ...)
Это не в сохраненном XML:
<RunConfigurations>
<RunConfiguration Name="Run Settings1" Description="" ResultsStoreType="Database" TimingDetailsStorage="AllIndividualDetails" SaveTestLogsOnError="true" SaveTestLogsFrequency="0" MaxErrorDetails="200" MaxErrorsPerType="1000" MaxThresholdViolations="1000" MaxRequestUrlsReported="1000" UseTestIterations="false" RunDuration="10" WarmupTime="0" CoolDownTime="0" TestIterations="100" WebTestConnectionModel="ConnectionPerUser" WebTestConnectionPoolSize="50" SampleRate="5" ValidationLevel="High" SqlTracingConnectString="" SqlTracingConnectStringDisplayValue="" SqlTracingDirectory="" SqlTracingEnabled="false" SqlTracingFileCount="2" SqlTracingRolloverEnabled="true" SqlTracingMinimumDuration="500" RunUnitTestsInAppDomain="true" CoreCount="0" ResourcesRetentionTimeInMinutes="0" AgentDiagnosticsLevel="Warning">
<CounterSetMappings>
<CounterSetMapping ComputerName="[CONTROLLER MACHINE]">
<CounterSetReferences>
<CounterSetReference CounterSetName="LoadTest" />
<CounterSetReference CounterSetName="Controller" />
</CounterSetReferences>
</CounterSetMapping>
<CounterSetMapping ComputerName="[AGENT MACHINES]">
<CounterSetReferences>
<CounterSetReference CounterSetName="Agent" />
</CounterSetReferences>
</CounterSetMapping>
</CounterSetMappings>
<LoadGeneratorLocations>
<GeoLocation Location="Default" Percentage="100" />
</LoadGeneratorLocations>
</RunConfiguration>
</RunConfigurations>
Они не сохраняются в моем файле "testsettings" по умолчанию:
<?xml version="1.0" encoding="UTF-8"?>
<TestSettings name="Local" id="02cad612-043b-447d-993e-a9b9b0547c9d"
xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Description>These are default test settings for a local test run.</Description>
<Deployment enabled="false" />
<Execution hostProcessPlatform="MSIL">
<TestTypeSpecific />
<AgentRule name="Execution Agents">
</AgentRule>
</Execution>
<Properties>
<Property name="TestSettingsUIType" value="UnitTest" />
</Properties>
</TestSettings>
Так что мне нужно найти, где когда-либо сохраняется эта информация о конфигурации, тогда, возможно, я смогу найти способ передать ее в MSTest. Кто-нибудь еще понимает, как это работает?
Обновление 2
Мой TRX-файл содержит «строку подключения» , но я не думаю, что это относится к моей базе данных, моя база данных пуста, при запуске через powershell она завершается, но все, что я вижу, это «TRX» "файл.
Обновление 3
Это хитро, я продолжаю пробовать разные способы определить, где хранятся данные / учетные данные «Управление конфигурацией теста». Один из способов сделать это - использовать Process Monitor от Microsoft . Вы действительно можете увидеть, откуда он изначально заполняется:
Это из Application Hive , конечно, напрашивается вопрос, откуда взялся «Application Hive», вот где все становится немного мутным, есть множество различных вызовов для многих файлов. Распространенной тенденцией является то, что на папку «Temp \ Local» часто ссылаются.
Я удалил всю папку «Temp» для своей учетной записи пользователя (в процессе теряется вся моя конфигурация VS), и после повторного открытия моего решения это выглядит так, как будто это дало эффект. Когда я открываю свой файл «LoadTest», строка «Загрузить хранилище результатов теста» теперь пуста. Фактически все окно «Управление тестовым контроллером» было восстановлено по умолчанию (пусто).
Мне известно, что конфигурация для этого окна «Управление тестовым контроллером» сохраняется во временной папке. Однако мне еще предстоит определить, где она находится и / или как изменить / автоматически заполнить эту информацию сценарием powershell.