在浏览器中打开页面并加以判断,无疑是测试一个Web应用程序最直接的方式。借助一款合适的自动测试工具或框架,测试人员就可以在一定程度上从繁重的手动测试工作中解放出来。

在浏览器中翻开页面并加以判别,无疑是测验一个Web应用程序最直接的方法。凭借一款适宜的主动测验东西或结构,测验人员就能够在必定程度上从深重的手动测验工作中解放出来。Ruby平台下的Watir无疑是这方面的姣姣者,因而被很多用于Web应用程序的回归测验或检验测验。不过关于运用.NET Framework的技能团队来说,Watir不必定是***的挑选。现在社区中现已呈现了几款.NET平台下的Web测验结构,测验人员现在就能够运用自己最了解的言语来完成相同的功用,并与自己的开发环境无缝集成。

.NET平台下Web测验东西横向比较  .NET Web 测试工具 比较 第1张

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 不开源,但发布代码
其他 / 可将测验散布于多台机器履行,加速速度 测验代码与网站在同一进程中

【修改引荐】

  1. 微软MVP教你怎么看懂.NET CLR根本术语
  2. 详解.NET 2.0开发Winform程序经历
  3. 详解在ASP.NET顶用LINQ完成数据处理
转载请说明出处
知优网 » .NET平台下Web测验东西横向比较

发表评论

您需要后才能发表评论