51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2124|回复: 0
打印 上一主题 下一主题

[讨论] .net web开源测试工具

[复制链接]
  • TA的每日心情
    奋斗
    2021-8-16 14:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2018-6-12 15:32:18 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
    在浏览器中打开页面并加以判断,无疑是测试一个Web应用程序最直接的方式。借助一款合适的自动测试
    工具或框架,测试人员就可以在一定程度上从繁重的手动测试工作中解放出来。Ruby平台下的Watir无疑
    是这方面的姣姣者,因此被大量用于Web应用程序的回归测试或验收测试。不过对于使用.NET Framewor
    k的技术团队来说,Watir不一定是最好的选择。目前社区中已经出现了几款.NET平台下的Web测试框架,
    测试人员现在就可以使用自己最熟悉的语言来实现同样的功能,并与自己的开发环境无缝集成。
      WatiN

      WatiN是Watir的“应对之作”,使用C#语言开发,不过能够使用任意.NET语言编写测试代码。WatiN 1.0
    只支持IE浏览器,不过从2.0版本开始也能自动操作FireFox(需安装插件)浏览器了。其最新版本是2月1
    9日发布的2.0 CTP3,对面向FireFox的相关功能进行了增强并修改了一些bug。其附属项目WatiN Test R
    ecorder支持对浏览器操作的捕获,并自动生成测试代码。WatiN Test Recorder目前刚发布了alpha版本,
    您可以从它的主页上跟进其最新消息。WatiN是一个开源项目,使用Apache License 2.0协议发布。

      Selenium

      严格说来,Selenium是一套完整的Web应用程序测试系统,它包含了测试的录制(Selenium IDE)、
    编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Seleni
    um 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自动测试框架,下文简称为L
    TAF)是一款由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类库/框架都能很轻松的
    做出这种效果,您觉得呢?

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-22 03:07 , Processed in 0.059153 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表