- 如何把控操作函数的粒度?
操作函数的粒度是指,一个操作函数到底应该包含多少操作步骤才是最合适的。(如果粒度太大,就会降低操作函数的可重用性;如果粒度太小,也就失去了操作函数封装的意义。)
-
操作函数的粒度到底该如何控制呢?
脚本粒度的控制还是有设计依据可以遵循的,即往往以完成一个业务流程(business flow)为主线,抽象出其中的“高内聚低耦合”的操作步骤集合,操作函数就是由这些操作步骤集合构成的。 -
如何衔接两个操作函数之间的页面?
完成一个业务流程操作,往往会需要依次调用多个操作函数,但是操作函数和操作函数之间会有页面衔接的问题,即前序操作函数完成后的最后一个页面,必须是后续操作函数的第一个页面。如果连续的两个操作函数之间无法用页面衔接,那就要在这两个操作函数之间加入额外的页面跳转代码。 -
业务流程抽象
业务流程抽象是,基于操作函数的更接近于实际业务的更高层次的抽象方式。基于业务流程抽象实现的测试用例往往灵活性会非常好。
对于每一个业务流程类,都会有相应的业务流程输入参数类与之一一对应,具体的通常有这么几步:
- 初始化一个业务流程输入参数类的实例;
- 给这个实例赋值;
- 用这个输入参数实例来初始化业务流程类的实例;
- 执行这个业务流程实例。(执行业务流程实例的过程,其实就是调用操作函数来完成具体的页面对象操作的过程)
业务流程的优点:
- 业务流程的封装更接近实际业务
- 基于业务流程的测试用例非常标准化,遵循“参数准备”、“实例化Flow”和“执行Flow”这三大步骤,非常适用于测试代码的自动化生成。
- 由于更接近实际业务,所以可以很方便地和BDD(Behavior Driven Developent------驱动开发)结合。