亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
Selenium--WEB層面的自動化測試工具
作者:網絡轉載 發布時間:[ 2013/3/15 14:24:41 ] 推薦標簽:

  Selenium是由THOUGHWORKS公司開發的基于WEB層面的自動化測試工具。它是由JAVASCRIPT開發的,支持PYTHON,RUBY,C#,JAVA,PHP,PERL 等多種語言。它有三部分組成,Selenium-IDE:應用層錄制工具;Selenium-RC(Remote Controller):支持不同語言的客戶端驅動,包含Selenium-SERVER;Selenium-core,主要為JAVASCRIPT核心代碼,對于selenium的功能擴展有幫助。

  一般使用selenium選擇TestNG or Junit框架,因為這兩個框架都能和selenium,ANT很好的結合,并且都提供ResultReport的功能。準備好Selenium-RC,Junit(TestNG),我們的自動化之旅開始了。

  這里有個之后會影響測試的BUG先解決掉,在Selenium1.0中對網頁彈出窗口無法捕捉,我們怎么做呢?

  在selenium-server.jar中core文件夾下scripts文件下的selenium-browerbot.js中修改如下的JS代碼:

var newOpen = function(url, windowName, windowFeatures, replaceFlag) {
       var myOriginalOpen = originalOpen;
       if (isHTA) {
           myOriginalOpen = this[originalOpenReference];
       }
       if (windowName == "" || windowName == "_blank") {
           windowName = "selenium_blank" + Math.round(100000 * Math.random());
           LOG.warn("Opening window '_blank', which is not a real window name. Randomizingtarget to be: " + windowName);
       }
       var penedWindow = myOriginalOpen(url, windowName, windowFeatures, replaceFlag);
       LOG.debug("window.open call intercepted; window ID (which you can use with selectWindow()) is "" + windowName + """);
       if (windowName!=null) {
           openedWindow["seleniumWindowName"] = windowName;
       }
       selenium.browserbot.openedWindows[windowName] = openedWindow;
       return openedWindow;
   };

  轉為:

var newOpen = function(url, windowName, windowFeatures, replaceFlag) {
       // var myOriginalOpen = originalOpen;
       //var myOriginalOpen = window.open;
         if (isHTA) {
           // myOriginalOpen = this[originalOpenReference];
         }
         if( !windowFeatures )
         {
         windowFeatures = null;
         }
         if( !replaceFlag )
         {
         replaceFlag = null;
         }

         var penedWindow = null;
         if( !windowFeatures && !replaceFlag )
         {
           openedWindow = this.window.open(url, windowName);
         }
         else
         {
         openedWindow = this.window.open(url, windowName, windowFeatures, replaceFlag);
         }
         LOG.debug("window.open call intercepted; window ID (which you can use withselectWindow()) is "" + windowName + """);
         if (windowName!=null) {
             openedWindow["seleniumWindowName"] = windowName;
         }

         if(openedWindow != null)
         {
             selenium.browserbot.openedWindows[windowName] = openedWindow;
             return openedWindow;
         }
         return null;
      
     };

  這樣您能開始WEB自動化了。

ANT的腳本主要以JAVA編譯和JunitReport的Task為主:

<!--
target: compile Compile all test cases.
-->
   <target name="compile" depends="init-test">
       <javac srcdir="${src-dir}" destdir="${out-dir}">
           <classpath refid="classpath.all" />
       </javac>
   </target>
   <!--
       target: test run the unit test
   -->
   <target name="test" depends="init-test">
       <junit fork="yes" printsummary="on" maxmemory="100m">
           <classpath refid="classpath.all" />
           <formatter type="xml" />
           <batchtest todir="${junit-xml-dir}">
               <fileset dir="${out-dir}">
                   <include name="**/AllTest*.class" />
                   <exclude name="**/*$*.class" />
               </fileset>
           </batchtest>
       </junit>
       <junitreport todir="${junit-xml-dir}">
           <fileset dir="${junit-xml-dir}">
               <include name="TEST-*.xml" />
           </fileset>
           <report format="frames" todir="${junit-html-dir}" />
       </junitreport>
   </target>
   <!--
   Public Targets
   -->
   <target name="clean">
       <delete quiet="true" includeEmptyDirs="true">
           <fileset dir="${report-dir}">
               <exclude name=".cvsignore" />
               <exclude name="CVS" />
           </fileset>
           <fileset dir="${out-dir}">
           </fileset>
       </delete>
   </target>
   <!--
   Global Targets
   -->
   <target name="junit" depends="clean, compile, test" />
</project>


一般的步驟這里不多說了,重要的是幾點對您之后的回歸測試將十分有用:

  1、在每個Test Case中加入錯誤檢查機制try……catch,由于selenium打開的是網頁,在集成測試的時候使用selenium.stop來關閉 selenium,所以如果在回歸測試期間遇到不可預知的錯誤時需要將selenium關閉,防止后臺進程累加。

  2、對waitforpageload的使用和ThreadSleep的使用要間隔,保證場景的真實重現。之前的經歷中由于waitforpageload的默認超時時間是30S,但有些特殊認證的時間只有15S,所以要保證場景的重現需要不斷的調試。

  3、Selenium的使用都是基于網頁HTML元素的,所以和開發規范是緊密聯系到一起的,正常開發設計過程域中的設計庫中的編碼規范中的命名規范提示我們在元素名字一定的情況下,之后的version保證性,不變性,即使此元素被隱藏,其命名仍然存在。

  4、對于SETUP和TEARDOWN類使用要做到即時建立,即時清除,保證數據庫的清潔。避免MOCK數據對您的測試帶來不必要的麻煩。

  5、在遇到ALERT時有幾種方法,新的SELENIUM貌似已經有方法驗證ALERT了,如果還是不行您可以使用JAVA的AWT庫中的ROBOT類去模擬實現電擊ALERT。

軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 国产精品久久久久久久9999 | 国产一区二区三区播放 | 精品国产免费福利片 | 日韩一二三 | 欧美成成人免费 | 国产成人综合高清在线观看 | 天天色综合3 | 欧美在线观看a | 国产亚洲视频在线 | 午夜看片未满十八勿进 | 免费视频亚洲 | 老子影院午夜伦不卡不四虎卡 | 欧美性视屏 | 国产欧美日韩亚洲精品区2345 | 波多野结衣国产一区二区三区 | 久久综合成人 | 久久久久久久国产a∨ | 一级毛片特级毛片免费的 | 色黄污在线看黄污免费看黄污 | 国产黄色大片又色又爽 | 亚洲成年人免费网站 | hdⅹvideos成人 | 欧美精品成人a多人在线观看 | 簧片视频在线观看 | 亚洲图欧美 | 2020天天干 | 三级簧片| 日本在线亚洲 | 一级片在线观看视频 | 久操视频在线播放 | 久久精品a亚洲国产v高清不卡 | 情人边吃奶边做好爽嗷嗷叫 | 亚洲欧洲日韩综合色天使不卡 | 在线观看成年人免费视频 | 国产午夜久久影院 | 亚洲乱码一二三四区国产 | 国产成人三级经典中文 | 香港三级日本三人妇孕妇 | 黄片a级毛片 | 日韩专区视频 | 精品国产人成在线 |