1、开发工具
开发语言和使用框架:Java、Selenium2
集成开发环境: Eclipse https://www.jetbrains.com/idea/ jetbrains 大法好
分布式监控平台: Jenkins
2、框架原理
主框架分为三层:InitialFramework、UIFramework、Web\Android\IOS
第一层初始化框架目录结构、测试类目录结构、资源文件目录结构 ,封装基于WebDriver架包的通用方法,比如点击,检查元素等 多种浏览器扩展,http get post
第二层封装特定项目类型的方法,Web、Android、IOS,接口的代码测试
其他项目来引用这个项目,来实现具体的测试代码。基础框架和测试脚本(实际框架)分为多个项目,分布式开发,维护,方便多支队伍同时扩展
项目级别框架
以项目为单位,封装适用于该项目的业务逻辑方法,以便脚本重复调用 ,测试数据可以单独作为测试脚本的一分部来进行维护。合适的测试脚本必须配合合适的测试用例。
3、测试类
测试类是基于junit的测试框架,把测试脚本放在独立的包下面,测试用例放在测试脚本中,方便从用例的业务逻辑来开发脚本,方便本业务的测试用例的有效性,通过率。
4、资源文件
执行脚本是以DataDrive原理(即数据驱动),关键字原理进行,将测试的元素定位,保证关键步骤的可用性(毕竟不是所有的都可以自动化,也没那么多条件和资源),测试数据单独放再资源文件中,其中元素定位是所有方法最终操作的对象,接受指定形式的文件格式。
5、搭建分布式测试平台
通过junt功能,将测试类进行分类以便分布式中调用指定的测试类,很多团队使用的是Junit测试框架。分布式平台选择Jenkins。
框架优点汇总:
1、集Web、Android、IOS自动化测试于一体的框架,可以让不同的自动化团队同时维护一个框架(第一层和第二层),按各自的项目类型开发方法(第三层),做到了既可以使用同一套框架,又互补影响,从而节约了后期的维护成本。
2、框架的移植能力强,这里的移植能力是指测试框架可以用到不同的项目中,只需要建立一个自己的项目级别框架,继承相应的第三层,便可以直接开发测试脚本,用关键字AppName来指定项目级别的框架和测试类的目录结构,当然也包括资源文件目录。
3、支持分布式测试。
4、支持脚本按任意要求进行分类维护。
***** 可以脚本维护简单才是最重要的
缺点:
开发周期长,投入成本高,适用于项目周期长、公司有多个项目。队伍资源不足,直接手工测试就可以了。
自动化测试的长期运行,依赖于很多东西。资源,人力,高层态度。
真正写自动化代码的,最好有2,5年开发最好。自动化测试不是目的,甚至测试也不目的,目的是提高软件项目的质量,效率,这就需要很高的综合素质。