代码之家  ›  专栏  ›  技术社区  ›  Tuomas Hietanen

网页的自动测试(由DSL从用例生成)

  •  3
  • Tuomas Hietanen  · 技术社区  · 15 年前

    我的目标是:

    • 我们的客户可以生成新的Web测试。
    • 我们的持续集成服务器进行测试环境部署;它应该针对它执行测试
    • 测试也可以在其他环境中运行。

    (最终验收测试应由客户进行,以测试字体等,但这对于我们的测试环境来说是一个很好的预验收检查。客户可以专注于其他事情,而不是现在。)

    通常某些属性(如文本字段ID)已更改或发生了某些变化,测试将在几周后中断。似乎记录的测试经常被破坏,所以与其尝试维护和修改旧的测试,不如简单地记录一个新的测试。

    现在,我发现了一个全新的方法。也许录音方式不对。 如果我们的客户可以用一种人类可读的自己的语言编写用例,机器可以理解并编译成Web记录(使用特定于域的语言,DSL)。 这不是科幻小说,它已经被制作出来了,所以继续读下去。-)

    我尝试使用这些自动Web测试框架:

    • Visual Studio Web测试(客户无法执行)
    • Selenium(仅适用于Firefox,我们的客户有IE)
    • watin(.watir的网络版,记录器似乎有点问题)
    • HP Quick Test Pro(不容易进行新测试)

    这些都没有提供我真正需要的…但硒是最接近的。

    我们的客户讲芬兰语,所以在软件项目的开始阶段,在规范阶段,用户编写一个用例,比如:

    • 阿瓦“奥玛洛马克”
    • sy_¶t_·“Tuomas”Kohtaan“Nimi”
    • Paina“修拉瓦”

    翻译:

    • 打开“我的窗体”
    • 在“名称”字段中插入“Tuomas”
    • 按“下一步”

    现在。。。这是一个人类可读的用例,但也可以编译成自动的Web验收测试。打开、插入、插入字段和按是关键字,其他是值。

    什么样的DSL工具适合这个?

    微软正在他们的奥斯陆项目mgramar中开发一种新的DSL制作工具。这意味着您可以定制一种语言,使非技术人员更容易使用机器。(与COBOL和Visual Basic相同的基本思想(也是失败的)。

    我发现有人已经用mgramar制作了这种DSL,但它是为watin而不是硒: http://www.codinginstinct.com/2008/11/creating-watin-dsl-using-mgrammar.html

    因此,持续集成服务器过程将是:

    1. 从源代码管理中获取新版本(与往常一样)。
    2. 构建、运行单元测试和分析代码(和往常一样)。
    3. 在版本控制中制作安装包和标记版本(与往常一样)。
    4. 将用例编译为Web测试
    5. 运行Web测试
    6. 接受/拒绝软件:—)

    在持续集成服务器中运行Web测试通常意味着大量的配置工作。所以,在我尝试之前,我很好奇,你觉得怎么样? 你使用过同样的装置吗?你有什么经验?(具体环境如何?)

    DSL呢,它是否有足够的能力用于用例,或者它是另一个无休止的开发任务?客户是否会生成测试?

    3 回复  |  直到 14 年前
        1
  •  1
  •   gareth_bowles    15 年前

    首先,Selenium可以与IE和其他浏览器以及Firefox协同工作;跨浏览器支持是其优势之一。这是 list of supported browsers .

    但是,如果您想要一个基于人类语言的DSL来编写测试,请看一下 Cucumber -语法几乎与上面的示例完全相同。Cucumber已经有芬兰语言支持-参见 this link.

        2
  •  0
  •   Rajasankar    15 年前

    Fitnesse和Seleness等硒集成工具( http://github.com/marisaseal/selenesse )或氟化钠( http://www.magneticreason.com/tools/fitnium/fitnium.html )也可以达到你的目的。但是,您需要为谁将元素定位器放在客户编写的测试用例中找到答案。如果客户使用记录器放置定位器,则可能无法进行维护。如果客户编写了这些步骤,自动化测试人员/开发人员可以使用regex自定义位置策略放置这些定位器,那么这种方法可能有效。

        3
  •  0
  •   edA-qa mort-ora-y    14 年前

    这个 TestPlan 软件使用专门的语言编写测试。它是高度特定于域的,在Web环境中工作得很好。它支持Selenium后端,因此您可以获得这种兼容性,而且它可以在没有浏览器的情况下运行,从而实现更快的测试。我已经在一些相当大的Web项目上使用了它,这些项目是您正在寻找的设置类型。

    示例脚本可能如下所示:

    GotoURL /SomePage
    Click MyForm
    SubmitForm with
       %Params:name% Tuomos
       %Submit% value:Next
    end
    

    就这样。它很好地描述了用户想要做什么,并且是一个功能测试。您可以将脚本组合成多个单元,并具有自定义功能。所以,如果你真的想要,你可以写下这些名字的结尾等价物。