在浏览器中打开页面并加以判断,无疑是测试一个Web应用程序最直接的方式。借助一款合适的自动测试工具或框架,测试人员就可以在一定程度上从繁重的手动测试工作中解放出来。
在浏览器中翻开页面并加以判别,无疑是测验一个Web应用程序最直接的方法。凭借一款适宜的主动测验东西或结构,测验人员就能够在必定程度上从深重的手动测验工作中解放出来。Ruby平台下的Watir无疑是这方面的姣姣者,因而被很多用于Web应用程序的回归测验或检验测验。不过关于运用.NET Framework的技能团队来说,Watir不必定是***的挑选。现在社区中现已呈现了几款.NET平台下的Web测验结构,测验人员现在就能够运用自己最了解的言语来完成相同的功用,并与自己的开发环境无缝集成。
WatiN
WatiN是Watir的“应对之作”,运用C#言语开发,不过能够运用恣意.NET言语编写测验代码。WatiN 1.0只支撑IE浏览器,不过从2.0版别开端也能主动操作FireFox(需装置插件)浏览器了。其***版别是2月19日发布的2.0 CTP3,对面向FireFox的相关功用进行了增强并修改了一些bug。其隶属项目WatiN Test Recorder支撑对浏览器操作的捕获,并主动生成测验代码。WatiN Test Recorder现在刚发布了alpha版别,您能够从它的主页上跟进其***音讯。WatiN是一个开源项目,运用Apache License 2.0协议发布。
Selenium
严格说来,Selenium是一套完好的Web应用程序测验体系,它包含了测验的录制(Selenium IDE)、编写及运转(Selenium Remote Control)和测验的并行处理(Selenium Grid)。Selenium的中心Selenium Core根据JsUnit,完全由JavaScript编写,因而可运转于任何支撑JavaScript的浏览器上。
Selenium Core由一种指定格局的HTML文件驱动,在必定程度上增强了测验套件(Test Suite)的可读性。Selenium Remote Control答应测验人员运用常见的言语(天然包含C#等.NET言语)编写测验代码,并支撑不同操作体系下的各种干流浏览器。Selenium Grid的作用是将测验分发至多台机器,这样便可大大加速测验速度。与WatiN相同,Selenium也是一款相同运用Apache License 2.0协议发布的开源结构。
LTAF
Lightweight Test Automation Framework for ASP.NET(轻量级ASP.NET主动测验结构,下文简称为LTAF)是一款由ASP.NET QA团队开发的结构,并用于产品的回归测验。测验人员能够运用恣意.NET代码编写测验,并运用内置的API操作DOM元素。LTAF最近发布了April Update并包含了结构代码,它的Release Note记录了结构的运用方法。赵劼最近在博客中谈到了运用LTAF对ASP.NET MVC应用程序中的视图作独立的单元测验,他在文章中对LTAF有这样的点评:
尽管在某些方面(例如DOM元素的选取)不如其“竞争对手”,可是LTAF自有其独到之处:
由于直接在浏览器中运转,它天然生成便支撑现有的——以及未来或许呈现的恣意浏览器。
由于直接布置在被测验的网站中,因而测验代码和网站页面是在同一个进程中。
***点优势自不必说,而第二点更是要害。试想WaitN和Selenium,都是经过编写代码在浏览器中翻开页面。这意味着咱们的在测验代码和被测验的网页分别在不同的进程中。在这个前提下,假如咱们要将测验代码中界说的数据传递给被测验的网页(也便是视图目标),咱们就必须进行跨进程的通讯。而不管怎样完成,都逃不过“序列化”一途,这无疑增加了复杂度。而运用LTAF之后,这个问题瞬间云消雾散了,由于咱们能够直接在内存中“传递”测验数据,全部都只是个引证罢了。
不过任何事物都具有两面性,LTAF也有一些难以天然生成的,并且是永久无法弥补的缺陷。例如:
由于LTAF将待测验的页面放置在Frame中,因而该页面上的window.top等根据浏览器frame结构的特点会被改动。
由于LTAF的实质是运用JavaScript来操作DOM,这意味着任何会堵塞程序进行的操作(例如alert)都不能运用,否则将堵塞整个测验进程。
走运的是,这两点都不会成为严峻的问题。关于***种状况,咱们只需求编写一个自定的getTop方法来替换直接拜访windows.top的做法即可。而第二种状况——老赵历来不喜欢alert或confirm这种“纯浏览器功用”,由于它们会带来很差的用户体会,更何况现在的JavaScript类库/结构都能很轻松的做出这种作用,您觉得呢?
尽管老赵引荐运用LTAF,不过终究哪款测验结构最适合您的项目,还需求读者根据需求自己的需求做出判别。以下表格列出了他们的横向比较。
结构 | WatiN | Selenium | LTAF |
浏览器支撑 | IE / FireFox | IE / FireFox / Opera / Safari | 恣意 |
主动生成代码 | 有,但现在不支撑FireFox浏览器 | 58.9 | 无 |
开源协议 | Apache Licence 2.0 | Apache Licence 2.0 | 不开源,但发布代码 |
其他 | / | 可将测验散布于多台机器履行,加速速度 | 测验代码与网站在同一进程中 |
【修改引荐】
- 微软MVP教你怎么看懂.NET CLR根本术语
- 详解.NET 2.0开发Winform程序经历
- 详解在ASP.NET顶用LINQ完成数据处理
知优网 » .NET平台下Web测验东西横向比较