如何从零开始搭建一个无线自动化测试框架(二)

回顾

上一篇我们得到了一个简单的设计草稿. 接下来的工作就是根据这个map寻找我们的拼图了!

避免重复的造轮子

先不要急着开始写代码, 这是最愚蠢的工作方式. 我们先看看有哪些东西我们可以使用:

  • PyUnit 这个是python的单元测试工具, 可以通过命令行在terminal下驱动, 我们可以替换它自身的runner和Logger部分.

类似于pyunit这样的单元测试工具其实还有很多, 而且都具有一定的扩展性. 如果考虑到使用简便, 不妨就可以使用python的单元测试工具PyUnit. 如果考虑到使用范围更广, 行为驱动测试的话, 那么下面的工具应该

  • Cucumber. Ruby语言编写的行为驱动工具, 能够写出来类似下图的用例:

测试引擎

看了上面的介绍, 是不是突然觉得, 我们是不是什么都可以不做了? 恩...确实可以这样认为, 但是, 这个只是我们运行测试的引擎, 还有一些工作需要我们来继续做的.

下面是一个测试运行的大致流程:

准备测试环境  -> 测试集准备 -> 测试集运行 -> 测试运行 -> 测试集运行结束 -> 测试环境清理

我们的测试引擎就是要保证这个流程能够顺利进行. 现有的工具已经能够包含上面的环节, 但是几乎每个环节都有需要定制的地方, 包括但不限于: 检测测试机器信息, 准备测试数据, 以特定的命令运行测试, 捕获结果, 自定义信息处理的过程等等.

更重要的是, 既然是自动化测试, 那就要充分发挥程序的优点: 可以反复的运行不同的数据集合, 达到反复测试的目的. 说的更为直观一些就是下面的公式:

测试用例 = 场景(脚本) + 数据

我们用不同的数据就可以结合场景(脚本)组合成很多很多的用例了, 对不? 这种测试思路, 也就是我们常常听到的数据驱动测试(DDT), 是不是很好懂?

所以, 在我们定制测试引擎的时候, 请一定不要忘记灵活配置. 有没有更为直观的方式来组织我们的测试呢? 都是一个一个脚本, 看着多难受? 有比如, 我想要像前文提到的Cucumber那样直接描述行为的测试用例(行为驱动测试BDD)该怎么办?

这里我们介绍一个好伙伴: Robotframework

Robotframework不单单提供了从关键词映射到脚本(Java或者Python编写)的引擎, 还提供了各种自定义和监控测试过程的方法, 可以让我们按照意愿去定义测试的运行过程.

小结

到目前为止, 我们了解了一个自动化测试引擎的基本功能. 如果觉的这一篇比较繁杂, 大可以了解并使用�一下Robotframework, 这个绝好的测试引擎会让我们的工作事半功倍.

你可能感兴趣的:(如何从零开始搭建一个无线自动化测试框架(二))