论坛首页 综合技术论坛

用 Selenium 自动化验收测试

浏览 13972 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-09-15  
今天看到一篇使用Selenium做自动化验收测试的文章感觉还不错,和大家分享一下。
http://www-128.ibm.com/developerworks/cn/java/wa-selenium-ajax/
   发表时间: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?
0 请登录后投票
   发表时间: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还必须跟着重构才行。这重构就是一个困难。
0 请登录后投票
   发表时间:2006-09-19  
这样的话,就是说我的那些要重用的tr, td写的test case就必须要用java,ruby来重新写一遍了?

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

0 请登录后投票
   发表时间: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本身就加上这个支持。
0 请登录后投票
   发表时间:2006-09-19  
我一个同事就说他就从来都用ruby script写selenium。

可是script看起来不如html舒服啊。看来selenium得这个性感的html table有点看上去很美的意思阿。
0 请登录后投票
   发表时间:2006-09-19  
ajoo 写道
我一个同事就说他就从来都用ruby script写selenium。

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

实际上这个争执有历史了。对于非程序员(例如BA、QA)来说,HTML格式的测试案例(其实也就是一种测试DSL)更容易理解。而对于程序员来说,用Ruby或者Java编写测试案例有很多额外的奖励,例如可以写循环逻辑,可以封装方法,可以做复杂的setup/teardown等等。这个表面现象折射出来对Selenium的用法其实并非一种,有人用它做验收测试,有人用它来驱动开发。出发点不同,所以用的方式也不同。
(就苦了我们这些committer了,各种用法都得考虑……)
0 请登录后投票
   发表时间:2006-09-19  
我喜欢用Java编写验收测试。上次花了大成本,大家把整个项目的function test从HTML格式转换到Java代码格式。如果HTML格式测试太多,比如超过500个左右,维护那个难呀。现在,鼓励大家测试尽量在单元测试中搞定。验收测试,主要是用来验证粒度更粗的操作流程。
0 请登录后投票
   发表时间:2006-09-19  
moxie 写道
我喜欢用Java编写验收测试。上次花了大成本,大家把整个项目的function test从HTML格式转换到Java代码格式。如果HTML格式测试太多,比如超过500个左右,维护那个难呀。现在,鼓励大家测试尽量在单元测试中搞定。验收测试,主要是用来验证粒度更粗的操作流程。


十分赞同。
0 请登录后投票
   发表时间: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一样可以自定义宏)
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics