首先先分解一下执行测试用例的步骤,编码实现每一个步骤,然后使用批处理的形式将工作流串起来:(当然啦,我们也可以使用.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文档:
MSTest.exe 命令行选项 | Microsoft Learn
4. 收集测试结果,这一步骤的详细描述放在下一篇文章中讲解。
既然已经知道替代每一个步骤所使用的命令,剩下的工作,无非就是用PowerShell,或者WMI,或者批处理将这些命令结合起来运行罢了。
正在学习测试的小伙伴可以通过点击下面的小卡片