登录站点

用户名

密码

QTP同步点、并行Action间的参数传递

已有 114 次阅读  2011-10-31 10:43   标签javascript  target  color  style  时间  转帖: 新浪|微博新浪 百度|Hi空间百度 开心网开心 校内|人人网人人 豆瓣网豆瓣 搜狐|白社会搜狐 淘宝|淘江湖淘宝

一 对同步点的理解

  1)QTP的脚本语言是VBScript,脚本在执行的时候,执行语句之间的时间间隔是固定的,也就是说脚本在执行完当前的语句之后,等待固定的时间间隔后开始执行下一条语句(这句话表达有误)

  2)问题:假设后一条语句的输入是前一条语句的输出,如果前一条语句还没有执行完,这时候将要导致错误的发生!

  3)措施:加入同步点、加入Wait语句

  4)同步点Synchronization Point
  QTP脚本在执行过程中如果遇到同步点,则会暂停脚本的执行,直到对象的属性获取到了预先设定的值,才开始执行下一条脚本。
如果在规定的时间内没有获取到预先设定的值,则会抛出错误信息。

例如:
  Window("Flight Reservation").ActiveX("Threed Panel Control").WaitProperty "text", "Insert Done...", 10000
  执行到上面这条语句时,QTP会暂停执行,直到显示”Insert Done…”,
  如果在规定的时间10,000ms后text的值没有等于”Insert Done…”,则会抛出错误信息

5)如何获取Synchronization Point
       A.在Recording状态下,通过Insert | Synchronization Point实现
       B.非Recording状态下,在Expert View下,通过Insert | Step Generator | Category(TestObjects)| Object(The Object you’re Testing)|Operation(WaitProperty)| PropertyName、PropertyValue、TimeOut分别填写"text", "Insert Done...", 10000

6)Wait
  总的来说就是死等,比如说wait 10,当运行到这条语句时,等待10秒钟后,才开始再读下面的语句。所以说写脚本的时候一定要估计好时间,否则的话会浪费运行的时间,或者出现等待时间不足的现象。

二 并列Action间的参数传递

  思路:将Action1的输出参数,传递给Action2作为输入参数。

  1)创建两个Action,关系是并列关系,不是嵌套的.
           

  2)右键Action1,选Action Properties,在Output Parameters中添加参数OutAction1,点OK

  3)右键Action2,选Action Properties,在Input Parameters中添加参数InAction2,点OK
  
  4)将Action1的输出OutAction1,传递给Action2的输入InAction2

  右键Action2,选Action Call Properties,弹出Action Call Properties窗口;
  选中InAction2的Value,弹出Value Configuration Options窗口;
  在Parameter中共有四项可供选择,选择Test/Action parameter,
  在Output from previous call(s)中的Action选择Action1,Parameter中选择OutAction1;
  表示Action2中的参数InAction2,是由Action1中的参数OutAction1传递而来。

      

  以上就完成了两个并列Action间参数的传递,Action2只能调用Action1的输出参数,而不能调用Action的输入参数。
三 嵌套Action间的参数传递
  参数传递思路:
  将Action1的输入参数InAction1传递给Action2的输入参数InAction2,
  将Action2的输出参数OutAction2传递给Action1的输出参数OutAction1。
  1)创建两个Action,嵌套关系,在关键字视图,拖动Action2到Action1下面有缩进的地方
    
  2)右键Action1,选Action Properties,
  在Input Parameters中添加参数InAction1,
  在Output Parameters中添加参数OutAction1,点OK
  3)右键Action2,选Action Properties,
  在Input Parameters中添加参数InAction2,
  在Output Parameters中添加参数OutAction2,点OK
  4)在Action1和Action2间建立关联
  右键Action2,选Action Call Properties,弹出Action Call Properties窗口;
  选中InAction2的Value,弹出Value Configuration Options窗口;
  在Parameter中共有四项可供选择,选择Test/Action parameter,
  在Parent action parameters的parameter中选择Action1
  同理,OutAction2的Store In值为OutAction1
             
  以上的操作就是把输入值 通过Action1的输入参数,传递给Action2的输入参数进行使用,
  然后Action2运行后,将输出参数通过Action1的输出参数传递出去。
  这里只是对嵌套Action进行最基本的讲解,在实际使用当中还要灵活运用
/*0324 BlogMore*/ img{ border:none} .moreArticles {margin-top:50px; font-size:14px;} .moreArticles ul{ list-style:disc;} .moreArticles ul li{ height:23px; line-height:23px; font-size:14px;} .moreArticles h2 { margin:0px; padding:0px; font-size:14px; font-weight:normal; height:30px; } .moreArticles h2 a{ text-decoration:underline} .conBg_oth{ position:absolute; left:505px; top:505px; width:644px; height:390px; border:1px solid #6d6b6a; z-index:900; background:#fff;} .editMya{ width:642px; height:390px; border:1px solid #a8bac1;font-size:12px;} .editTop{ background:url(../images/box_top_bg.jpg) repeat-x; height:22px; padding-top:3px; padding-left:12px; font-size:14px; font-weight:normal; color:#4e7786;} .editTop span{ float:right; padding-right:6px; padding-top:2px;} .editLeft{ width:396px; float:left; padding-left:12px; padding-top:12px; font-size:12px;} .f000{ color:#000;} .selectAticle{ height:25px;} .selectAticle .fright{ float:right} /*0324 BlogMore*/
  _uacct = "UA-2706087-1"; urchinTracker();
 
var dom1; dom1 = document.getElementById("SelfHtmlPrepare").innerHTML; document.getElementById("SelfHtml").innerHTML = dom1; document.getElementById("SelfHtmlPrepare").innerHTML=""; document.getElementById("SelfHtml").style.display="none";
分享 举报