我創建了一些Load Tests
。我所有的負載測試都由一個單元測試組成。 我也創建了一個LoadTest Plug-in
並將其分配給我所有的負載測試。 每個單元測試使用以下代碼更新我在LoadTest插件中創建的一些自定義性能計數器(更多詳細信息here)。如何將性能計數器更新到遠程PC?
插件代碼:
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);
}
單元測試代碼:
[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
運行在PC控制器運行的位置創建自定義計數器類別。現在,我使用許多Test Agents
在Test Rig
中運行我的負載測試。當單元測試在除測試控制器正在運行的計算機上執行的計算機上執行時,計數器不會更新。我認爲這是因爲用我的代碼,我正在更新測試運行的pc中的計數器,而不是在控制器的pc中。
如何更新控制器電腦中的自定義計數器?我是否必須以不同的方式在單元測試中創建計數器的實例?
感謝您的回答。如果可能,我希望更新遠程計算機(控制器)上的計數器,以便我可以輕鬆查看計數器的總計結果。否則,我必須更改我的實現並根據所有代理上的計數器實例自行計算總計結果。 – Schaliasos
@Schaliasos是的,不幸的是我不認爲這是可能的(至少通過C#API)。但是,您可以遠程閱讀,然後彙總每個代理商的數字。 –