在Microsoft的UnitTesting名称空间(Microsoft.VisualStudio.TestTools.UnitTesting)中AssemblyInitialize,AssemblyCleanup可以将某些属性应用于静态方法,并且将在所有测试之前和之后分别调用它们。
[AssemblyInitialize]
static public void AssemblyInitialize(TestContext testCtx)
{
// allocate resources
}
[AssemblyCleanup]
static public void AssemblyCleanup()
{
// free resources
}
Run Code Online (Sandbox Code Playgroud)
我的问题:是否可以安全地访问TestContext内部AssemblyCleanup()?如果不是,将资源引用存储为静态成员是一种合理的选择还是会引起问题?
附加/可选:不传递TestContext对清除方法的引用的背后原因是什么?
当我尝试使用Microsoft Test Manager 2010在TFS 2010中打开我们的任何项目时,我收到错误:项目XXXXXXX不存在所需类别"Microsoft.TestCaseCategory".
这个错误的原因是什么,我可以采取哪些步骤来解决它?
此外,stackoverflow是这个问题的正确论坛吗?我觉得这不是一个真正的编程问题,但它似乎没有一个明显的家
我很擅长用VS加载测试,但我认为我已经正常设置了所有内容,并且我遇到了一个问题,即我的负载测试执行速度很快达到了100%的CPU利用率.这似乎可能会影响我的测试结果,我认为这不是预期的行为.
我的硬件平台是一个强大的开发人员机器:几个月大的四核,12GB RAM,2个IDE驱动器和一个快速NIC.如果有必要,我可以详细说明,但通常我会说它尖叫.
我正在使用VS2010 SP1,C#/ .NET 4测试一个在Win7 x64本地运行的MVC2/3应用程序,针对MSSQL 2008.
基础测试是一个单元测试,它运行单个MVC控制器方法,该方法使用Unity和其他Ent-Lib库根据用户的权限从数据库中提取客户端集合.单元测试的典型执行时间为0.4到0.6秒.
设置负载测试以暴露性能问题并运行10分钟:
观察:
作为单个用户的前30秒,执行有点不稳定.第一次测试需要3秒,这是正常的预热.接下来的15个左右需要大约.4秒,这是完美的.然而,在10秒之后,测试开始运行5秒.这是在第二个虚拟用户开始之前.随着额外的虚拟用户的加入,测试时间逐渐增加,这是可以预期的,尽管运行时间似乎仍然很长.
更令人担忧的是,CPU利用率在用户6周围飙升(在所有8个核心之前平均约为20%).在用户6和7处,CPU达到70%并且由用户8在8个核上固定为100%,并且它保持在那里直到测试在10分钟后结束.毋庸置疑,对于正常的步进测试,我想从10个并发用户开始,然后达到100或更多,但我的CPU开始时为100%,结果肯定是不准确的.
正如我从执行任务中可以看到的那样,杯子显然是QTAGENT.EXE.它使用我所看到的每个备用CPU周期.我也在32位模式下运行此负载测试,QTAGENT32.EXE运行类似.
我不知道为什么我遇到这个问题,更不用说该怎么做了.任何提案或解决方案表示赞赏.TIA!
编辑
我发现我的问题的解决方法是通过单击"调试测试"而不是"运行测试"来启动负载测试.这对我来说没有任何意义,事实上它就像我期望的那样; 但是,我不能否认它一直在用100个用户运行我的测试,只是半打我的CPU(平均约50%的尖峰).
unit-testing load-testing visual-studio-2010 microsoft-test-manager
我的团队正在积极地进入一个新项目,我们正抓住机会让自己了解最新的Scrum方法,新技术等.部分原因是尝试使用Microsoft Test Manager和VS2010 Coded UI测试自动化我们的QA流程.
但是,我们在使用我们当前选择的WPF控件库DevExpress XPF套件时无法使用自动测试回放.我们多年来一直在使用DevExpress来实现他们的WinForms和ASP.NET控件,但这是我们第一次使用他们的WPF控件和自动UI测试,这两者似乎并不能很好地协同工作.
特别是,尝试回放与网格控件交互的记录测试永远不会正常工作,即使在简单的控件上,回放似乎也会混淆应该与哪个编辑器进行交互.在动作录音中,我们的测试线是从MTM产生的,我看到了很多这样的:
Type '5236' in 'PART_Editor' text box
Type '253' in 'PART_Editor' text box
Run Code Online (Sandbox Code Playgroud)
更糟糕的是,在网格内部:
Click 'FooterPanel' pane
Last action on list item was not recorded because the control does not have any good identification property.
Click 'FooterPanel' pane
Click 'Item: CashEntry, Column ...' custom control
Move 'Item: CashEntry, Column ...' custom control from (141, 10) to 'Item: CashEntry, Column ...' custom control (5, 11)
Type '{NumPad8}{Down}{NumPad5}{NumPad0}{Up}{Down}{Down}' in 'CashEntry' window
Run Code Online (Sandbox Code Playgroud)
现在,我在DevX的论坛上看到很多关于他们的WinForms控件不能很好地支持MSAA编码UI测试工作的喋喋不休,但我认为WPF使用了一种不同的自动UI测试机制,应该可以更好地工作.所以,我的问题是:
wpf automated-tests devexpress coded-ui-tests microsoft-test-manager
我是新手使用VSTS,我正在尝试创建一些Web测试,以形成我继承的ASP.NET WebForms应用程序的负载测试.
该网站大量使用'AJAX Pro',这是一个AJAX框架,在微软发布带有UpdatePanels等的AJAX框架之前就已经开始了.
我遇到的问题是web测试记录器似乎在测试结束时附加了AJAX请求:

因为它们被附加到测试的末尾,所以在我注销之后,请求中的请求没有.ASPXAUTH cookie令牌,并且ASP.NET以302返回到登录页面(因为我' d expect)这导致测试失败.
我可以手动将这些ajax请求移动到请求序列中的正确位置,以便测试通过 - 但是这个示例是一个非常简单的测试,并且应用程序发出了大量的AJAX请求,这在大型和更多中是不可行的复杂的测试.
那么,为什么要这样做呢?我能做些什么让AJAX请求以正确的顺序发出?
在将TFS 2010更新到TFS 2012后,我们无法运行自动化测试.我们正在使用MTM 2010/2012来运行测试.(两者都有相同的问题)
我们遇到的严重错误是:"TFS检测到以下测试控制器处于脱机状态:TestControllerServerAddress "
测试控制器服务器在线并正确配置.测试服务也在运行.
我一直在寻找解决方案但没有找到任何帮助.我知道我们可以使用第二次更新更新TFS以支持BUILD Controller 2010,但没有任何关于TEST Controller 2010的说法.
谢谢您的帮助.
标记.
编辑:
我刚刚将Test控制器升级到2012.解决了问题..
我想在测试执行结果通过或失败时向用户发送电子邮件警报,或者在测试管理器上执行测试执行结果时发送任何其他状态.我知道测试经理不能做到TFS可以,我已经尝试了各种查询组合来设置相同的警报.我想为自动化测试用例做这件事.我将创建的构建不会发生太大变化,因为我正在测试服务.只有测试用例将在同一个版本上执行,并显示结果.
我正在与一个学校项目合作,我将分析公司缺陷数据库.他们正在使用Microsoft Foundation Server(TFS).我是TFS和TFS api的新手.
我在使用TFS客户端对象模型从TFS获取正确的数据时遇到了一些问题.我可以检索所有测试计划,它们各自的测试套件以及特定测试套件使用的每个测试用例,但是当我想在哪个测试套件中看到我从测试用例获得特定测试结果时,问题出现了.由于套件中不止一个可以使用相同的测试用例,我无法看到结果来自哪个套件.
我这样做是从套件中获取测试用例:
foreach (ITestSuiteEntry testcase in suiteEntrys)
{
Console.WriteLine("\t \t Test Case: {0}", testcase.Title+", "+"Test case priority: "+ testcase.TestCase.Priority+"Test case Id: "+testcase.TestCase.Id);
//Console.Write(", Test Case: {0}", testcase.ToString());
//get each test result:
getTestResult(testcase,proj);
}
private void getTestResult(ITestSuiteEntry testcase, ITestManagementTeamProject proj)
{
var testResults = proj.TestResults.ByTestId(testcase.TestCase.Id);
foreach (ITestCaseResult result in testResults)
{
Console.WriteLine("\t \t \t"+result.DateCreated+","+result.Outcome);
}
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,如何才能看到用于执行测试的测试套件?
我在Microsoft Test Manager 2010中有一个用于测试计划的测试用例.
如何在测试计划中找到此测试用例?"组织"视图中是否至少有一列显示使用测试用例的测试计划的路径?
我正在尝试在Lab Center中创建一个新环境,我在验证步骤中收到以下错误

文字版:
使用提供的用户名和密码验证是否可以访问计算机.失败
JPTest:Microsoft Test Manager无法在这些计算机上安装测试代理.可能的原因:
- 计算机未运行或网络上不可用.
- 计算机上未启用"文件和打印机共享"例外.
我已经验证(很多次)启用了文件和打印机共享例外,并且该机器在网络上可用.提供的用户名和密码也是正确的.
奇怪的是,这个步骤在将机器添加到域之前有效(请注意,机器名称不是JPTest,它实际上是由Windows安装生成的名称)
我正在使用Visual Studio 2012,并且该计算机位于SCVMM环境中.
我最大的问题是除了这个非常模糊的错误信息之外我找不到任何其他信息.我该如何诊断这个问题?
load-testing ×2
tfs ×2
tfs2010 ×2
tfs2012 ×2
tfs2013 ×2
unit-testing ×2
asp.net ×1
c# ×1
devexpress ×1
test-suite ×1
testing ×1
tfs-sdk ×1
webtest ×1
wpf ×1