1. 程式人生 > >移動端自動化測試之我見

移動端自動化測試之我見


   從事網際網路行業已有5個年頭,其中也做過一段時間產品崗,對這個行業的總體感覺就是發展變化相當快。
就網際網路測試領域來說,怎樣有效地提高工作效率,提高產品的質量,是測試工程師都要思考的問題。初始階段,只是掌握了一些測試的理論知識,專案經驗不是很多的時候,經常會迷茫,測試之路在哪裡,然後總是嚮往自動化工具,總是覺得純手工的測試沒有技術含量,但歷經幾個公司下來,發現用得最多最靈活的還是手工測試,因為人的靈活度總是大於工具,最能快速適應更新換代的產品。只有大型的系統,平時升級改造變化不會太大,這個時候運用自動化測試框架來回歸整體功能是否正常,是一種有效節約人力和快速發現問題的方法。但是,一個大型穩定系統的自動化測試框架的搭建,往往需要專業的自動化測試人員,和較長的時間來實現,並且自動化測試框架也需要根據系統變化而變化,維護成本也是比較高的,所以現在的中小型公司往往不會投入這麼大人力來做自動化,一般就是運用一些自動化測試工具,寫一些UI自動化指令碼進行UI迴歸測試。 
 
  目前市面上的UI自動化測試工具有比較多,比如Appium,Robotium,Selenium,其中Appium,Robotium是針對移動端UI自動化測試的,Selenium是Web端的,總結起來原理都是類似的,通過定位控制元件,模擬使用者點選、輸入等操作,來實現一系列使用者事件。Appium使用的定位控制元件方法跟Selenium類似,都是通過宣告一個Driver物件,然後用findElement方法定位到具體的控制元件,通過sendKey(),Click(),swipe()等方法模擬輸入,點選,滑動等動作;Robotium則是通過solo類提供的一系列方法來完成同樣的操作,比如clickOnButton(),clickOnCheckBox(),getEditText();drag();searchText(String),EnterText()等等。


   Appium和Robotium都需要安裝Java和eclipse搭建指令碼編寫環境,並且新增相應的jar包,比如Appium需要的jar包有java-client-1.2.1,selenium-server-standalone-2.44.0.jar,以及selenium-java-2.44.0.zip及相應的jar包,而Robotium需要robotium-solo-5.2.1.jar ,並且兩個工具都需要安裝TestNG相關外掛。


  Appium自帶有Inspector可以定位控制元件;Robotium可以用uiautomatorviewer.bat;所以這兩個工具現在也是移動端自動化測試應用最廣泛的,個人覺得都比較好上手,只是運用的方法不同。Appium的優勢在於可用於原生、混合和移動的web app,ios和Android平臺都可以用,而Robotium只能自動化原生的APP,並且只能用在Android程式,但Robotium更簡單,而且又具有建立強大又可靠的自動化場景的能力,所以在自動化社群也廣泛流行。


  目前部門的產品剛完成1.0版本,且為混合開發的web app,並且平臺覆蓋Ios,Android和Web端,比較之下Appium更加適合,但自動化測試框架的搭建非一日之功,還需要掌握更多具體的知識,並且需要部門管理者支援,開發人員的配合協助。