qtp与selenium2的区别
QTP:
我觉得qtp适合的人:
对编程不是很熟悉的
厌烦了手动的功能测试,想快速进入自动化行业的
公司想快速自动化项目,并且对价格或者对盗版无所谓的
vbs脚本语言易于上手,可以培训你对代码的兴趣,为更进一步的提升奠定基础
框架:
qtp本身就是一个框架, qtp11,宣传的是高级关键字驱动,实际上他是也有数据驱动,就是一个混合体(关键字驱动+数据驱动)
包含了dataTable, or, functionlibrary
dataTable可以参数化数据,做数据驱动
关键字,实际是面向非开发人员的,就是直接根据业务录制脚本,然后在关键字视图上,根据实际情况再做调整
对象库实际上是qtp的精华所在,但是有的时候往往舍弃它,用DP,实际上着是不对的,他相当于selenium的page object
函数库,就是封装了一些业务方法和工具包,比如login,对对象的方法的扩展
Webdriver
selenium2 = selenium 1 + webdribver
咱们现在都在用webdriver, 实际上他就是提供一堆API
selenium适合的人:
有一定开发背景,熟悉java, c#, python, ruby,这样你才能快速使用起来
有一定商业自动化工具的使用经验,了解了自动化工具的思想,想转做开源的自动化的,我其实就是这个原因
框架
selenium的开源优势是很明显的,尤其是使用java语言的(没有贬低其他语言的意思),原因很简单,用的人很多,那么第三方的扩展工具包也很多,使用起来就比较方便
tom本来今天讲的testng(标记语言),就是一个第三方的 jar包,他是用控制测试流程的
由于自动化测试用例设计的一个准则是尽量减少case之间的依赖关系,那么我一般做的是每次用例跑完以后都回到原点,并且用例创建的数据都会被删掉
比如,一个场景: login(放在before) - action(正常的业务逻辑) - logout(after).........testsuite.xml
脚本版本控制工具(svn)
做版本的控制,可以方便多人开发脚本以及脚本出错可以及时的回滚,我们需要把代码签入到svn里去
ant实际上一个构建工具,它可以创建一些构建脚本,比如自动编译代码,等,他是一个Build.xml
jenkins(前身hudson)是一个持续构建服务器(CI服务器)。他的作用就是构建Build. 他会一直轮询svn。一单发现svn代码有变化就调用ant,然后ant调用testng来执行我们写selenium自动化测试用例
以上是自己的拙见,有不足的可以拍砖!