既然有了selenium这个开源的自动化的工具,为什么还要我们自己再去写一个框架?
首先一个普通的测试用例,比如以一个Excel为例(如下图),每一行代表一个测试步骤,每个步骤又包含(步骤名,描述,期望结果) 3个部分。
TestNG + selenium 我想网上也有很多人用的这两个来搭配。
方法中Operation(selenium.*一些actions)对应Description,方法中的Assertions(如AssertEqual)来对应 Expected Result.
再加上启动selenium和关闭 selenium的代码,这样一个TestCaseClass就可以运行起来了。
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等等),能不能自定义要输出的内容。
这上面的问题是我工作中遇到的一些问题,TestNg并不能解决上面的全部,我们可以在TestNg的基础上加上一些从而来实现这些目的。当让可以自己写一套处理这些的方法。
可能我们在测试过程并不需要这么多功能,也可能会遇到更多的问题。最适合的就是最好的原理。
希望通过工作记录自己的工作下来,将上面的内容一步一步实现并整理出来。
http://blog.csdn.net/caiqcong/article/details/7594687