1. 程式人生 > >自動化測試框架Appium的應用

自動化測試框架Appium的應用

1. Configure SuiteConfig.json

This file restores global environment variables for the server. The file is located at /$(YOUR_PROJECT_ROOT)/SuiteConfig.json

The properties highlight in red below need to be configured according to your server platform.

{
"Framework_Version": "1.0",

"Test_Suite_Properties": {

"Suite_Name": "H+_Test_Suite",

"Suite_ID": "H_Plus_001",

"Suite_Version": "1.0",

"Requirment_File_Name": "Requirement_file",

"Thread_Pool_Size": 1,
"Android_Platform_Version": "4.4.2",

"Android_Package_Name": "com.honeywell.hch.airtouch",

"Android_Activity_Name": "com.honeywell.hch.airtouch.library.app.splash.StartActivity",

"Android_Activity_To_Wait": "",

"Local_APK_Path": "/Users/e573227/E/Automation/Tools/yingyongbao-debug.apk",

"IOS_Platform_Version": "8.0",

"Local_IPA_Path": "/Users/lyricsecuritymac2/Documents/Lyric/Lyric.app",

"Local_APP_Path": "/Users/lyricsecuritymac2/Documents/Lyric/Lyric.app",

"IOS_Bundle_ID": "com.honeywell.acs.lyric.enterprise",

"HUB_URL": "http://159.99.248.223:4723/wd/hub",      // Ip address is local address of your computer as server, port comes from Appium server

"Global_Test_TimeOut_In_Minutes": 45,

  ... ...

"TestNG_Listener_Classes": ["com.honeywell.commons.coreframework.TestNGListernerClass"]
}
}

2. Configure Requirement_file.csv

This file restores test data and global variables for the test device. The file is located at /$(YOUR_PROJECT_ROOT)/Requirement_file.csv

After editing, save the file as Requirement_file.txt. The program will read the txt file and parse the properties.

For example, if add a new test case LAECOSYS_ATC_1032_add_home, just add a new row in the cvs file. 5 properties below are necessary.
Group name Android Medium Device  IOS Medium Device Environment Test Data
LAECOSYS_ATC_1032_add_home Huawei MT7 Iphone 7 Stage

{accountAcquisitionType:Specific,testData:[{UserID:'15800349135',

Password:'111111 ',Location:[{Name:BLR,Devices:[Stat 3762]}]}]}

Other properties such as Android Medium Emulator Required, IOS Medium Emulator Required, Emulators Local or SauceLabs also need to be configured

so that the program will know which platform (device or cloud, emulator or real device, Android or IOS) need to be tested.

Test Data is all data from user input with JSON format. If you want to add new data, need to change the code first. 

(1).Add methods in InputTestDataParser.java

(2).Define the Excel related variables in com.honeywell.commons.coreframework.GlobalVariables

    for example,

publicstaticfinal String EXCEL_TEST_DATA_LOGIN_TITLE = "Login";
publicstaticfinal String EXCEL_TEST_DATA_USER_ID = "UserID";
publicstaticfinal String EXCEL_TEST_DATA_PASSWORD = "Password";

3. Create a new test case class

Here is an example for adding a new test case LAECOSYS_ATC_1032_add_home.

3.1 Create a MobileTestCase subclass

/$(YOUR_PROJECT_ROOT)/src/test/java/com/honeywell/testcases/LAECOSYS_ATC_1032_add_home.java

Override @Factory(), @BeforeMethod(), @Test(), @AfterMethod().

Use Keyword.execute() to run a test.

3.2 Create a Keyword subclass 

/$(YOUR_PROJECT_ROOT)/src/test/java/com/honeywell/keywords/AddHome.java

Override @BeforeKeyword(), @KeywordStep(), @AfterKeyword().

Use MobileUtils for all user gesture functions.

3.3 Create a ObjectiveDefinition JSON file

/$(YOUR_PROJECT_ROOT)/src/test/resources/objects_definition/ObjectDefinition/AddHomePage.json

This file is to define IDs of View objects. The IDs can be found by the Tool Uiautomatorviewer.

{
"MeIcon": {
"Android_Medium": {
"Locator_Type": "ID",
"Locator_Value": "ds_four_bottom_btn_id"
},
... ...
"IOS_Medium": {
"Locator_Type": "XPATH",
"Locator_Value": "//*[@name='login_username_textfield']"
},
... ...
}
},

... ...

}

3.4 Add the test case into the test group

/$(YOUR_PROJECT_ROOT)/src/test/java/com/honeywell/suiteExecutor/SuiteExecutor.java

public static void main(String[] groups) {

 groups=new String[]{"LAECOSYS_ATC_1032_add_home", ... ...};

}

3.5 Code style

Strongly recommend a good code style so that the code is easy to read and reuse.

For example, write the code like below, the detailed process is encapsulated in private method.

@KeywordStep

public boolean keywordSteps() {

if (goToMeScreen()) {

  if (goToManageHomeScreen()) { 

    if (goToAddHomeScreen()) {

       selectCityName();

setHomeName();

       MobileUtils.hideKeyboard(mTestCase);

       tapToConfirmButton();

       if (hasAddHomeButton()) {

          checkIfHasHomeName();

}

private boolean goToMeScreen {

   .... ...

}

4. Run the test case

Run /$(YOUR_PROJECT_ROOT)/src/test/java/com/honeywell/suiteExecutor/SuiteExecutor.java

Appium server has been launched.

相關推薦

自動化測試框架Appium應用

1. Configure SuiteConfig.json This file restores global environment variables for the server. The file is located at /$(YOUR_PROJECT_ROOT)/SuiteConfig.j

自動化測試框架Appium的安裝和使用

Appium是一個用於Android應用程式,IOS應用程式、Windows應用程式的自動化跨平臺的開源框架。由於Appium是跨平臺的工具,這意味你可以使用相同的API針對多個平臺(iOS,Android,Windows)編寫測試。這樣可以在iOS,Android和Windows測試套件之間重用程式碼。

ApiTesting全鏈路介面自動化測試框架 - 實戰應用

場景一、新增公共配置 我們在做自動化開始的時候,一般有很多公共的環境配置,比如host、token、user等等,如果這些放在用例中,一旦修改,將非常的不便、麻煩(尤其切換環境)。 所以這裡我們提供了apiConfig.yml 檔案用於存放公共介面配置,預設會根據第一個介面資料包,解析儲存 host 和 he

Appium 自動化測試(3)--Appium框架與流程介紹

按鍵 viewer 分享圖片 div 來電 page appium 大小 符號 Appium介紹 Appium是一個移動端的自動化框架,可用於測試原生應用,移動網頁應用和混合型應用,且是跨平臺的。可用於IOS和Android以及firefox的操作系統。原生的應用是指用an

Appium自動化測試框架

測試框架的功能: 業務功能的封裝 測試用例的封裝 測試包的管理 截圖處理 斷言處理 日誌獲取 測試報告生成 資料驅動 資料配置:yaml配置、日誌配置等   實現自動化的整體步驟: 框架設計圖: 定義好每個資料夾

基於appium的app自動化測試框架

基於appium框架的app自動化測試 App自動化測試主要難點在於環境的搭建,appium完全是基於selenium進行的擴充套件,所以app測試框架也是基於web測試框架開發的 一、裝置連線 (即構建基礎的測試環境,保證可以驅動裝置進行操作) 0.準備測試環境 1)安裝jdk配置java_home環

移動端Appium自動化測試框架的優勢

眾所周知,現在市面上的移動端作業系統已被Android和IOS佔領,其中Android的份額更是在80%以上。那麼面對市面上林林總總的自動化測試框架和工具,為什麼說Appium在自動化測試框架的統治級優勢呢,下面先看一下各大主流框架的對比及優勢。  一、主流框架對比   下面對比了市面上主流

基於APPIUM測試微信公眾號的UI自動化測試框架(結合Allure2測試報告框架

clas ava sed rom pos enabled via 代碼管理 ons 框架初衷 前兩周組內的小夥伴跟我說她現在測試的微信公眾號項目(保險)每次上新產品時測試起來很費時,存在大量的重復操作(點點點),手工測試每個產品可能需要半天到一天的時間,復雜的產品需要兩

基於webdriver的web UI自動化測試框架(系統架構+測試指令碼應用架構)

1.首先是自動化測試系統架構如下圖: 2.測試指令碼的應用架構: 3實際應用後的工程結構: 框架的配置檔案(只是簡單的用properties檔案) #------------------# #  測試框架配置 #------------------# #

Appium+python自動化測試框架(自動生成html,自動截圖,執行完成後自動傳送到郵箱)

這段時間一直在學習Appium,為了更方便自己的實踐,所以自己寫了一個Appium測試框架 框架實現了在執行完成以後,自動將最新的HTML檔案與在驗證過程中的截圖(自動壓縮成資料夾)傳送到指定郵箱 結合jenkins完全可以實現全自動化,如果需要框架請加我微信,可以免費提供

UI層自動化測試框架(二):Appium基礎

申明:本章節引用很多第三方資料和網上的教程,在參考資料tab中我都有備註,請理解。 由於該框架是基於Appium的,所以先講講appium的基礎知識 一:Appium介紹 Appium是由nodejs的express框架寫的Http Server

React-Native移動應用自動化測試框架Detox簡介

經過開發的鼎力相助,終於把RN的自動化測試框架研究通過了,目前環境已搭建並結合APP執行第一個Demo成功了。 1框架介紹(Detox) 它是為移動端APP打造的灰盒端到端自動化測試框架。 可用於React-Native開發的APP,使用js測試框架test或moc

自動化測試框架對比(UIAutomator、Appium、Robotium)

一、原理 1.UiAutomator——基於UIAutomation的使用者介面自動化測試框架,可以跨應用工作,谷歌親生的。 Android4.3之前:使用inputManager或者更早的WindowsManager來注入KeyEvent Android4.3之後:使用Accessibility

Appium+python自動化(三十八) - Appium自動化測試框架綜合實踐 - 框架簡介-助你衝擊高薪,迎娶白富美(超詳解)

簡介 好久沒有更新部落格了,博友們是不是有點等不及了。不好意思啊,中秋節過後太忙了,這篇是好不容易抽點零碎時間寫的。從這一篇開始小夥伴或者童鞋們,就跟隨巨集哥的腳步,一步步的從無到有,從0到1的搭建一個完整的python+appium自動化測試框架。 框架背景 前面我們已經學習了Appium各種元素定位

Appium+python自動化(三十九)-Appium自動化測試框架綜合實踐 - 程式碼實現(超詳解)

簡介   前邊一直在分享testng的相關文章,看了點贊量和閱讀數不是很高,巨集哥猜測估計是大家確實是用不到或者不喜歡吧!不過巨集哥經過一段時間的準備,appium的自動化測試框架完善的差不多了,那麼接下來巨集哥繼續給小夥伴和童鞋們分享有關Appium自動化測試框架綜合實踐。想必小夥伴們有點等不及了吧! dr

Appium+python自動化(四十一)-Appium自動化測試框架綜合實踐 - 即將落下帷幕(超詳解)

1.簡介   今天我們緊接著上一篇繼續分享Appium自動化測試框架綜合實踐 - 程式碼實現。到今天為止,大功即將告成;框架所需要的程式碼實現都基本完成。 2.data資料封裝 2.1使用背景 在實際專案過程中,我們的資料可能是儲存在一個數據檔案中,如txt,excel、csv檔案型別。我們可以封裝一些方法來

Appium自動化測試框架研究(2)——搭建IOS環境

    今天的文章講iOS的Appium環境搭建。   對於iOS而言,只能在Mac筆記本上安裝Appium,以及所需要的各種元件。   也許有人會問,能否在Windows系統上使用Appium測試iOS手機,這不就不用花錢買Mac了嗎?答案是不可以,因為Appi

android常用自動化測試框架

window 自動 瀏覽器 資料 對比 移動 ppi des 選擇 目錄: Monkey MonkeyRunner Instrumentation UiAutomator Espresso Selendroid Robotium Athrun Appi

python專項測試——Android App自動化測試框架

selenium sdk str ase val 測試環境 self ron app自動化 1 為什麽需要框架? 代碼混亂,難閱讀; 重復編碼,效率低;需求變化,難維護; 一 自動化實例 1 準備測試的app;準備測試環境;實現腳本; 2 測試app:只有登錄功能

基於C#實現的自動化測試框架:發布自動觸發自動化回歸測試

exc 時間流 測試用例 出現 服務器 text types filter txt 接口自動化測試用例完成以後,以前都是發布以後手動運行測試用例。雖然手動運行下腳本也就是一個F5的事情,但是離自動化測試的標準差得很遠。這兩天有了個大膽的想法,想要實現以下發布時直接觸發自動化