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。