温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么横向比较.NET平台下Web测试工具

发布时间:2021-10-28 09:24:01 来源:亿速云 阅读:138 作者:柒染 栏目:编程语言

今天就跟大家聊聊有关怎么横向比较.NET平台下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,不过究竟哪款测试框架最适合您的项目,还需要读者根据需要自己的需要做出判断。以下表格列出了他们的横向比较。

框架WatiNSeleniumLTAF
浏览器支持IE / FireFoxIE / FireFox / Opera / Safari任意
自动生成代码有,但目前不支持FireFox浏览器58.9
开源协议Apache Licence 2.0Apache Licence 2.0不开源,但发布代码
其他/可将测试分布于多台机器执行,加快速度测试代码与网站在同一进程中

看完上述内容,你们对怎么横向比较.NET平台下Web测试工具有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI