2

目前我注意到我的自動化測試(CodedUI)有時運行速度有點慢。我想在他們運行VS2010時運行性能分析工具。我曾嘗試使用Red Gate的ANTs Profiler,但對於我應該附加到哪個進程(或其他?)感到困惑。CodedUI上的性能工具測試

離我最近的是通過從命令行啓動Profiler並將Mstest.exe調用作爲進程參數運行一些測試。這隻會返回我VS方法的性能,而不是我自己的測試代碼。

//e.g 
Profile.exe /e:"Mstest /testcontainer:Tests\bin\debug\CodedUITests.dll /test:Login /unique" /csv:"C:\testing\results.csv" 

我從herehere構造此命令。

有誰知道一個乾淨的方式來啓動一組測試與CPU /內存分析器(本地或其他),然後讀取結果?按優先順序

可用的機器:的Windows 7/XP/Server 2008 R2中
可以運行:VS2010,或作爲構建的一部分(TFS /實驗室管理)

+0

我記得那個過程叫做QTAgent。 – nikita

+0

@nikita謝謝,我沒有嘗試掛鉤到QTAgent32過程,但它返回的結果與Mstest不同,不太接近我的代碼。 – Nashibukasan

+0

你正在運行什麼類型的應用程序? WinForms或Web?如果WinForms然後附加到您的winForms應用程序,如果網絡然後... – nikita

回答

3

閱讀後進一步,我發現我需要儀器我的二進制文件爲了使分析器知道我的方法在運行時。我用VSInstr這樣做,它會將測試dll轉換成一個儀器。然後當我用我的上面的命令行運行profiler時,profiler工作。

  • 運行:VSinstr.exe Your.Tests.dll
  • 打開螞蟻探查。
  • 選擇Mstest.exe作爲.Net可執行文件。
  • 將測試項目bin \ Debug文件夾設置爲工作目錄。
  • 在爭論的地方:
    /testcontainer:C:\...\YOURTests\bin\debug\Your.Tests.dll /test:LoginTest
+1

供參考:在某些情況下,工作目錄應該是您的解決方案的根,而不是倉,特別是在處理包含相對路徑IO查找的程序集時。 +1(以及更多,如果我能!)VSInstr信息。 –

0

如果你是非常有信心,你的測試是不會在一些討厭的方式炸燬,你還可以添加/noisolation給你傳遞的參數MSTEST。也就是說,你的命令就會說,

Profile.exe /e:"Mstest" /args:"/testcontainer:Tests\bin\debug\CodedUITests.dll /test:Login /unique /noisolation" /csv:"C:\testing\results.csv" /data:c:\testing\moodilymooh

作爲又一想,你可以添加/data到配置命令,使其輸出的應用[0-9] +結果文件,你可以從玩GUI。