scribble

sanlengjingvv

Blog GitHub

12 Aug 2014
QTP-Web简易框架和思路

网盘

1、WEB产品,少量flash。对冒烟、部分的回归和重复数据类用例自动化。

2、因为不能重编译,不能使用flex-addin,用了insight object,但只有两个用例,其他放弃。

目录:

\Aom下是批量执行脚本。

\ExternalFiles下存放业务相关的文件,比如商品封面、附件。

\ObjectRepository下存放公共对象库

\QtpTest下存放测试脚本

\TestLiberary下存放公共函数

\TestLog下存放测试结果

\TestData下存放测试数据

重用:

1、对象库:

A、一个产品下的所有脚本都使用一个公共对象库;

B、一个browser,以链接划分page,类似导航栏、提示弹窗这种多个page会重复的,归为单独的page。

2、Action根据业务和用例封装,比如登录Action只有一个。

3、一个公共的Function Libraries,字符串处理、执行SQL、同步等。这里的Function不是业务依赖的,业务相关的用Action。

4、因为根据业务,没有多个用例可以使用同一个数据集的情况,每个需要分离数据的脚本都在TestData目录下有同名Excel,脚本开始前Import。

可读&易维护:

1、除了链接检查的用例,没有使用图形界面的checkpoint,直接在脚本写CheckProperty方法做检查。

2、统一对象库对象命名、脚本的函数变量命名、注释等规范。

3、两个选项卡被QTP认为是两个Browser,如果一个操作打开新选项卡,会有对象重复问题,所以如果打开新选项卡,把旧的关掉。

容错&解耦

1、同步:

A、尽量用粒度小的比如waitProperty做同步。

B、Object.readyState<>”complete”比Sync准确。

2、不同用例需要不同角色的用户,所以每个脚本以打开浏览器登录开始,退出关闭浏览器结束。因为产品是默认保持登录状态,为了一个脚本失败后下一个不是登录状态,调用AOM执行每个脚本后都关闭浏览器,清除cookie和缓存。

3、有些依赖业务,比如虚拟商品同一用户只能购买一次,所以购买用例需要先发布新商品,可以直接数据库插入发布数据。

4、用例设计时考虑并行执行的情况,不能互有影响。

5、有些单纯的多次点击跳转,直接Navigate最终目的。另外有用例检查控件的链接属性值。

报告:

1、详细报告使用QTP自带的HTML Report。

2、Screen Capture截图录屏。

3、调用AOM的vbs脚本生成一个简单Excel报告,包含用例名、成功或失败、详细报告路径。CI系统发邮件。

批量&调度:

1、测试从一个vbs启动,完成:

A、清缓存cookie、修改IE设置等。

B、设置QTP项目路径、自动报告、报告路径等。

C、从Excel读取待测用例,批量执行,生成简单报告。

D、命令台获得参数执行不同的Suit

2、CI(比如Jenkins)构建测试环境、初始化数据库后在各个测试机上执行启动vbs,完成后发送邮件。


Til next time,
黑水 at 15:38

scribble

Blog GitHub