|
了解和使用过QTP的朋友都知道,QTP的脚本开发语言都是基于vbscript的,由此所衍生出的lib,automation也都大多采用vbscript的,可以说,qtp的自动化测试是一个vbscript的世界。但vbscript作为脚本语言来说,尤其天生的缺陷,比如出错处理非常薄弱,不适合构建大规模的自动化测试,如测试框架等等。为此我开始将qtp的automation执行转化为java语言,以能够符合框架的大规模开发要求。下面将设计及实现介绍一下,以抛砖引玉。
QTPDriver_java的目标:
1. 使用java语言实现qtp automation object model,并在此基础上构建完整的自动化测试解决方案,包括健壮的错误诊断处理,和丰富的自动化测试报告等等。
2. 为qtp脚本提供丰富的框架规范及接口,以解决qtp脚本的健壮性和可诊断性问题。
目前java_qtp_driver有两个配置文件:
1. QTP 环境配置文件config.xml,格式如下:
主要是qtp启动的相关参数,包括synctimeout,screenshot的设置,测试运行的最大超时时间等等。qtpdriver会读取这些参数,并通过automation object model设置到qtp的运行实例中去
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>This is Config xml for AC agent,the screen shot value could be ERROR,NONE,ALL</comment>
<entry key="GENERATE_FILE_ONLY">false</entry>
<entry key="RECOVERY_LEVEL">1</entry>
<entry key="SCREENSHOT">ERROR</entry>
<entry key="SYNC_TIMEOUT">20000</entry>
<entry key="TEST_TIMEOUT">18000</entry>
</properties>
2. 测试执行脚本任务文件,格式如下:
qtpdriver会在运行的时候,读取此xml,执行不同响应的测试任务
<suite name="demo_test_suite" desc="this is a suite for demo">
<component name="demo_test_component" desc="this is a component test for demo">
<casefile file="D:\learn\cesoo\cesooProject\JavaQTP\QTPAgent\driver\testscripts\flightDemo" desc="flightDemo"></casefile>
<casefile file="testscripts\flightDemo" desc="flightDemo"></casefile>
</component>
</suite>
3. java_qtpDriver的功能如下:
1)启动qtp,按照配置文件中的参数,完成qtp的相关设置
2)加载recovery 场景和相关lib
3)读取测试任务xml文件,循环执行指定的测试任务,直到结束
4)生成qtp结果报告,并在qtp报告的基础上,再做一层分析,最终生成xml报告,抓图如下:
总结一下:
qtp_driver的优势是
1. 全java编写,提高测试的稳定性和可靠性
2. java命令即可触发自动化测试的执行和结果报告的收集,完全实现无人值守运行
3. 强大的报告功能,生成基于qtp的总览报告及细分报告,直观简洁,适合回归测试
4. 持续开发改进
qtp_driver的劣势是.....目前下载只对读者用户开放,普通用户必须经过管理员升级,方可获得下载权限
使用指南1. 下载附件zip包,并解压
2. 双击运行install_driver.bat,完成driver系统文件注册
3. 编辑TestSuite.xml文件。通过增加<casefile>节点,来添加已有的qtp脚本
3. 双击runqtp.bat,开始运行qtp测试任务
4. 会在当前目录下生成results子目录,保存qtp各个脚本的测试结果报告,同时ac会为您生成一份总览报告ACSummary.html,在results/timestamp目录下。
可在本人博客站内论坛下载框架jar包(提示一下,因为本人博客空间性能有限,下载仅对读者用户开放)
http://www.cesoo.com/bbs/viewtopic.php?f=4&t=21
[ 本帖最后由 sunshinelius 于 2009-12-4 11:40 编辑 ] |
|