[转载]网站测试自动化系统—执行测试用例 – Killmyday – 博客园.
在前面几篇文章网站测试自动化系统—基于Selenium和VSTT、数据驱动测试、在测试代码中硬编码测试数据里,已经编写了一部分测试用例的代码了。我在文章自动化系统该有的功 能里,也提到了,自动化测试用例代码应该能够被系统自动执行起来。我们总不能要求测试人员每天下班之前 把最新的测试代码下载到自己本机,用VSTS打开,然后选择要批次执行的 测试用例。这种重复机械的劳动是应该要被程序消灭的,毕竟机器的成本要比人工的成本低多了。
首先先分解一下执 行测试用例的步骤,编码实现每一个步骤,然后使用批处理的形式将工作流串起来:(当然啦,我们也可以使用.NET里面的Workflow来实现,只不过那样的话我们需要格外添加一个命令—安装.NET Framework 3.0。)
1. 安装最新版本的产品,在这次测试过程中,由于开发团队没有使用什么自动化每日编译系统,所有的程序员 都是从代码服务器下载最新的代码,在 Visual Studio里面编 写调试网站。所以我们测试团队也是直接下载最新的代码,使用Visual Studio编译产品代码 。
当然啦, 在自动化测试系统里面,不可能要求有一个专人按什么“F5”之类的按钮编 译整个网站的。幸好Visual Studio只是一个集成开发环境(IDE),它编译程序的实际工作是由MSBUILD这个程序完成的,Msbuild这个程序类似于Ant和Make等软件。你只要提供代码的解决方案文件(.sln文件)或者项目文件(.csproj文件),Msbuild自己会根据项目之间的依赖关系编译代码。因此安装最新版本产品的工作就被分解成:
1.1 下载最新的源代码,所有的文件版本服务器的客户端程序都提供了这个功能。我们这个项目使用的是hg,这个命令获取最新的代码:
hg.exe update
1.2 编译代码:
Msbuild /nologo productcode.sln
1.3 发布编译好的网站,或者使用xcopy命令更新网站文件夹,或者在IIS里面将网站的根目录直接指向产品代码的文件夹。
2. 下载并且编译最新的测试代码,这个步骤跟第1步类似,所以就省略相关命令了。
3. 运行所有的自动化测试用例。VSTT提供了一个叫做用例列表(Test List)的功能,因为是SCRUM的第一个Spring,所以我们在工作时,将所有自动化好了的 测试用例都归档到一个叫做Automation的用例列表(Test List)里。
当自动化 测试工程师在VSTT批量执行测试用例的时候,通常的步骤是通过执行下面 这些步骤实现的:
a) 在VSTT里面打开 测试工程文件。
b) 点击Visual studio菜单里的“测试(Test)”—> “窗口(Windows)”—> “Test List Editor”。
c) 展开“Lists of Tests”,勾上“Automation”这个用例列表(Test List),这样就选择了所有自 动化的测试用例。如下图所示:
d) 最后点击Visual studio菜单里的“测试(Test)”—> “运行(Run)”—> “Tests in Current Context”,就可以运行所有的用例了。
前面已 经讲到过,Visual Studio只不过是一个集成开发环境,基本上 所有界面上的操作都可以使用命令行工具完成,例如编译程序可以使用msbuild.exe,调试程序可以使用mdbg.exe(当然Visual Studio的调试器是窗体程序,不是命令行程序),执行测试用例是通过Mstest.exe完成的。上面a,b,c,d四个步骤,可以使用下面这个命令实现:
mstest /runconfig:TestRunConfig.testrunconfig /testmetadata:Test.vsmdi /testlist:Automation /resultsfile: \TestResults\%SELENIUMHOST%_%ORCHARDSERVICE%_%1.trx
下表列 出了上面的命令里使用的参数的意义。
参数名 |
说明 |
Runconfig |
当你在Visual Studio里创建了一个测试工程(Test Project),VS会自动在你的项目解决方案添加一个.testrunconfig文件。这个文件是用来配置执行一遍测试过程(Test Run)所需要准备的环境的。例如:
l 测试用例是在本机执行,还是在其他机器上执行。 l 要拷贝的测试数据。 l 在所有测试用例执行前后要运行的命令—用来准备测试环境。 l 是否要进行代码覆盖率统计。 l 等等。
使用.testrunconfig的过程我会在后面讲到。 |
Testmetadata |
VS除了添加一个.testurnconfig文件以外,它还会添加一个叫做测试用例元数据(test meta data)的.vsmdi文件。这个文件嘛,就像是所有元数据所标榜的那样,用来描述测试用例的信息。例如测试用例属于哪一个用例列表(test list)啦,测试用例的负责人(Owner)是谁啦等等。
.vsmdi文件的详细信息我也会在后面的文章中讲解。 |
testlist |
用例列表,通过这个参数,可以指定要执行的测试用例列表,用例列表是一个树形结构,即用例列表可以包含其他用例列表,具体的示例请看上 图。 |
resultsfile |
测试用例执行完毕以后,测试结果文件保存的位置。 |
备注:mstest.exe的其他参数请参考MSDN文档:
http://msdn.microsoft.com/zh-cn/library/ms182489%28VS.80%29.aspx
4. 收集测试结果,这一步骤的详细描述放在下一篇文章中讲解。
既然已经知道替代 每一个步骤所使用的命令,剩下的工作,无非就是用PowerShell, 或者WMI,或者批处理将这些命令结合起来运行罢了。
未完待续……