`
hao8585
  • 浏览: 7911 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

用 Selenium 自动化验收测试

阅读更多
今天看到一篇使用Selenium做自动化验收测试的文章感觉还不错,和大家分享一下。
http://www-128.ibm.com/developerworks/cn/java/wa-selenium-ajax/
分享到:
评论
13 楼 jzk 2006-09-27  
moxie 写道
我喜欢用Java编写验收测试。上次花了大成本,大家把整个项目的function test从HTML格式转换到Java代码格式。如果HTML格式测试太多,比如超过500个左右,维护那个难呀。现在,鼓励大家测试尽量在单元测试中搞定。验收测试,主要是用来验证粒度更粗的操作流程。


selenium ide不是提供了转换的功能么?
12 楼 gigix 2006-09-20  
ajoo 写道
如果我开始写了一个星期的html文件忽然因为我需要复杂的重用,需要remote control模式,就完全不能用了,需要重写,这基本上不是“要做复杂的事就如何如何”,而是“如果你以后有一丁点可能作复杂的事从开始就要用remote controll”。呵呵,以后的事谁知道?得,为了保证以后不麻爪儿,大家都上来就remote controll了。html这种声明式的方法整个就是一个不能scale,看上去很美的花瓶而已。(当然,从市场角度,它肯定忽悠了无数人,功莫大焉)

你误会了。现在的状况是HTML TestRunner这种使用模式与Selenium Core这个原本应该是API的东西搅在一起,导致项目之间的依赖比较复杂。我们设想的是Core API保持简单,另外再建立一个能力与remote control相当、但使用HTML作为测试描述的test runner。
11 楼 ajoo 2006-09-20  
gigix 写道
ajoo 写道
问题是为什么是非此即彼?
我是程序员,我希望能够重用test case,但是同时我也觉得用html写原子test case挺好的,价格便宜量又足。

为什么不能用html写原子的,然后提供一种方法允许重用html各式的test case?(比如,弄个include命令,或者更灵活点,象freemarker一样可以自定义宏)

这个讨论也有历史了。简单说,Selenium项目有那么几位坚持认为不应该把Selenium自己的DSL做成无所不能的图灵完备语言,只应该提供必要的“操作”。要做复杂的事情,就用remote control模式,在Java底下去做。这也是remote control和selenium core拆分成两个项目的最主要原因。我的感觉是,现在Selenium的API太大,如果可以真正缩减成必要而最小化的操作集,那才是真正的“core”,然后在此基础上建立几种不同的运行模式。

晕。怎么扯上秃岭完备了? 又不需要提供loop, exception, if/else,哪里就完备了?就只要能够把一个html文件直接从script里面调用,另外加上一个include命令不就行了?

不是说简单的“要做复杂的事情,就用remote control模式”。

问题是,很多时候,我们都是从简单的东西开始的。并不知道以后会多么复杂。

如果我开始写了一个星期的html文件忽然因为我需要复杂的重用,需要remote control模式,就完全不能用了,需要重写,这基本上不是“要做复杂的事就如何如何”,而是“如果你以后有一丁点可能作复杂的事从开始就要用remote controll”。呵呵,以后的事谁知道?得,为了保证以后不麻爪儿,大家都上来就remote controll了。html这种声明式的方法整个就是一个不能scale,看上去很美的花瓶而已。(当然,从市场角度,它肯定忽悠了无数人,功莫大焉)

10 楼 gigix 2006-09-19  
ajoo 写道
问题是为什么是非此即彼?
我是程序员,我希望能够重用test case,但是同时我也觉得用html写原子test case挺好的,价格便宜量又足。

为什么不能用html写原子的,然后提供一种方法允许重用html各式的test case?(比如,弄个include命令,或者更灵活点,象freemarker一样可以自定义宏)

这个讨论也有历史了。简单说,Selenium项目有那么几位坚持认为不应该把Selenium自己的DSL做成无所不能的图灵完备语言,只应该提供必要的“操作”。要做复杂的事情,就用remote control模式,在Java底下去做。这也是remote control和selenium core拆分成两个项目的最主要原因。我的感觉是,现在Selenium的API太大,如果可以真正缩减成必要而最小化的操作集,那才是真正的“core”,然后在此基础上建立几种不同的运行模式。
9 楼 ajoo 2006-09-19  
gigix 写道
ajoo 写道
我一个同事就说他就从来都用ruby script写selenium。

可是script看起来不如html舒服啊。看来selenium得这个性感的html table有点看上去很美的意思阿。

实际上这个争执有历史了。对于非程序员(例如BA、QA)来说,HTML格式的测试案例(其实也就是一种测试DSL)更容易理解。而对于程序员来说,用Ruby或者Java编写测试案例有很多额外的奖励,例如可以写循环逻辑,可以封装方法,可以做复杂的setup/teardown等等。这个表面现象折射出来对Selenium的用法其实并非一种,有人用它做验收测试,有人用它来驱动开发。出发点不同,所以用的方式也不同。
(就苦了我们这些committer了,各种用法都得考虑……)

问题是为什么是非此即彼?
我是程序员,我希望能够重用test case,但是同时我也觉得用html写原子test case挺好的,价格便宜量又足。

为什么不能用html写原子的,然后提供一种方法允许重用html各式的test case?(比如,弄个include命令,或者更灵活点,象freemarker一样可以自定义宏)
8 楼 firebody 2006-09-19  
moxie 写道
我喜欢用Java编写验收测试。上次花了大成本,大家把整个项目的function test从HTML格式转换到Java代码格式。如果HTML格式测试太多,比如超过500个左右,维护那个难呀。现在,鼓励大家测试尽量在单元测试中搞定。验收测试,主要是用来验证粒度更粗的操作流程。


十分赞同。
7 楼 moxie 2006-09-19  
我喜欢用Java编写验收测试。上次花了大成本,大家把整个项目的function test从HTML格式转换到Java代码格式。如果HTML格式测试太多,比如超过500个左右,维护那个难呀。现在,鼓励大家测试尽量在单元测试中搞定。验收测试,主要是用来验证粒度更粗的操作流程。
6 楼 gigix 2006-09-19  
ajoo 写道
我一个同事就说他就从来都用ruby script写selenium。

可是script看起来不如html舒服啊。看来selenium得这个性感的html table有点看上去很美的意思阿。

实际上这个争执有历史了。对于非程序员(例如BA、QA)来说,HTML格式的测试案例(其实也就是一种测试DSL)更容易理解。而对于程序员来说,用Ruby或者Java编写测试案例有很多额外的奖励,例如可以写循环逻辑,可以封装方法,可以做复杂的setup/teardown等等。这个表面现象折射出来对Selenium的用法其实并非一种,有人用它做验收测试,有人用它来驱动开发。出发点不同,所以用的方式也不同。
(就苦了我们这些committer了,各种用法都得考虑……)
5 楼 ajoo 2006-09-19  
我一个同事就说他就从来都用ruby script写selenium。

可是script看起来不如html舒服啊。看来selenium得这个性感的html table有点看上去很美的意思阿。
4 楼 Readonly 2006-09-19  
ajoo 写道
有个疑问。
selenium的用html来表达test case很简洁。无论写还是读都很舒服。不过,接下来一个问题就是:怎么重用一些用tr, td写成的test case呢?


自己写一个javascript来生成这些需要重用的test case:
<script>
seleniumTestSuit.addTestMethod("click", "submitButton", "True");
seleniumTestSuit.addTestMethod("verifyText", "name", "ajoo");
</script>

然后将javascript include进来就可以了,这种写法比tr,td来得简单,偶现在不管能否重用,都用javascript来写了。
当然最好是提建议给gigix,让他们给selenium本身就加上这个支持。
3 楼 ajoo 2006-09-19  
这样的话,就是说我的那些要重用的tr, td写的test case就必须要用java,ruby来重新写一遍了?

也就是说一旦重用成为问题,整个test suite都要推翻用script写,鱼和熊掌不能兼得,感觉不是太舒服啊。

2 楼 robbin 2006-09-19  
ajoo 写道
有个疑问。

selenium的用html来表达test case很简洁。无论写还是读都很舒服。不过,接下来一个问题就是:怎么重用一些用tr, td写成的test case呢?

假设我用html写了一个test suite,测试,通过。然后又去写其他的test suite。

然后我发现,有那么几个test case是要在10个test suite之中重复使用的。

此时应该怎么办才能重用?

如果是一个编程语言,我自然可以把这些test case重构成一个函数,然后让这些test suite调用这个函数就好。

但是html的话怎么办?莫非selenium还要再带一个selenium server page? 或者free marker?


可以用Java和ruby编写test case的。关键是被测试的页面如果DOM结构改变了,那麻烦就大了,这Java/ruby写的test case还必须跟着重构才行。这重构就是一个困难。
1 楼 ajoo 2006-09-19  
有个疑问。

selenium的用html来表达test case很简洁。无论写还是读都很舒服。不过,接下来一个问题就是:怎么重用一些用tr, td写成的test case呢?

假设我用html写了一个test suite,测试,通过。然后又去写其他的test suite。

然后我发现,有那么几个test case是要在10个test suite之中重复使用的。

此时应该怎么办才能重用?

如果是一个编程语言,我自然可以把这些test case重构成一个函数,然后让这些test suite调用这个函数就好。

但是html的话怎么办?莫非selenium还要再带一个selenium server page? 或者free marker?

相关推荐

    [公开]Selenium自动化验收测试工具.pdf

    ### Selenium自动化测试工具知识点 #### 一、Selenium概述 Selenium是一款强大的Web应用程序测试工具,主要用于自动化Web应用测试。该工具由ThoughtWorks公司开发,支持多种浏览器如Internet Explorer、Mozilla ...

    selenium UI自动化测试初级培训

    selenium自动化测试工具介绍,java编程

    基于Selenium+Python的高校统一身份认证自动化验收测试技术研究.pdf

    针对这些问题,本研究提出了一种基于Selenium+Python的自动化验收测试技术,以西安交通大学的统一身份认证系统的登录功能为例,进行自动化功能测试。这项技术实现了以下功能: 1. 自动化登录多类型账户:利用Python...

    基于Selenium+Python的高校统一身份认证自动化验收测试技术研究.zip

    本技术研究主要探讨了如何利用Selenium结合Python来实现这类系统的自动化验收测试,从而提高测试效率,减少人为错误,保障系统的稳定性和可靠性。 Selenium是一款强大的Web自动化测试工具,它支持多种编程语言,如...

    Python自动化测试教程 完整版PDF

    Python自动化测试教程,从零基础开始手把手有详细的步骤教你怎么写自动化测试用例。测试人员大多是希望利用编程诧言来帮劣他实现自劢化的测试,而丌需要花费大量的精力来学习一门编程诧言,所以在本文档中丌会过多...

    利用Selenium建立自动化测试框架.docx

    ### Selenium自动化测试框架构建详解 #### 一、Selenium简介 Selenium是由ThoughtWorks公司推出的一款强大且灵活的Web应用程序测试工具。它能够模拟用户在浏览器中的操作行为,支持多种类型的测试,例如单元测试、...

    自动化测试学习资料

    接着,Robot Framework是一个通用的自动化框架,适用于各种测试场景,尤其适合验收测试和验收测试驱动开发(ATDD)。"robot_framewok自动化测试.pdf"可能会详细阐述Robot Framework的基本概念,如关键字驱动测试,...

    RFS自动化验收测试.docx

    RobotFramework(RFS)是一种强大的自动化测试框架,尤其适合测试人员使用。它的主要特性包括易于理解和使用的表格式...通过与Selenium等工具的集成,可以有效地进行Web应用的验收测试,提高测试效率并减少人为错误。

    自动化软件测试书籍

    自动化系统测试通常使用工具如Selenium(Web应用测试)、Appium(移动应用测试)和JMeter(性能测试)等,它们可以模拟用户操作并验证系统行为。 4. 自动化测试框架:许多工具和框架支持自动化测试,如Python的...

    WEB自动化测试-RobotFramework验收测试框架搭建

    **WEB自动化测试-RobotFramework验收测试框架搭建** 在软件开发过程中,自动化测试是提升效率、保证质量的关键步骤。Robot Framework是一种流行的开源自动化测试框架,它适用于多种领域,包括Web应用的验收测试。本...

    RFS的web自动化验收测试——Selenium2Library1.0.0升级指南(补充

    之前一直使用Selenium2Library的0.5.2版本,现在官方推出了1.0.0版本,本人在升级过程中遇到了很多的问题,于是痛下决心要搞定他,终于搞了几天摸清楚了  引言:什么是RFS——RobotFramework+Selenium2library,本...

    自动化测试测试相关论文打包

    2. "软件自动化测试技术与工具":此论文将深入讨论各种自动化测试技术,比如单元测试、集成测试、系统测试和验收测试。同时,它可能涵盖了一些流行的自动化测试工具,如Selenium、JUnit、Appium等,分析它们的优缺点...

    自 动 化 测 试的 要 点

    1. 选择合适的测试工具:根据项目需求,选择具有足够功能、稳定性和社区支持的自动化测试框架,如Selenium用于Web应用,Appium用于移动应用,JUnit或TestNG用于Java的单元测试。 2. 设计测试策略:确定自动化测试的...

    自动化(Python+Selenium)测试工程师

    测试流程的掌握也是自动化测试工程师的核心能力,包括单元测试、集成测试、系统测试、回归测试、验收测试等各个阶段,以及相关概念和工具。系统测试又包括功能测试、界面测试、易用性测试、兼容性测试、性能测试、...

    全面性的验收测试指导

    在进行验收测试时,我们还会使用到一些工具,如自动化测试工具(如Selenium、JMeter)来提高效率,版本控制系统(如Git)用于管理测试用例和文档,缺陷追踪系统(如JIRA)用于管理问题。 对于"验收测试指导.ppt"这...

    Selenium详细使用手册

    Selenium自动化测试的实践过程中,也会遇到一些挑战,比如处理动态内容加载、维护测试用例的稳定性以及处理验证码等。Selenium社区非常活跃,每天都有新的插件和工具被开发出来,以帮助测试工程师解决这些问题。 ...

    Selenium 中文API

    **Selenium 自动化验收测试** 自动化验收测试是在软件开发的最后阶段进行,确保产品满足用户需求和业务规则。Selenium 可以作为验收测试的工具,因为它能准确地模拟用户行为,并对结果进行验证。创建验收测试用例时...

Global site tag (gtag.js) - Google Analytics