您的位置:首页 > 编程语言 > Java开发

设计自己的基于Selenium 的自动化测试框架-Java版(1) - 为什么selenium还需要测试框架?

2013-07-03 11:03 591 查看


本人自动化测试接触时间不久,如有误导,概不负责。

既然有了selenium这个开源的自动化的工具,为什么还要我们自己再去写一个框架?

Selenium是自动化的工具,当然是可以用在测试领域,但他不是为测试量身打造的。当然我们在编写简单的脚本的时候也不需要什么框架,随着时间的推移,或者脚本的变多,我们发现有很多重复的代码,这时候我们就可以把这些重复的代码提取出来,就形成所谓的框架。



首先一个普通的测试用例,比如以一个Excel为例(如下图),每一行代表一个测试步骤,每个步骤又包含(步骤名,描述,期望结果) 3个部分。





TestNG + selenium 我想网上也有很多人用的这两个来搭配。

我们自定义一个TestCaseClass(测试用例类)来定义一个Test
Case(测试用例)。让后让Class继续 Selenium中的SeleneseTestBase,SeleneseTestCase,或者SeleneseTestNgHelper.用TestCaseClass的一个Method(方法)对应一个Test
Step. Method Name对应Step Name,

方法中Operation(selenium.*一些actions)对应Description,方法中的Assertions(如AssertEqual)来对应 Expected
Result.

再加上启动selenium和关闭 selenium的代码,这样一个TestCaseClass就可以运行起来了。

这时候如果我们要写10本case,问题就来了。

1) 每次运行TestCase都需要实例化selenium,都要start,和close。这写都重复能不能提取出来?

2) 能不能设计自己的 Actions(操作),能不能设计自己的 Assertions(我叫做检查点)

3) 能不能把selenium运行的一些环境信息(如OS,Browser,server,port)保存到配置文件中?

4) 能不能吧测试对象分离出来保存(比如保存到xml文件)?

5) 能不能吧测试数据分离出来保存(比如保存到xml或excel文件中)?,能不能实现数据迭代,而不只是重复的copy代码来实行不同的数据测试。

6) 能不能一次执行10本Case?当然也可以,TestNg有自己的配置文件,你可以定义N个Class。但我有个定势思维,总不能Class文件和测试用例关联起来。

7) 异常处理,如果一个Test
Step失败了,会不会执行下面的步骤,还是直接跳过该本 Case。

8) 如果一个TestCase失败了,下面的case还能不能执行? Case之间有没有依赖性?

9) 有没有详细的log输出,当执行失败的时候,能精准的定位错误。因为自动化测试要无人值守,log也是至关重要。

10) 有没有详细的测试结果输出,能不能多种格式(xml,
html, excel等等),能不能自定义要输出的内容。

11) 包括与其他测试工具协同工作,如 autoit,Hudson, QC。 怎么使用 Hudson来进行调度job去执行一套测试用例?怎么把测试结果上传到QC之类测试管理工具?和怎么让autoit和处理selenium干不了的工作等等。



这上面的问题是我工作中遇到的一些问题,TestNg并不能解决上面的全部,我们可以在TestNg的基础上加上一些从而来实现这些目的。当让可以自己写一套处理这些的方法。

可能我们在测试过程并不需要这么多功能,也可能会遇到更多的问题。最适合的就是最好的原理。

希望通过工作记录自己的工作下来,将上面的内容一步一步实现并整理出来。

http://blog.csdn.net/caiqcong/article/details/7594687

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐