Я создал Load Tests
. Все мои нагрузочные тесты состоят из одного модульного теста. Я также создал LoadTest Plug-in
и назначил его всем моим испытаниям нагрузок. Каждый модульный тест обновляет некоторые пользовательские счетчики производительности, которые я создаю в подключаемом модуле LoadTest (подробнее here) со следующим кодом.Как обновить счетчик производительности на удаленном ПК?
код плагином:
private void m_loadTest_LoadTestStarting(object sender, System.EventArgs e)
{
CounterCreationDataCollection counters = new CounterCreationDataCollection();
counters.Add(new CounterCreationData("CustomCoumter", "Custom Coumter description", PerformanceCounterType.AverageCount64));
PerformanceCounterCategory.Create("CustomCounterCategory", "Custom Performance Counters", PerformanceCounterCategoryType.MultiInstance, counters);
}
UnitTest код:
[TestClass]
public class UnitTest1
{
PerformanceCounter customCounter;
[ClassInitialize]
public static void ClassInitialize(TestContext TestContext)
{
// Create the instances of the counters for the current test
customCounter= new PerformanceCounter("CustomCounterCategory", "CustomCoumter", "UnitTest1", false));
}
[TestMethod]
public void TestMethod1()
{
// ... Testing
customCounter.Incerement(time);
}
}
Поскольку плагин работает в Test Controller
категория пользовательского счетчика создается в ПК, где контроллер работает , Теперь я запускаю свои нагрузочные тесты в Test Rig
, используя множество Test Agents
. Когда единичный тест выполняется на компьютере, отличном от этого, где работает тестовый контроллер, счетчик не обновляется. Я думаю, что это происходит, потому что с моим кодом я обновляю счетчик на ПК, где выполняется тест, а не на ПК контроллера.
Как я могу обновить свой пользовательский счетчик на ПК контроллера? Нужно ли мне создавать экземпляр счетчика в моих модульных тестах по-другому?
Спасибо за ваш ответ. Я надеялся, если возможно, обновить счетчики на удаленной машине (контроллере), чтобы я мог легко видеть итоговые результаты счётчиков. В противном случае я должен изменить свою реализацию и самостоятельно вычислить итоговые результаты на основе экземпляров счетчиков для всех агентов. – Schaliasos
@Schaliasos да, к сожалению, я не думаю, что это возможно (по крайней мере, C# API). Однако вы можете читать удаленно, а затем агрегировать цифры от каждого агента. –