性能测试方面:
1. 可以使用loadrunner/" target="_blank" >LoadRunner11.0,LR11.0支持Sliverlight的性能测试,压力测试,负载测试等。
UI测试方面:
1. 开发人员可以使用VS2010自带的Test来测试SliverLight。但是要安装
“en_visual_studio_2010_fp2_x86_604352.msi”并且要将“C:\Program Files\Common Files\microsoft shared\VSTT\10.0\UITestExtensionPackages\SilverlightUIAutomationHelper”下的“Microsoft.VisualStudio.TestTools.UITest.Extension.SilverlightUIAutomationHelper.dll”引入到Sliverlight工程中。具体操作为:
1. 将Sliverlight工程卸载。
2. 编辑.csproj文件。
3. 将
将
<Choose>
<When Condition=" '$(Production)'=='False' ">
<ItemGroup>
<Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension.SilverlightUIAutomationHelper">
</Reference>
</ItemGroup>
</When>
</Choose>
放入到.csproj文件中,放入的位置如下图:
4. 将工程加载,rebuild。
参考:http://msdn.microsoft.com/zh-cn/library/gg413374
这样就可以录制SliverLight Web项目了。
使用VS2010自带的测试工具来测试的弊端是:必须要在测试之前将
Microsoft.VisualStudio.TestTools.UITest.Extension.SilverlightUIAutomationHelper引用。这就需要在开发的工程中完成。
VS2010UI测试之旅
开始我们的第一个UITest文件
下面就真正地开始VS2010的UI测试之旅。
1. 建立一个Test Project。
2. 新建完测试工程后,要建立一个Test,我们要做的是UI测试,所以这里选择的是“Coded UI Test”
3. 新建完Test之后,会有一个提示框弹出,询问你是想怎么创建UI测试,这是会选择“录制操作、编辑UI映射或添加断言”
4. 这时屏幕右下角会出现UI测试生成器。
5. 本例中以PSD系统为例来对SliverLight的UI进行测试。
6. 点击“开始录制”按钮。
7. 打开要录制操作的SliverLight页面,进行相应的操作。这时可以在UI测试生成器处看到一些相应操作的名称以及操作对象的名称。做完一系列操作后,点击“停止录制”按钮,这时点击代码生成按钮。就会出现下面的对话框,将刚刚的操作生成一个方法,方法名称可以自定义。
8. 当代码生成完毕后,面板上的准星可以使用。点击准星不放,拖动到想要录制的对象上,放开鼠标。
刚刚被选中的对象并且添加到对象库的对象。注:要点击左上角的,这样才能将选中的对象添加到对象库中,生成代码时被初始化。
9. 添加断言。
同步骤8一样,但是在右侧面板中选择Exits属性,值为TRUE。
然后点击“添加断言”按钮。
这里我们要选择AreEqual,值为True。表示,我们确定UIBingosoftPSDSliverliButton1这个按钮存在,如果在运行测试的时候,该Button存在,则pass,否则fail。
10. 点击代码生成按钮,为刚才添加的断言生成判断方法,方法名称可以自定义。
11. 点击VS2010中的运行按钮。
VS2010会自动演示刚才的操作,并且显示运行结果。
VS2010生成的代码到底放在了那里?
下面我们来看一下VS2010生成的代码放在了哪里。
1. 我们来看一下工程的目录结构,不难发现,录制时自动生成了.uitest文件,并且所有的方法代码都在.Designer.cs文件中。
虽然UIMap.cs和UIMap.Designer.cs是同时生成的,但是VS自动生成的代码放在.Designer.cs文件中。而在.cs文件中,可以放置一些自己编写的代码。
2. 但是最主要的还是.uitest文件,虽然.Designer.cs文件中放置的是生成的代码,但是会随着.uitest文件中的内容变化而变化。所以在Coded UI Test中,主导代码生成的还是.uitest文件。下面我们来看一下.uitest文件的结构。
.uitest文件的结构主要包括
<InitializeActions/>
<ExecuteActions/>
<CleanupActions/>
<OnErrorActions/>
<Maps/>
<ValueMap/>
其中InitializeActions,ExecuteActions,CleanupActions,OnErrorActions都是对于操作动作的描述:
InitializeActions:指初始化需要执行的操作动作
ExecuteActions:只测试过程中的操作动作(通过录制所生成的操作都默认放在ExecuteActions中)
CleanupActions:指测试完毕需要清理资源的操作动作
OnErrorActions:只带异常处理的操作动作
他们都对UIMap.Designer.cs操作动作部分代码的生成和参数的生成有直接的影响。
严格地说,放在InitializeActions中的操作动作和放在ExecuteActions,CleanupActions,OnErrorAction的动作没有任何本质上的区别,仅仅只是从一个代码可读性上的考虑。