目前项目组中同时有 web 应用和移动应用存在,目前对这两块的自动化测试是分开维护的: web 采用 Python+ selenium, 移动应用采用 Python+ appium。
鉴于目前产品功能日益稳定,相关的自动化测试框架也需要进一步的扩展,目前的思路如下:

  1. 执行方式: 关键字驱动。 对于关键字驱动,经过试验,在我们的产品中是挺适用的,并且已顺利运行一段时间。好处是把用例从脚本中抽离出来,纯粹按业务逻辑管理测试用例。

用例格式:
关键字 | 元素类型 @@ 元素值
如以下是一个打开百度,并搜索 selenium 的用例:
Chrome,前往 |www.baidu.com/,填写 |id@@kw@@selenium,点击 |id@@su,等待 |5,截图
具体做法是把常用的操作进行归类,并定义好对应的关键字和步骤格式,在代码中转换为对应的执行代码。如上面的用例,转换成对应的 selenium 代码分别是:

在一个产品里使用关键字驱动框架的好处是: 系统整体框架是一致的,那么一个定义好的关键字可以适用于系统里面所有类似的元素。

  1. 用例组织管理:数据库。 基于上面的关键字驱动,可以看到我们的用例可以非常简便,可以非常方便地在数据库中进行管理。 根据日常使用的场景,数据库中将使用以下三个表进行用例日常执行管理:

test_case: 测试用例的管理表。这个表主要用于保存测试用例,可以对应开发相关页面对测试用例进行新增、修改的操作。
test_suite: 测试用例执行汇总表。测试用例将以批次的方式执行。
test_batch: 测试用例执行记录表。test_case、test_suite 的关联表,用以关联具体的测试用例和执行结果。这样可以查看到某一测试用例每次执行的记录。

  1. 用例执行管理: 分布式。 selenium 是支持分布式的,所以可以部署一台主机、多台子机(子机上安装相关浏览器和驱动,进行用例执行) 在主机上维护所有的用例,执行时,读取出相关的用例列表,分布发送到已启动的各台子机上同步执行。

进一步扩展:

  1. 直接在主机上部署一个 web 管理后台,进行用例维护和执行管理,并生成对应的报表。
  2. 可使用 appium 或 macaca 扩展支持移动应用的测试用例维护和执行。
  3. web 的测试,可以使用 selenium 或 macaca 实现关键字驱动; 移动应用的测试,可以使用 appium 或 macaca 实现。


↙↙↙阅读原文可查看相关链接,并与作者交流