博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
教你如何写框架------用中文构建脚本(更新版)
阅读量:5338 次
发布时间:2019-06-15

本文共 1870 字,大约阅读时间需要 6 分钟。

用中文写脚本,完全弃掉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里配置一下。

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

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

交流平台:QQ群254285583,  174527142

 

 

转载于:https://www.cnblogs.com/zhangfei/p/3592597.html

你可能感兴趣的文章
使用sublime,以及其他应用的常用快捷键
查看>>
Ubuntu学习——第一篇
查看>>
[bzoj1146] [CTSC2008]网络管理Network
查看>>
测试markdown编辑器
查看>>
conflicting types for xx错误
查看>>
OD常用断点
查看>>
Java读写Excel表格数据
查看>>
自动化仿真模型的搭建---基于lattice DO文件和modelsim脚本
查看>>
mysql开发规范
查看>>
Perl 三种时间time,localtime,gmttime
查看>>
Vue入门(一)-Vue实现选项卡效果
查看>>
vue如何在组件内部做整个页面的遮罩层
查看>>
python基础学习笔记——Python基础教程(第2版 修订版)第15章(python和万维网)
查看>>
jQuery获取和设置disabled属性、背景图片路径
查看>>
php多维数组的取值基础知识
查看>>
Sym-GAN
查看>>
查询tensorflow中的函数用法
查看>>
杨玲 - 杨蓉庆 - 张燕 201771010133《面向对象程序设计(java)》第十四周学习总结...
查看>>
实用爬虫-01-检测爬虫的 IP
查看>>
081 Region的预分区
查看>>