教你如何写框架------用中文构建脚本(更新版)

用中文写脚本,完全弃掉IDE,就能完成java+selenium的自动化测试过程,体验一下这神奇的过程吧。

我们先来看下面的scenario:

1.打开百度

2.输入搜索关键字并点击"百度一下"

3.在搜索结果页面取出搜索输入框的值进行验证

我们来看如何实现:

1.在TestBaidu.yaml中保存好locator(保存方法在前面有介绍)

2.在TestBaidu.xml保存好测试数据

3.在TestBaidu.txt中写上如下的脚本:

  1."打开"{url}

  2."页面"{testBaidu},输入框(baidu_input)[sendKeys]{hello world}

  3."页面"{testBaidu},[click]按钮(baidu_button)

  4."页面"{testBaidu},取得输入框(baidu_input1)属性值[getAttribute]{attrValue},"返回值"{getInput}

  5."对象"{Log},输出[信息]{getInput}

  6."对象"{Assert},判断[assertEquals]{getInput,assertValue}

整个过程就完了,就可以直接运行了,在这个过程中完全没有用到eclipse或其它的IDE,如果细心的人,应该很快能发现上面写脚本的方式很适合于在excel或平台中使用,留给大家去扩展吧。

下面介绍一下几个特点:

1.对于Locator的保存方式,支持参数化,比如

baidu_input:
  type: id
  value: %s

也就是说这个%s要是脚本中被替换掉,于是我们可以这样使用2."页面"{testBaidu},输入框(baidu_input){kw}[sendKeys]{hello world},如果有多个参数要替换,用逗号隔开。

2.对于测试数据,在脚本中一般用{}符号概括,在{hello}中,如果hello在xml文件中有结点存在,则取结点的值作为数据,如果在xml文件中没有结点存在,则数据就为hello.

3.对于有一些公共方法,要被抽象出去,抽象出来的,也放在txt中,也用中文来写,即一个txt文件就代表一个方法,但是java是面向对象的,这些个方法要有对象,所以我把这些方法与page联系在了一起,联系方式为:

LinkedPages.xml:

<Pages>
    <TestBaidu>
        <methohd name='search' return='' linked='TestBaidu1'/>
    </TestBaidu>    
</Pages>

TestBaidu就是代表页面page,里面有一个search方法,具体的实现在TestBaidu1.txt中,没有返回值(return的值为空或者没有return属性)

4.当然我们也可以自已去扩展page,用代码来写page里面的方法,这些page放在com.test.page包下面,如果page里有search方法,LinkedPages.xml里面也有search方法,则以page里的优先。

5.支持逻辑判断与循环,例如:

  1."如果"{1}等于{1},"并且"{2}不等于{3}
  -"对象"{Log},输出[信息]{a}
  -"如果"{1}等于{1}
  --"循环"{i}从{1}到{3}
  ---"对象"{Log},输出[信息]{i}
  2."循环"{i}从{1}到{3}
  -"对象"{Log},输出[信息]{i}

提供了4个接口,接口说明:

  1.Locators接口,如果你不想用yaml来保存Locators,想用DB或者其它文件,只需实现这个接口就行了

  2.TestDatas接口,如果你不想用xml来保存数据,只需实现该接口就可以了

  3.Linked接口,如果不想用LinkedPages.xml,也要实现该接口

  4.TestCases接口,如果觉得TXT不直观,实现一下该接口就OK了

备注:以上4个接口实现后都得在config.xml里配置一下。

如果你想实现平台,或者在领导面前炫一把,用该框架,应该会屌炸天。

 下载地址:https://files.cnblogs.com/zhangfei/Automation2.0.rar

交流平台:QQ群254285583,  174527142

 

 

posted on 2014-03-10 20:18  张飞_  阅读(5779)  评论(3编辑  收藏  举报

导航