• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 軟件測試簡易自動化測試設計

    發表于:2015-03-23來源:uml.org.cn作者:不詳點擊數: 標簽:
    基于RFT的swing界面的自動化測試,這里不是說怎么去使用工具,而是怎么將RFT融入到自動化測試設計中,其實RFT在整個設計中,個人覺得,只是一個輔助的角色,如果時間允許的話,誰也

      序言:基于RFT的swing界面的自動化測試,這里不是說怎么去使用工具,而是怎么將RFT融入到自動化測試設計中,其實RFT在整個設計中,個人覺得,只是一個輔助的角色,如果時間允許的話,誰也不想用這么昂貴還這么不靈活的RFT,接下來,你讀完這個系列后,你就知道為什么我這么說了。

      一、簡易自動化測試架構說明

      很多人都應該了解了GUI自動化測試的通用架構劃分如下:

      1、對象層AppObject,存儲基于find()搜索控件的具體方法,我分成了兩大類,一類是通用的基本java控件、一類的不同產品線的相應的自己拓展的控件類。

      2、方法層AppLib,存儲簡單的操作函數,在這里,我分成了兩大類:Lib與Method類,Lib類用于對象的基本操作方法,Method類存儲用于一些基本的自己拓展的操作方法,例如:外部文件讀寫操作、日志寫出操作、模擬鍵盤鼠標操作(Robot類拓展)等。

      3、用例層AppCase,調用測試方法進行測試用例的組織,不同的產品線對應不同的測試集,一個簡單的測試功能模塊對應一個測試用例。

      二、簡易自動化測試架構的實例

      以下可以看一個整體的簡單實例操作:

      1、AppObject文件夾中有一個object.java文件,存儲一系列的通用的控件查找方法:

      實例如下:

    ////////按鈕組件//////////
    
      //用于搜索其上的按鈕
    
      //輸入:按鍵名稱
    
      //類別:GuiTestObject
    
      public GuiTestObject getButton(String buttonName)
    
      {
    
      RootTestObject root = getRootTestObject();
    
      TestObject[] to = root.find(atDescendant(".class","javax.swing.JButton","accessibleContext.accessibleName",buttonName));
    
      return new GuiTestObject(to[0]);
    
      }
    
      ///////文本框組件//////
    
      //用于搜索文本輸入框
    
      //輸入:無
    
      //類別:WTextField
    
    public WTextField getTextField(String LabelName)
    
      {
    
      RootTestObject root = getRootTestObject();
    
      TestObject[] to = root。find(atDescendant(".class","javax.swing.JTextField",".priorLabel",LabelName));
    
      return new WTextField(to[0]);
    
      }
    

      說明:

      a、GuiTestObject是直接繼承于RFT的所有對象的父類TestObject,其里面包含了一些簡單的操作,而我只想用Button的click方法,所以我這里就直接返回的是GuiTestObject類。

      b、RootTestObject也是直接繼承與RFT的 TestObject,不過它與GuiTestObject類不同的是,它是直接指向被測的應用程序的,即是被測試應用程序的控件的一個全部的view,是按數據結構中的樹的方式進行儲存的,其中有方法為find(),可以基于屬性用來在這個RootTestObject中查找你所需要的控件。

      c、find()方法查找的方式有三種,我重點說一下 atChild與atDescendant,前者是在查找根節點的直接子對象、而后者是查找所有的子對象。后面當然是要查找的控件的具體的屬性了,在這里,我們可以定義一個基本不變的屬性,然后定義一些需要在測試用例中改變的屬性,例如:按鈕,這里我設計的就是基于按鈕名字來進行查找了,如果名字一樣的話,你就得用一個別的方式了,例如:index。

      d、WTextField是IBM的ITCL提供的一些控件包裹類,其實就是繼承了一些RFT的基本類,然后自己寫了一些方法而形成的類罷了,你也可以自己拓展一些控件類嘛。

      2、AppLib文件夾中有一個Lib。java的文件,其類存儲對查找到的控件對象操作的基本方法。

      實例如下:

    //下面是對對象的初始化
    
      public AppObject.Rc_Object getObject = new AppObject.Rc_Object();
    
      //下面是對共同方法的實例化
    
      public AppLib.Rc_Method getMethod = new AppLib.Rc_Method();
    
      //////////////////////按鈕組件操作/////////////////////////////
    
      //采用動態搜索的方法進行找到Button組件,并且執行click操作
    
      //輸入:ButtonName
    
    
    public void ChooseButton (String buttonName)
    
      {
    
      getObject.getButton(buttonName).click();
    
      sleep(3);
    
      try {
    
      //向外部日志寫其完成測試的步驟
    
      getMethod.logWriter("完成"+ buttonName + "的ChooseButton方法;");
    
      } catch (Exception e) {
    
      //可以調用異常處理模塊進行異常處理
    
      }
    
      }
    
      //////////////////////文本框組件操作/////////////////////////////
    
      //采用動態搜索的方法進行找到TextField組件,并且執行click操作
    
      //輸入:TextFieldName
    
      public void ChooseTextField (String LabelName,String TextName)
    
      {
    
      sleep(3);
    
      getObject.getTextField(LabelName).setText(TextName);
    
      //用JAVA的語句將其UserName拆分成一個一個的字符進行輸入
    
      try {
    
      getMethod.logWriter("完成" +LabelName+" ChooseTextField方法");
    
      } catch (Exception e) {
    
      //可以調用異常處理模塊進行異常處理
    
      }
    
      }
    

    原文轉自:http://www.uml.org.cn/Test/201306243.asp

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>