自动化测试框架设计

目标

设计、开发一套合适的自动化框架,一方面提升测试效率,节约人力成本,另一方面便于自动化迭代,进而缩短项目的整体迭代周期,加快进度

需求

  1. 测试数据的分离
  2. 测试用例集的选择(BVT/全量)
  3. 与CI的结合
  4. 快速成型,后期扩展

    基本思路

    采用RobotFramework框架

    框架简介

    RF框架
    三大组件:测试组件、资源文件、测试库,各自分离,相互配合

    核心概念

    关键字驱动
    keywords
    分为:高阶关键字、低阶关键字和技术关键字,可嵌套组合

    用例和文件

    用例以文本形式存储,支持html、xml、tsv、纯文本等格式
    一个文件就是一个TestSuit,可包含多个用例
    TestSuit可嵌套

    用例文件结构

    一个用例文件包含四部分内容:
  • Settings:引用的类库、资源文件、变量文件等
  • Variables: 定义测试用例中要使用的变量
  • Test cases:使用测试关键字来完成测试用例
  • Keywords:把现有关键字进行组合,生成更高一级的新关键字

详细文档

实例

Web Demo

优点

  1. 成熟稳定,能够满足需求,见效快
  2. 丰富的类库,Selenium、requests、appium、database等,便于扩展,譬如进行GUI、移动端自动化等
  3. 变量文件和资源文件的使用,可以方便的实现测试数据和用例的分离
  4. 通过标签,可以方便的管理测试用例,进行BVT等测试
  5. 有Jenkins插件,可以通过Jenkins执行并展示结果
  6. 有RIDE工具,编写测试用例比较简单。后期可以让业务测试人员自己编写用例,一方面减轻测试开发的工作量,另一方面也有利于业务测试人员的水平提升
  7. 详细的log和report,

    计划

  8. 将现有的各个模块,封装成自定义Lib,定义好常用功能:譬如登陆、查询、支付、通知等;
  9. LINK、通联、POS等外部要做成独立的mock server,自动化框架可以调用,其他外部系统也可以调用;
  10. 初期先通过简单的业务逻辑,进行底层库的开发,保证稳定性能和健壮性;
  11. 底层库封装好后,可以培训业务测试人员使用RIDE编写复杂用例,而测试开发更专注于框架的维护、底层Lib的封装和完善等;

问题

  1. 最好有一套独立的自动化环境(尝试下docker?业务是否适用?)

  2. 第三方类库的支持程度,比如页面控件等

  3. 参数边界值得处理。如何存储?
欢迎打赏!