进化的测试

关注软件测试,白盒测试,自动化测试,性能测试

Entries for 五月, 2009

刷新并且观察主机IP地址的好工具–Firefox DNS Flusher

首先祝大家端午节快乐。 前一段时间写了篇文章介绍了一个在Firefox下查看主机IP的插件,那个插件虽然不错,但是还是有点麻烦,要把鼠标挪过去才能看,最近发现一个更加好用方便的插件:Firefox DNS Flusher。这个插件使用起来很简单,安装完毕以后在Firefox的状态栏的右侧,会有一个显示当前主机IP的地方,如果修改完了HOSTS文件,想要刷新一下DNS,那么可以左键或者右键单击那个IP地址栏就可以了,实现了不重启浏览器也能使得最新的HOSTS文件生效!不错吧!不过测试的时候建议还是要重启一下浏览器,因为当前的域名的IP指向是刷新了,但是其他域名的呢?例如专门存放css或者js文件的子域名,他们不一定能被刷新哦。抓个图:

自己动手创建Web测试验证规则

”Web测试”是由一系列 HTTP 请求组成,通过发出 HTTP 请求在协议层工作的测试类型。在VSTS中自带了若干个预先定义好的验证规则,例如在返回的页面上寻找某些字符,返回的文档中是否包含某些Tag,等等。前一段时间在测试一个安全过滤器,这个过滤器的基本功能就是过滤用户输入中的一些有可能构成安全隐患的内容,例如<script>标签的内容,JS内容等等。按照预先给出的测试用例执行完测试以后,OK,没有问题,不过在上线一个小时后发现一个问题,就是经过安全过滤器输出的内容会比原来输入的内容多了两个字符–“rn”,这个问题一下就修复好了,Trim一下。然后我就要给原来的测试加上对于这个问题的回归测试实现。很不巧,Web测试没有一个对返回内容长度进行验证的验证规则,不过微软提供了创建自定义验证规则的接口,我们可以创建一个验证ContentLength的规则。 1. 创建一个新的类库项目,这个项目是一个独立的可重用的类库,所创建的Web测试插件可以在不同的包含有Web测试的项目中使用。其实可以跟上一篇文章说的WebTest Plugin公用一个类库项目 2. 在该类库项目中添加对“Microsoft.VisualStudio.QualityTools.WebTestFramework”的引用 3. 在该类库项目中创建一个从ValidationRule派生出的类 4. 重写基类的Validate方法 5. 打开包含有Web Test的项目,并且在该项目中引用刚才添加的包含有自定义验证规则的类库项目 6. 打开需要调用自定义验证规则的Web测试,点击”Add Validation Rule”,选择刚才编写好的验证规则。 现在看看在自定义验证规则中添加参数,让用户输入相应的参数,从而使得验证规则更加灵活。

在VSTS中创建Web Test的插件

做过单元测试的朋友都知道,几乎每一个单元测试的框架都提供了类似于TestInitialize、TestCleanup这样的操作,可以在测试的开始和完成测试以后让我们处理一些问题,例如初始化一些数据,或者销毁一些数据等操作。在VSTS中有一种测试类型叫”Web测试”,它由一系列 HTTP 请求组成,通过发出 HTTP 请求在协议层工作。Web测试没有单独的TestInitialize、TestCleanup操作,但是VSTS所提供的Web Test插件能够帮助我们完成这样的工作。以下是MSDN对Web测试的定义: 使用 Web 测试插件,可以隔离代码并在 Web 测试中的主要声明性语句外部重用代码。自定义的 Web 测试插件为在运行 Web 测试时调用某些代码提供了途径。在每个测试迭代中,Web 测试插件都要运行一次。此外,如果重写测试插件中的 PreRequest 或 PostRequest 方法,这些请求插件将分别在每个请求之前或之后运行。 可见Web测试插件给使用者带来了很大的灵活性,下面就看看如何创建一个Web测试插件。 1. 创建一个新的类库项目,这个项目是一个独立的可重用的类库,所创建的Web测试插件可以在不同的包含有Web测试的项目中使用。 2. 在该类库项目中添加对“Microsoft.VisualStudio.QualityTools.WebTestFramework”的引用,该Dll是在.NET选项卡上 3. 在该类库项目中从WebTestPlugin派生出一个自定义的Web测试插件类 4. 重写相关的基类方法,例如 PreRequest、 PreWebTest、 PostWebTest等 5. 打开包含有Web Test的项目,并且在该项目中引用刚才添加的包含有自定义Web测试插件的类库项目 6. 打开需要调用Web测试插件的Web测试,点击”Add Web Test Plug-in”,选择刚才编写好的Web插件,完成。

实现数据驱动的CodedUI Test

昨天介绍了如何创建一个简单的CodedUI Test。我们也知道,依靠录制回放产生的自动化测试是非常不可靠的,那些在微软的大牛们肯定也早就知道了。虽然用VSTS录制一个自动化测试脚本的过程不是那么友好,也不是很方便,不过它产生的测试代码修改起来还是比较容易的。下面我们就看看如何把一个简单的CodedUI Test改造为数据驱动脚本。 对于每一段录制的操作,VSTS都可以把它抽象成一个方法,它会把这些操作以静态方法的形式存放在一个叫RecordedMethods的类里面。可以对这些方法做任意的修改,我就把给需要输入的方法增加一个输入的参数。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 public class RecordedMethods { public static void FirstClick(TestContext testContext, string first) { //第一个输入 }   public static void Operation(TestContext testContext, string operater) { //操作符 }   public static void [...]

VSTS 2010 Test Edition文章收集

STS 2010 BETA 1在近期已经开始发布了,各路高手纷纷出动,在这里我就把我看到的一些不错的关于VSTS2010测试人员版本的文章收集一下,希望对其他人有帮助,也便于我以后复习用 文章: 《Automated User Interface Testing with Coded UI Test》VSTT官方博客出品,Coded UI Test入门 《VSTS 2010 Load Test Feature: Saving Test Logs》如何在VS的负载测试中记录日志,帮助定位问题 《VSTS 2010 Feature: Load test virtual user activity visualization》如果在用VSTS进行性能测试进行的过程中,CPU突然有一个不寻常的峰值出现,在以前是比较难找到原因的,此文给我们介绍了VSTS 2010的最新功能virtual user activity visualization 是如何帮助测试工程师找到问题的根源 《VSTS 2010 Feature: Web Test Recorder Plugins》如何在VSTS 2010中利用Web Test Recorder Plugins来做自定义的关联 《VSTS 2010: Enabling Test Impact Analysis》文章介绍了如何使用Test Impact [...]

VSTS2010的一个新功能–CodedUI Test简介

VSTS2010 Beta 1 终于出来了,安装的体积不大,只有1.22GB。之前看了很多VSTS2010的新特性,尤其是测试方面的,非常期待,昨天从MSDN下下来以后,失望了一下,因为很多新功能都是基于TFS2010的,我没有装,所以很多新功能都体验不了。例如让人很激动的Lab Manager,这个需要TFS,还有支持虚拟化技术的CPU。 如果你对VSTS的测试员版本感兴趣,而又没有TFS2010,只装了VSTS2010 BETA 1,那么就只能体验一下VSTS2010的一个新功能–CodedUI Test。微软在VSTS2010以前的版本都不太重视手工测试和功能测试的支持,估计是因为Visual Studio本来是一个集成开发环境的原因吧,不过到了2010,情况完全不一样了,微软想把VS改造成为一个贯穿整个ALM(Application lifecycle management)的主要工具,所以在VSTS2010中加强了对测试计划,测试用例,相关报告等的支持,CodedUI Test就是面向功能测试工程师,给他们提供自动化测试支持的这么一个新功能。 下面我一步步演示一下怎么用CodedUI Test来对WINDOWS自带的计数器实现简单的自动化功能测试。 1. 新建一个测试项目,这个步骤与前几个版本的VS一样,就不重复累赘了。 2. 在该测试项目中新建一个CodedUI Test,如图所示 3. 当CodedUI Test被创建以后,VS会提示用户,是否立刻创建相关的自动化测试代码,如图所示: