Selenium的Web自動化測試(送源碼)

  • 2019 年 12 月 5 日
  • 筆記

8.1 Selenium自動化測試準備

1.Selenium介紹

Selenium是一個Web開源自動化測試框架,頁面級操作,模擬用戶真實操作,API從系統層面觸發事件。

Selenium 1.0

Sever/Client工作方式,可在local或remote機器上運行基於js注入的case底層。

為什麼一定要用代理伺服器的模式?答案是同源策略,它是由Netscape 提出的一個著名的安全策略,現在所有可支援Javascript 的瀏覽器都在使用這個策略。

Selenium 2.0

Selenium 2.0基於Selenium 1.0(即Javascript )並結合其WebDriver來模擬用戶的真實操作。WebDriver原生綁定到瀏覽器,繞過瀏覽器安全模型。它有很好的處理Ajax的能力,並且支援多種瀏覽器(如Safari、IE、Firefox、Chrome等),可以運行在多種作業系統上面。目前,大家幾乎都在使用Selenium 2.0。

2.基於Java開發

(1)Selenium IDE錄製用例,回放,導出Java程式碼。

(2)多種方式定位並控制頁面元素:

—Web元素定位

—id name linktext xpath tag css

—異常處理

(3)自動化測試用例封裝和設計原則參考如圖8.1所示。

▲圖8.1

—安裝JDK,配置JDK環境變數。

—安裝Eclipes。

3.運行時注意驅動與瀏覽器的版本

默認為火狐(Firefox)驅動,如chromedriver.exe、IEDriverServer.exe。

注意,版本需要兼容JDK 1.7以及IE 8到IE 10,IE 11及以上需要更新驅動才能支援,請大家自行研究更新版本驅動或採用舊版本瀏覽器。

4.環境搭建的簡要步驟

(1)安裝JDK,配置JDK環境變數。

(2)安裝Eclipes。

(3)安裝火狐SeleniumIDE、GoogleChromedrive和IE driver。

(4)加入jxl、log4j、Selenium包。

(5)加入JUnit包,創建JUnit測試類。

(6)加入TestNG包,創建TestNG測試類 TestNG.xml。

(7)安裝Ant,配置Ant環境變數 build.xml。

(8)安裝Jenkins、Tomcat,配置Tomcat環境變數。

(9)節點Slave的配置及連接。

(10)啟動節點自動化測試。

8.2 Selenium自動化源碼解析

登錄demo的工程文件路徑:https://pan.baidu.com/s/1i4UwtkL

密碼:3xfb

(基於Java語言和Selenium自動化框架工具開發)

3 持續集成到Jenkins

將源程式碼結合TestNG和 Ant,持續集成到Jenkins。下面是build.xml文件的內容。

程式清單8-10 Java程式碼

<project name="shopping" basedir="."default="run_tests">   <!-- 默認調用run_tests任務 -->           <propertyname="src" value="src" />           <propertyname="dest" value="classes" />           <propertyname="lib.dir" value="${basedir}/lib" />           <propertyname="output.dir" value="${basedir}/test-output"/>   <!-- 設置報告輸出的路徑 -->           <pathid="compile.path">                                        <!--編譯路徑設置 -->                     <filesetdir="${lib.dir}/">                              <includename="*.jar" />                     </fileset>                     <pathelementlocation="${src}" />                     <pathelementlocation="${dest}" />           </path>           <targetname="init">                                           <!-- 初始化設置 -->                     <mkdirdir="${dest}" />           </target>           <targetname="compile" depends="init">                           <!-- 編譯和初始化 -->                     <echo>compiletests</echo>                     <javacsrcdir="${src}" destdir="${dest}" encoding="UTF-8"                              classpathref="compile.path" />           </target>           <taskdefresource="testngtasks"classpath="${lib.dir}/testng.jar"/>   <!-- testng.jar目錄和文件 -->           <targetname="run_tests" depends="compile">                           <!-- 開始測試 -->                     <echo>runningtests</echo>                     <testngclasspathref="compile.path"outputdir="${output.dir}"                              haltonfailure="no"           failureproperty="failed"           parallel="true"           threadCount="1" >                              <xmlfilesetdir="${src}/" includes="testng.xml" />   <!--結合testng,調用testng.xml裡面配置的測試用例  -->                              <classfilesetdir="${dest}">       <include name="/*.class"/>     </classfileset>                     </testng>                     <antcalltarget="transform" />                     <!--<fail message="TEST FAILURE" if="failed" /> -->           </target>           <targetname="transform"description="report">           <!-- 生成報告 -->                     <xslt                              in="${output.dir}/testng-results.xml"                              style="${lib.dir}/testng-results.xsl"            <!-- 以testnt-results.xsl模板的方式 -->                              out="${output.dir}/Report.html"                  <!-- 輸出HTML格式的測試報告 -->                              force="yes">                              <!--you need to specify the directory here again -->                              <paramname="testngXslt.outputDir"expression="${output.dir}"/>                              <classpathrefid="compile.path" />                     </xslt>           </target>  </project>

8.4 Web自動化測試結果展示

3個用例的測試結果TestNG報告如圖8.3所示。

▲圖8.3

3個用例,即1個手機登錄和2個搜索用例執行記錄的TestNG的詳細報告如圖8.4和8.5所示。

▲圖8.4

▲圖8.5

本篇節選自《軟體自動化測試開發-java和python測試開發指南》

獲取源碼後台回復:selenium

Tags: