簡體   English   中英

使用Teamcity界面Android機器人測試

[英]Interface Android robotium testing with Teamcity

由於之前沒有回答(也許我沒有找到),我調查了以下問題:

如何使用robotium在Android設備上執行自動功能測試,並將其報告給TeamCity等持續集成服務器?

由於我沒有找到關於該具體問題的任何答案,我進行了調查。 以下是我的調查結果和快速操作方法,以幫助人們使用robotium對Android應用程序執行自動功能測試,然后將結果報告給TeamCity等持續集成服務器。 請注意,這可能不是最好的解決方案,但我覺得人們可能和我一樣。 所以在這里!

已使用以下庫:

  • Robotium( https://code.google.com/p/robotium/ ):這是一個Android測試自動化框架。 它可以幫助您執行自動化測試,例如單擊按鈕,自動填充文本以及許多其他內容。
  • Android Junit報告( http://zutubi.com/source/projects/android-junit-report/ ):此庫對於將測試結果發布為可利用的xml格式非常有用。 如果你想通過Eclipse運行你的測試,你會在旅途中看到你的測試結果,但是為了導出它們,這個庫非常有用

假設您有一個要測試的Android項目,請創建一個Android測試項目(Eclipse確實有一個很好的工作流程來為您創建)並將其設置為與Robotium一起使用。 有關如何操作的詳細說明,請訪問: https//code.google.com/p/robotium/wiki/Getting_Started

然后,您需要將Android Junit Report添加到項目中,以便能夠獲取測試結果。 為此,在您的lib文件夾中添加Android Junit Report * .jar庫並將其添加到您的構建路徑中(在Eclipse中: Project - > Properties - > Java Build Path - > Libraries - > Add External Jar )。

您還必須更改項目的測試運行器。 在測試項目的AndroidManifest.xml中添加以下內容:

<instrumentation
      android:name="com.zutubi.android.junitreport.JUnitReportTestRunner"
      android:targetPackage="<insert your package ex:com.alth.myproject" />

完成后,您應該能夠正確運行測試。 測試結果應該在您的設備中可用(在以下文件夾/data/data//files/junit-report.xml中


下一步是配置TeamCity構建步驟,以執行運行測試所需的所有不同操作。 請注意,我的解決方案可能不是最佳解決方案!

  • 構建步驟1:清除 - 命令行運行程序 - 此構建步驟可能是可選的,具體取決於您決定如何創建build.xml文件和此類構建決策。

     rm -rf <report folder> rm -rf <Project build.xml> rm -rf <Test project build.xml> android update project -p <Path to your project> android update test-projecct -m <Path to your project, relative to the test project> -p <Path to your test project> 
  • 構建步驟2:啟動AVD - 命令行運行程序 - 此構建步驟啟動Android虛擬設備。 如果您決定在實際設備上運行測試,則此步驟可以是可選的。

     emulator -avd <nameOfYourAvd> -no-boot-anim & sleep 45 

    &避免構建被虛擬設備啟動中斷(這是基本的shell命令)。 sleep命令用於嘗試讓AVD為下一個構建步驟做好准備

  • 構建步驟3:測試應用程序發布 - Ant runner:構建測試項目,將其安裝在虛擬設備上

     Path to build xml file : <Path to your test project>/build.xml Additional Ant command line parameters : -f <Path to your test project>/build.xml clean debug install -Dsdk.dir=<Path to your android sdk> 
  • 構建步驟4:AVD解鎖 - 命令行運行器:解鎖AVD屏幕以進行測試

      bash avdUnlock.sh 

    avdUnlock.sh的正文:( http://pastie.org/7919761 )。 此腳本在常規AVD端口上發送信息以解鎖屏幕。 這可以通過僅將命令發送到特定端口並更改構建步驟2以將特定端口添加到模擬器啟動來改進。 然而,這並不是這個方法的一部分

  • 構建步驟5:啟動測試 - 命令行運行器:啟動測試

      adb shell pm list instrumentation adb shell am instrument -w <insert your test package ex:com.alth.myproject.test>/com.zutubi.android.junitreport.JUnitReportTestRunner 

    可以刪除第一個adb命令。 這僅用於調試目的,以便查看設備上已安裝了哪些儀器。

  • 構建步驟6:獲取測試 - 命令行運行器:從設備檢索測試報告

      adb pull /data/data/<insert your project package ex:com.alth.myproject>/files/junit-report.xml <report folder>/junit-report.xml 
  • 構建步驟7:最終模擬器終止 - 命令行運行器:殺死正在運行的android虛擬設備

      adb emu kill 
  • 其他構建功能:XML報告處理 - 報告類型:Ant JUnit

      Monitoring rules : <report folder>/*.xml 

該方法顯然不是最佳的,但回答原始問題。 這樣做,就可以獲取android功能測試報告並將其提供給teamcity以便monitore測試結果。

我希望這會對某人有所幫助,如果你有一些問題,我會盡力回答你的問題。

Al_th

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM