首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网页的自动测试(并通过DSL从用例中生成)

网页的自动测试(并通过DSL从用例中生成)
EN

Stack Overflow用户
提问于 2010-07-06 09:44:15
回答 3查看 2.2K关注 0票数 3

我的目标是:

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

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

通常,某些属性(如文本字段id)已经更改或其他什么,测试将在几周内中断。似乎记录的测试经常失败,所以与其尝试维护和修改旧的测试,不如轻松地记录一个新的测试。

现在,我找到了一个全新的方法。也许录音不是正确的方法。如果我们的客户能够用一种人类可读的自己的语言制作用例,机器就可以理解并编译成网络记录(使用特定于领域的语言DSL)。这不是科幻,它已经制作好了,所以继续读吧。:-)

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

  • 测试(客户无法执行)
  • Selenium (只适用于Firefox,我们的客户有IE)
  • WatiN (.NET版本的Watir,记录器似乎有点问题)
  • HP快速测试Pro (不容易进行新的测试)

这些都没有提供我真正需要的..。但硒是最近的一种。

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

  • Avaa "OmaLomake“
  • Sy t“Tuoma”kohtaan "nimi“
  • Paina "Seuraava“

翻译:

  • 打开"MyForm“
  • 在字段"name“中插入"Tuomas”
  • 按“下一步”

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

什么样的DSL工具会对此有好处?

微软正在他们的奥斯陆项目中开发一个新的DSL制作工具,名为MGrammar。这意味着你可以定制一种语言,让非技术人员更容易地使用机器。( Cobol和Visual的基本思想(失败)相同。)

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

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

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

在连续集成服务器中运行web测试通常意味着大量的配置工作。所以,在我尝试这个之前,我很好奇,你觉得呢?你是否使用过同样的设置,你的经验是什么?(确切的环境是什么?)

DSL怎么样,它是否有足够的能力用于用例,还是又是一项没完没了的开发任务?客户会产生测试吗?

EN

回答 3

Stack Overflow用户

发布于 2010-07-06 15:53:08

首先,Selenium确实可以与IE和其他浏览器以及Firefox一起工作;跨浏览器支持是它的优势之一。这是受支持的浏览器列表

但是,如果您想要一个基于人类语言的DSL来编写您的测试,那么请看一看黄瓜 --语法与上面的示例几乎完全一样。黄瓜已经有芬兰语支持-参见这个链接。中的示例

票数 1
EN

Stack Overflow用户

发布于 2010-07-09 10:12:43

Fitnesse和Selenium集成工具(如Selenesse(http://github.com/marisaseal/selenesse)或Fitnium(http://www.magneticreason.com/tools/fitnium/fitnium.html) )也可以用于您的目的。但是,您需要找到将元素定位器放在由客户编写的测试用例中的答案。如果客户使用记录器放置定位器,则可能无法进行维护。如果客户编写这些步骤,而自动化测试人员/开发人员可以使用regex自定义定位策略来放置这些定位器,这种方法可能会奏效。

票数 0
EN

Stack Overflow用户

发布于 2010-10-21 05:41:19

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

您的示例脚本可能如下所示:

代码语言:javascript
复制
GotoURL /SomePage
Click MyForm
SubmitForm with
   %Params:name% Tuomos
   %Submit% value:Next
end

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3185131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档