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