在QTP中使用描述性编程

 作者:风过无息                  2007530 

 

背景介绍:在QTP使用中描述性编程是一个提高QTP脚本的利用率的很好的方式。
术语:描述性编程,环境变量,正则表达式
描述性编程介绍:通常QTP是根据对象库来识别不同的对象,而描述性编程是QTP外另一种识别对象的途径,它不依赖于对象库,通过增加一些对象的描述来达到识别对象的目的。
说明,本例子是以17testing的登陆界面为测试页面进行描述的。(URL:[url]http://www.17testing.com/bbs/logging.php?action=login[/url])。本例子使用QTP9.0进行操作。
步骤一、录制脚本
Browser(" 一起测试网软件测试论坛 :: 软件测试专业网站").Page("一起测试网软件测试论坛 :: 软件测试专业网站").WebEdit("username").Set "222"
这是录制一个输入用户名的操作。
 
步骤二、初级描述性编程
Browser("title:= 一起测试网软件测试论坛 :: 软件测试专业网站.*").Page("title:=一起测试网软件测试论坛 :: 软件测试专业网站.*").WebEdit("type:=text","name:=username").Set "222"
使用SPY查看对象属性,然后进行脚本的强化修改。这边有个小技巧,就是使用了.*,这是一个正则表达式的应用,因为在测试用,发现Browser和Page的title对象是“一起测试网软件测试论坛 :: 软件测试专业网站 - powered by Discuz!”使用正则能是参数化简单一些而已。
 
步骤三、描述性编程的提高
Dim obj_Desc
Set obj_Desc = Description.Create
obj_Desc(“type”).value= “text”
obj_Desc(“name”).value= “username”
Browser("title:= 一起测试网软件测试论坛 :: 软件测试专业网站.*").Page("title:=一起测试网软件测试论坛 :: 软件测试专业网站.*").WebEdit(obj_Desc).Set "222"
使用SPY查看对象属性,然后进行脚本的强化修改。这边有个小技巧,就是使用了.*,这是一个正则表达式的应用,因为在测试用,发现Browser和Page的title对象是“一起测试网软件测试论坛 :: 软件测试专业网站 - powered by Discuz!”使用正则能是参数化简单一些而已。
 
步骤四、使用自定义的环境变量
在file>>setting>>environment 中选择user-defined,增加三个环境变量。
browser=" 一起测试网软件测试论坛 :: 软件测试专业网站.*".
page=" 一起测试网软件测试论坛 :: 软件测试专业网站.*".
wededit_username="username"
这样脚本被修改为:
Pbrowser=environment.Value("browser")
Ppage =environment.Value("page")
Dim obj_ text
Set obj_text = Description.Create
obj_ text(“type”).value= “text”
obj_ text(“name”).value= environment.Value("wededit_username ")
Browser("title:="&Pbrowser).Page("title:="&Ppage).WebEdit(obj_ text).Set "121212"
当然参数化的方式很多,这边介绍的是使用环境变量
 
步骤五、使用导入环境变量
<Environment>
    <Variable>
        <Name>wededit_username</Name>
        <Value>username</Value>
    </Variable>
    <Variable>
        <Name>page</Name>
        <Value> 一起测试网软件测试论坛 :: 软件测试专业网站.*</Value>
    </Variable>
    <Variable>
        <Name>browser</Name>
        <Value> 一起测试网软件测试论坛 :: 软件测试专业网站.*</Value>
    </Variable>
</Environment>
你可以手工导入,也可以用方法LoadFromFile自动导入。
 
总结:优点是当对象一些属性变更以后,脚本能更容易维护。比如说对于一些通用的对象,比如说save,reset,cancel等按钮,一个页面3个,30个页面就90个对象,假如save变成保存,那对象库就会有很大改动了。而使用了描述性编程只需要在导入XML的地方该一个值就好了。当然描述性编程的作用远远不止这些,这次只是抛砖引玉,共同进步。
自动化功能测试是一种企业级的用于检验应用程序是否如期运行的功能性测试工具。1. QTP描述性编程 8 2. 描述性编程2 15 3. 函数 17 3.1. QTP几个截取字符串的函数 18 4. "+" "&"的区别 20 5. QTP场景恢复 21 6. QTP测试环境的初始化 27 7. QTP将数据库的数据导入到excel 29 8. 在QTP将数据库的数据导入到EXCEL 29 9. QTP将数据测试驱动 31 10. QTP设置共享对象库 32 11. QTP ActiveX 报错; 35 12. 数据驱动在测试的应用 35 13. 在Excel增加超链接的方式 39 14. 登陆脚本设计 40 15. QTPWait与同步点的区别 41 16. QTP tips 41 17. Action 调用 45 18. Action 参数调用 47 19. QTP根据日期计算年龄的解决办法 48 20. 测试报告知多少 48 21. 调用共享文件 49 22. 识别grid的button 52 23. How to parameterize your link 52 24. QTP的步骤生成器 54 25. QTP感想 56 26. QTP 参数化实例 60 27. 对象库的管理与合并 62 28. QTP虚拟对象设置 66 29. QTP删除新建文本文件没有权限的问题 68 30. 关于Filter如何使用的疑问 69 31. Call Windows API 69 32. Global 和local区别 72 33. QTP itself API 73 34. QTP需探讨的问题 74 在我的文章也提到过了,描述性编程能让QTP脱离对象库来执行脚本.在某些特殊应用的时候,可能就更方便点.比如:要针对某个对象的参数化等等.而且描述性脚本因为脱离了对象库,所以增加了脚本的可移植性.同时脚本也更具有可读性.当然也给手工写脚本提供了一个平台. 74 35. 正则表达式的应用 75 36. 数据驱动测试: EXCEL 81 37. Action parameters 92 38. 数据驱动测试:文件 95 39. 相对路径action path 101 40. 两种方法参数化link 101 41. WScript 102 42. QTP Plus 的应用 109 43. 一个万能的键盘模拟函数 110 44. XML参数化 115 45. Oracle QTP 115 46. 对象库的管理与合并 116 47. change sysdate 120 48. Import Excel 120 49. Call Dll 121 50. Call Function 123 51. Global and local 区别 124 52. Shell 124 53. 对文件系统操作 125 54. 对象同步 125 55. 正则表达式应用模板 125 56. Wscript.shell 的应用 126 57. Create log file 126 58. 对象同步 127 59. 异常控制 127 60. Check if the object.exist 128 61. QTP场景恢复 129 62. QTP步骤生成器 135 63. IFRAME issues 138 64. Iframe issues 续 142 65. QTP解析PDF 144 66. QTP常见问题解答一 144 67. QTP常见问题解答二 146 68. QTP常见问题解答三 149 69. QTP常见问题解答四 150 70. QTP设计开发脚本 151 71. 设置共享对象库 152 72. 检查网页上文字显示的颜色 155 73. QTP录制如何识别编辑框 156 74. How to search the string from the html source 157 75. ADORecord.set操作 159 76. Object Property参数化操作 161 77. Quick Test Plus 工具 163 78. Schedule the QTP tasks 164 79. General the radom code 165 80. ChildObjects和webTable的使用 166 81. 怎样在QTP打开右键菜单 167 82. CaptureBitmap方法 169 83. 校验对象是否存在object.exist 170 84. QTP&和_的用法。 171 85. 选取webList某一项 172 86. object.SetCaretPos方法 172 87. Similar to watir sample using description programming 173 88. QTP使用outlook发邮件 173
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值