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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值