logo
 
 
|
|
|
|
|
|
|
|
 
 
您的位置:首页 - 专业知识
理解QTP Action的分割
[2010-04-02]

  前面介绍的脚本基本上都只有一个Action。可以看到,在自动创建的测试脚本的关键字视图中,所有步骤的根节点都是Action1。所谓Action,就是动作的意思,它是一系列操作步骤的集合,在QTP中,可以将整个Action测试脚本分成多个Action,每个Action就是一个相对独立的逻辑单元,而一个QTP测试脚本就是由顺序调用每个Action的操作构成的。
  根据自己的需要,我们可以将Action分割成多个Action。比如:我们录制一个脚本,该脚本是先登陆,再查找bug,最后退出。根据case,运用边界值的测试方法,现在我们查找编号为1的bug,和查找编号为中间的bug,再查找编号为最后一个的bug。进行参数化进行测试。大家可以发现你的脚本是用相同的用户名和密码登陆了三次,再退出了三次。下面是实现该功能的脚本。
  Browser("Bugzilla Main Page").Page("Bugzilla Main Page").Link("Log in to an existing").Click
  Browser("Bugzilla Main Page").Page("Login").WebEdit("Bugzilla_login").Set "root@btest00.com"
  Browser("Bugzilla Main Page").Page("Login").WebEdit("Bugzilla_password").SetSecure "49d1da6794fc0b5a74283ab70d0b88a33165"
  Browser("Bugzilla Main Page").Page("Login").WebButton("Login").Click
  Browser("Bugzilla Main Page").Page("Find a Specific Bug").WebEdit("id").Set "1"
  Browser("Bugzilla Main Page").Page("Find a Specific Bug").WebEdit("id").Submit
  Browser("Bugzilla Main Page").Page("Bug 1 - 11111111111").Link("Log out").Click
  Browser("Bugzilla Main Page").Page("Logged Out").Sync
  Browser("Bugzilla Main Page").Close

  但是,我想要的是登陆一次,查找三个bug,退出一次。这样的脚本是不是更好一些?要想实现该功能,我们可以使用Action分割来实现。在实现登陆的时候我进行分割,再查找bug的时候进行分割,最后退出实现分割。Action的名字根据自己的需要可以随便的设置,最好取一个你自己能够看的懂意思的名字。我是用 login,find,和logout来设置的。大家要注意,这里要设置自己的sheet,即实现自己的对象仓库,对于对象仓库的概念和作用,不在本次介绍的内容,有时间的话,我再介绍。以下是我实现好的脚本。
1.Login
Browser("Bugzilla Main Page").Page("Bugzilla Main Page").Link("Log in to an existing").Click
Browser("Bugzilla Main Page").Page("Login").WebEdit("Bugzilla_login").Set "root@btest00.com"
Browser("Bugzilla Main Page").Page("Login").WebEdit("Bugzilla_password").SetSecure "49d1da6794fc0b5a74283ab70d0b88a33165"
Browser("Bugzilla Main Page").Page("Login").WebButton("Login").Click
2.Find
Browser("Bugzilla Main Page").Page("Find a Specific Bug").WebEdit("id").Set "1"
Browser("Bugzilla Main Page").Page("Find a Specific Bug").WebEdit("id").Submit
3. logout
Browser("Bugzilla Main Page").Page("Bug 1 - 11111111111").Link("Log out").Click
Browser("Bugzilla Main Page").Page("Logged Out").Sync
Browser("Bugzilla Main Page").Close
现在的脚本是实现了Action分割的功能,但是跟我所说的登陆一次,查找三次和退出一次还没有实现。此时只要在find中将查找bug进行参数化三次和设置find执行三次就可以。
实现的脚本只有find中有些变化。
如:Browser("Bugzilla Main Page").Page("Find a Specific Bug").WebEdit("id").Set DataTable("find", dtLocalSheet)

  最后提一个小小的问题,让大家进行思考?
  如果所有的脚本都要从头到尾自己进行编写,是不是太累,太辛苦。我们可不可以将人家写好的脚本拿来用在我的脚本中,也就是要实现脚本的复用呢?下次我准备写该方面的内容。

上一篇:DisplayTag展示与Hibernate物理分页(连载3)
下一篇:PowerDesigner数据库建模入门
 

在线报名

  • 姓       名:*
  • 高考成绩:*
  • 电       话:*
  • 地       址:*
 
课程咨询
 

 
中博教育客服在线
 
©南京北大青鸟 隐私政策
学费咨询
学历咨询
专业咨询
订座试听
就业咨询
课程咨询
测试认证
软件认证